如何在java中执行.JAR文件

如何在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

如何在源代码中执行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 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文件。我以为你想提取它的内容。在斯卡夫曼编辑后得到了这个问题