我正在使用jar运行一些代码作为程序(OSX)的帮助程序。我想以编程方式打开此jar,并一直在使用ProcessBuilder在终端上运行它。
但是,我想给jar提供一些参数(特别是文件位置,但这无关紧要)。我使用的是java -jar jarName arg
,但不适用于未安装Java工具的人。
我尝试使用open jarName --args arg
,但是jar无法识别args。
作为测试,我现在仅使用以下代码。
public static void main(String[] args) {
try {
// set a PrintStream to see the args presented
System.setOut(
new PrintStream(new FileOutputStream(new File(System.getProperty("user.home") + "/Desktop/argsTest.txt"))));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.out.println(argsSize: "+args.length");
for (String s : args)
System.out.println(s);
}
我可以尝试其他打开罐子的方法,只要它们在所有最新系统上都可用即可。
我将JRE打包在应用程序中,有没有办法使用它?
答案 0 :(得分:1)
将jre与您的程序捆绑在一起。请参阅Bundle JRE along with executable jar
,或者如果您使用的是netbeans,则可以先对其进行测试。 https://netbeans.org/kb/docs/java/native_pkg.html
如何运行-https://netbeans.org/kb/docs/java/native_pkg.html#check
答案 1 :(得分:0)
欢迎使用StackOverFlow!
遗憾的是,答案是不,你不能这样做。如果要运行Java代码,无论是否从jar运行,都将需要在计算机上安装Java。具体来说,您需要JRE具有JVM。
但是在部署应用程序时,您可以自己提供Java。参见以下主题:
了解更多信息。