Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.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
为什么在使用--option runtime进行代码签名后无法启动Java应用程序_Java_Macos_Maven_Code Signing - Fatal编程技术网

为什么在使用--option runtime进行代码签名后无法启动Java应用程序

为什么在使用--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

我正在为Mac OS分发Java应用程序,并使用appbundler构建应用程序。现在有必要对应用程序进行公证,也有必要使硬化运行时能够通过公证。这方面存在一些问题:

  • 如果我在没有
    --选项运行时
    的情况下对应用程序进行代码设计,它可以工作,但无法通过公证
  • 如果我使用
    --option runtime
    对应用程序进行代码设计,它可以通过公证,但无法启动
使用Maven构建应用程序:

<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