JNLP 找不到使用 Maven 构建的主要 class

JNLP can't find main class built with Maven

我正在尝试将小程序转换为常规 java 应用程序,使用 JNLP 运行。 当 运行ning 直接工作时。但是如果我通过 JNLP 运行 我得到下面的堆栈跟踪。

at com.sun.javaws.LaunchDownload.getMainClassName(Unknown Source)
    at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
    at com.sun.javaws.Launcher.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)


主要 Java Class (App.java)

public static void main(String[] args) throws Exception {
    String porta = args[0];
    String dados = args[1];
    String etiquetaBytes = args[2];
    DadosEtiqueta[] dadosEtiqueta = getJsonFormString(dados, DadosEtiqueta[].class);
    ...
}


JNLP 文件(config.jnlp) 这是配置jar执行的地方

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://172.16.3.5:8080/vendor" href="jnlp/config.jnlp">
    <information>
        <title>App Title</title>
        <vendor>Vendor Name</vendor>
        <offline-allowed/>
    </information>
    <resources>
        <j2se version="1.7+"/>
        <jar href="dir1/dir2/dir3/app-title.jar" main="true" />
    </resources>
    <application-desc/>
</jnlp>


Maven Jar 插件(pom.xml) 这个插件设置主要 class.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <mainClass>myPackage.App</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>

我认为你的 JNLP 无效。

(见https://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/jnlpFileSyntax.html):

Note: A JNLP file must contain one of the following: application-desc, applet-desc, component-desc, or installer-desc.

并且 application-desc 应该需要 main-class

尝试添加

<application-desc main-class="myPackage.App" />

可能还需要添加 namewidthheight,但描述不是很准确。