2012-02-01 26 views
0

内.JAR文件你如何执行你的源代码中的JAR文件?你如何执行java

我知道,对于一个exe,您使用

try 
{ 
Runtime rt = Rintime.getRuntime() ; 
Process p = rt.exec("Program.exe") ; 
InputStream in = p.getInputStream() ; 
OutputStream out = p.getOutputStream(); 
InputSream err = p,getErrorStram() ; 

//do whatever you want 
//some more code 

p.destroy() ; 
}catch(Exception exc){/*handle exception*/} 

难道仅仅是相同的:

rt.exec("program.exe")变化rt.jar("program.jar")或者是不同的东西?

+0

可能重复[如何编写一个Java程序,可以提取一个JAR文件,并存储在指定的目录中的数据(位置)?](http://stackoverflow.com/questions/1529611/how-to-write-a-java-program-which-can-extract-a-jar-file-and-store-its-data-in -s) – skaffman 2012-02-01 09:33:06

+0

我不这么认为,那是在谈论移动一个罐子,这是运行一个罐子 – Russell 2012-02-01 09:34:01

+2

你尝试'rt.exec(“Java的罐子program.jar”)'? – Nishant 2012-02-01 09:34:07

回答

3

为了提取一个jar文件,而不是EXEC(“Program.exe文件”),你需要说

exec("<path to jar command> -xf program.jar") 

通常jar命令可以在你的bin目录,如果ENV变量设置正确,你甚至可以说 EXEC( “罐子-xf program.jar”)

对于运行jar文件,你可以说 “Java的罐子program.jar”

0

您可以使用java.util.jar.JarFile API阅读的内容的jar文件。 下面是如何用它来从一个JAR文件中提取文件的代码示例:

File jar = new File("Your_Jar_File_Path") 
    final JarFile jarFile = new JarFile(jar); 
    for (final Enumeration<JarEntry> files = jarFile.entries(); files.hasMoreElements();) 
    { 
     final JarEntry file = files.nextElement(); 
     final String fileName = file.getName(); 
     final InputStream inputStream = jarFile.getInputStream(file); 
     ........ 
     while (inputStream.available() > 0) 
     { 
      yourFileOutputStream.write(inputStream.read()); 
     } 
    } 
+0

@Russell,你丫想从你的代码中执行的JAR文件。我以为你想提取其内容。它是由skaffman编辑后得到的问题 – 2012-02-01 10:06:33