Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在从javafx maven插件构建的java.runtime文件夹中获取java.exe可执行文件_Java_Maven_Javafx_Javafx 8_Maven Plugin - Fatal编程技术网

是否可以在从javafx maven插件构建的java.runtime文件夹中获取java.exe可执行文件

是否可以在从javafx maven插件构建的java.runtime文件夹中获取java.exe可执行文件,java,maven,javafx,javafx-8,maven-plugin,Java,Maven,Javafx,Javafx 8,Maven Plugin,我正在MacOSX上使用JavaFXMaven插件构建一个应用程序。该插件在构建过程中自动在Java.runtime文件夹中创建完整的JRE。但是它里面不包含java.exe 我想在应用程序中启动一个jar,但为此,我还需要在应用程序中启动java可执行文件。如果我将system java bin文件夹中的java可执行文件粘贴到我的应用程序的java runtime文件夹中,我可以启动我的jar(问题得到解决),但我无法将此应用程序启动到mac app store,因为java可执行文件是使用

我正在MacOSX上使用
JavaFXMaven插件构建一个应用程序。该插件在构建过程中自动在
Java.runtime
文件夹中创建完整的
JRE
。但是它里面不包含
java.exe

我想在应用程序中启动一个
jar
,但为此,我还需要在应用程序中启动
java
可执行文件。如果我将system java bin文件夹中的
java
可执行文件粘贴到我的应用程序的java runtime文件夹中,我可以启动我的jar(问题得到解决),但我无法将此应用程序启动到mac app store,因为
java
可执行文件是使用开发者ID Application:Oracle America进行代码签名的,它有一个bundle标识符
net.java.openjdk.cmd
。这不允许在itunes上上传我的应用程序


有没有办法,在构建过程中,使用
javafx maven plugin
我也可以在我的应用程序中获得java可执行文件,而不是从我的应用程序中的系统java复制它,因为我的应用程序具有不同的代码签名。

而不是尝试在java中实现依赖于系统的代码,最好使用Java中可用的工具在当前JRE中执行jar。可以创建链接到jar(和任何依赖项)的URLClassLoader。从那里,您可以使用反射从类加载器加载主类,并执行它。除非您需要对操作系统状态进行实际更改,例如执行SUID,否则无需启动新的JRE(在RAM中花费巨大)


如果您需要使用特权操作执行jar,请参阅相关问题:

谢谢。我将尝试使用URL类加载器加载我的jar。如果此解决方法有效,我将肯定地发布它