从另一个 jar 执行 jar 文件



我正在从另一个jar文件执行一个jar文件。从子jar访问资源文件时,它给出了异常: java.io.FileNotFoundException:文件'file:PATH_TO_CHILD_JAR/example-1.0.0-0-SNAPSHOT-jar-with-dependencies.jar!resource_file_path/abs.sql.tpl'不存在。

我无法弄清楚为什么它在搜索资源文件时需要"!" 标记。

你可以在java程序中执行jar文件。

确保您已在具有主类属性的 jar 中添加了清单文件。

我的步骤和输出:

创建具有以下行的清单文件:主类:com.demo.TestJar

创建的测试Java程序:

package com.demo;
public class TestJar extends Object {
public static void main(String args[]) {
System.out.println("TestJar");
}
}

打包jar:jar cvfm/home/user/TestJarOne.jar清单.txt

编写测试程序:

import java.io.BufferedInputStream;
import java.io.IOException;
public class TestJSS extends Object {
static int i = 0;
public static void main(String args[]) throws IOException, InterruptedException {
System.out.println("Calling jar");
Process p = Runtime.getRuntime().exec("java -jar /home/user/TestJarOne.jar arg1 arg2");
BufferedInputStream bis = new BufferedInputStream(p.getInputStream());
synchronized (p) {
p.waitFor();
}
System.out.println(p.exitValue());
int b=0;
while((b=bis.read()) >0){
System.out.print((char)b);    
}        
System.out.println("");
System.out.println("Called jar");
}

}

试试这个

// Run a java app in a separate system process
Process proc = Runtime.getRuntime().exec("java -jar A.jar");
// Then retreive the process output
InputStream in = proc.getInputStream();
InputStream err = proc.getErrorStream();

相关内容

  • 没有找到相关文章

最新更新