不使用Java -jar和args即可打开Jar

时间:2018-12-03 15:13:15

标签: java macos shell

我正在使用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打包在应用程序中,有没有办法使用它?

2 个答案:

答案 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。参见以下主题:

了解更多信息。