为什么在使用--option runtime进行代码签名后无法启动Java应用程序
我正在为Mac OS分发Java应用程序,并使用appbundler构建应用程序。现在有必要对应用程序进行公证,也有必要使硬化运行时能够通过公证。这方面存在一些问题:为什么在使用--option runtime进行代码签名后无法启动Java应用程序,java,macos,maven,code-signing,Java,Macos,Maven,Code Signing,我正在为Mac OS分发Java应用程序,并使用appbundler构建应用程序。现在有必要对应用程序进行公证,也有必要使硬化运行时能够通过公证。这方面存在一些问题: 如果我在没有--选项运行时的情况下对应用程序进行代码设计,它可以工作,但无法通过公证 如果我使用--option runtime对应用程序进行代码设计,它可以通过公证,但无法启动 使用Maven构建应用程序: <build> <finalName>${organization.name}-${v
- 如果我在没有
的情况下对应用程序进行代码设计,它可以工作,但无法通过公证--选项运行时
- 如果我使用
对应用程序进行代码设计,它可以通过公证,但无法启动--option runtime
<build>
<finalName>${organization.name}-${version}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<dependencies>
<dependency>
<groupId>com.panayotis</groupId>
<artifactId>appbundler</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<mkdir dir="${build.directory}/${build.finalName}"/>
<taskdef name="bundleapp" classname="com.oracle.appbundler.AppBundlerTask"/>
<bundleapp outputdirectory="${build.directory}/${build.finalName}"
name="${organization.name}"
displayname="${organization.name}"
identifier="com.company.product"
shortversion="${revision}"
icon="src/main/resources/icons/Icon.icns"
mainclassname="org.springframework.boot.loader.JarLauncher"
copyright="2019 Company">
<runtime dir="${project.basedir}/../misc/jdk-11.0.4+11/Contents/Home"/>
<classpath file="${build.directory}/${organization.name}-${revision}.jar"/>
<option value="-Dspring.config.location=classpath:/application.yml,file:./application.yml"/>
<option value="-Djava.awt.headless=false"/>
<option value="-Xmx512m"/>
</bundleapp>
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
应享权利:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.disable-executable-page-protection</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
</dict>
</plist>
正确的决定是去掉appbundler插件。
我已经编写了自己的启动器,使用X-Code和启用的强化运行时构建了它,它工作得非常完美。正确的决定是去掉appbundler插件。
我已经编写了自己的启动器,使用X代码和启用的强化运行时构建了它,它工作得非常完美。我也遇到了同样的问题。你取得了进展吗?您正在使用OpenJDK吗?你试过最新版本吗?是的,我正在使用Adopt,但是JRE,11.0.4+11版。它工作得很好。你有什么问题?我也有同样的问题。你有进步吗?您正在使用OpenJDK吗?你试过最新版本吗?是的,我正在使用Adopt,但是JRE,11.0.4+11版。它工作得很好。你有什么问题?
2019-08-08 10:28:51.443 JavaAppLauncher[4526:559342] int launch(char *, int, char **) Launchpath: /Applications/App.app/Contents/PlugIns/jdk-11.0.4+11/Contents/Home/lib/jli/libjli.dylib
2019-08-08 10:28:51.449 JavaAppLauncher[4526:559342] int launch(char *, int, char **) Error launching JVM Runtime (jdk-11.0.4+11) Relative Path: '/Applications/App.app/Contents/PlugIns/jdk-11.0.4+11' (dylib: /Applications/App.app/Contents/PlugIns/jdk-11.0.4+11/Contents/Home/lib/jli/libjli.dylib)
error: JRELoadError