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" />
可能还需要添加 name
、width
、height
,但描述不是很准确。
我正在尝试将小程序转换为常规 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" />
可能还需要添加 name
、width
、height
,但描述不是很准确。