如何在java中执行.JAR文件
如何在源代码中执行JAR文件 我知道对于exe,您使用如何在java中执行.JAR文件,java,jar,Java,Jar,如何在源代码中执行JAR文件 我知道对于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 wan
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”)
,或者它有什么不同吗?为了提取jar文件而不是exec(“program.exe”),您需要说
exec("<path to jar command> -xf program.jar")
exec(“-xf program.jar”)
通常jar命令在bin目录中可用,如果正确设置了env变量,您甚至可以说
exec(“jar-xf program.jar”)
为了运行jar文件,您可以说“java-jar program.jar”为了提取jar文件而不是exec(“program.exe”),您需要说
exec("<path to jar command> -xf program.jar")
exec(“-xf program.jar”)
通常jar命令在bin目录中可用,如果正确设置了env变量,您甚至可以说
exec(“jar-xf program.jar”)
要运行jar文件,可以说“java-jar program.jar”您可以使用
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());
}
}
File jar=新文件(“您的文件路径”)
final JarFile JarFile=新JarFile(jar);
对于(最终枚举文件=jarFile.entries();files.hasMoreElements();)
{
final JarEntry file=files.nextElement();
最终字符串文件名=file.getName();
final InputStream InputStream=jarFile.getInputStream(文件);
........
while(inputStream.available()>0)
{
yourFileOutputStream.write(inputStream.read());
}
}
您可以使用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());
}
}
File jar=新文件(“您的文件路径”)
final JarFile JarFile=新JarFile(jar);
对于(最终枚举文件=jarFile.entries();files.hasMoreElements();)
{
final JarEntry file=files.nextElement();
最终字符串文件名=file.getName();
final InputStream InputStream=jarFile.getInputStream(文件);
........
while(inputStream.available()>0)
{
yourFileOutputStream.write(inputStream.read());
}
}
我不这么认为,这是在说移动一个jar,这是在运行一个jar。你有没有尝试rt.exec(“java-jar program.jar”)
?记住,我现在的电脑上没有jar。看看上面的代码,你似乎也没有编译器;)我不这么认为,这是在说移动一个jar,这是在运行一个jar。你试过rt.exec(“java-jar program.jar”)
?记住,我的电脑上现在没有jar。看看上面的代码,你似乎也没有编译器;)@Russell,啊,你想在你的代码中执行一个JAR文件。我以为你想提取它的内容。被编辑后得到问题skaffman@Russell,啊,您想从代码中执行一个JAR文件。我以为你想提取它的内容。在斯卡夫曼编辑后得到了这个问题