2012-02-01 3 views
0

Как выполнить JAR-файл в вашем исходном коде?как вы выполняете .JAR-файлы в java

Я знаю, что для ехе, вы используете

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

+0

Я так не думаю, что речь идет о перемещении фляги, это работает баночка – Russell

+2

вы попробовали 'rt.exec (" java -jar program.jar ")'? – Nishant

ответ

3

Для того, чтобы извлечь банку файл вместо Exec («program.exe») вам нужно сказать

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

Обычно команда банка доступна в каталоге бен и если переменные Env правильно установлены , можно даже сказать, EXEC («баночка -xf program.jar»)

для запуска файла банки вы можете сказать «Java -jar program.jar»

0

вы можете использовать java.util.jar.JarFile API для чтения содержимого файла 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-файл из своего кода. Я думал, вы хотите извлечь его контент. Возник вопрос, когда он был отредактирован скаффманом –

Смежные вопросы