我有一个虚拟jar,其唯一的工作是显示一个简单的jdialog并要求用户从提供的组合中选择所需的内存大小。选择所需的最大内存后,用户单击开始按钮来运行我的主Jar。
我在虚拟jar中使用runtime.getRuntime.exec()方法来调用我的主jar。
我已经硬编码了我的主罐子路径它的工作正常。但我想知道当两个罐子位于不同的位置时如何以编程方式获取我的主罐子的位置?
我可以使用下面链接中使用的方法获取我的虚拟罐子的路径。
How to get the path of a running JAR file?
但请建议我获取主程序的jar路径。
答案 0 :(得分:1)
除非您知道将在何处安装/部署,否则您不能这样做。为什么不将它们打包在同一个JAR中,然后你可以使用你描述的技术找到JAR路径?
您应该有两个使用main()
方法的课程,比如org.kittu.Main
和org.kittu.Dummy
。将它们打包到main.jar
并确保org.kittu.Dummy
是默认执行的类(在清单中)。
在Dummy
课程中,获取main.jar
的位置以及用户想要的内存量exec()
,如下所示:
java -Xmx <memory> -jar <path to main.jar> org.kittu.Main
运行Main
课程。