可能重复:
在 JDK 1.7 中找不到 jnlp.jar
对于 jdk 1.6,可以在这里找到(根据Where can i download JNLP.jar):
${java.home}/sample/jnlp/servlet/jnlp.jar
但是,我在我的 jdk 7 主页中看不到这个目录。
它去哪儿了?
可能重复:
在 JDK 1.7 中找不到 jnlp.jar
对于 jdk 1.6,可以在这里找到(根据Where can i download JNLP.jar):
${java.home}/sample/jnlp/servlet/jnlp.jar
但是,我在我的 jdk 7 主页中看不到这个目录。
它去哪儿了?
在 java 7中,javax.jnlp.*包是 jre 的一部分,可以在javaws.jar
以下路径中找到
C:\Program Files\Java\jre7\lib\javaws.jar
如果使用 Maven:
<dependency>
<groupId>javax.jnlp</groupId>
<artifactId>jnlp-api</artifactId>
<version>7.0</version>
<scope>system</scope>
<systemPath>${java.home}/lib/javaws.jar</systemPath>
</dependency>
如果您在使用jnlp-download-servlet 和 jnlp-servlet.jar
之前作为 jdk 的一部分提供的示例现在必须从 oracle 单独下载: 向下滚动到“演示和示例”
有人很好,并在 maven repos 中放了一份副本(我猜如果 oracle 更新他们的,我们不能确定它不会落后..):
<dependency>
<groupId>org.codehaus.mojo.webstart</groupId>
<artifactId>webstart-jnlp-servlet</artifactId>
<version>1.0-6.0.02_ea_b02.2</version>
</dependency>
编辑:正如 Zalumon 在他的回答中所说,javax.jnlp.* api 也可以在示例包中找到。应该建议下载此文件并将 jnlp.jar 从那里添加到类路径中,而不是像我上面建议的那样添加 javaws.jar。
感谢您提供的所有提示 - 我不知道有单独的示例下载。
所以这就是我最终做的事情(请注意,我有自己的远程存储库,所以这可能不适用于你):
我从 Oracle 的网站下载了 jdk7 示例。在里面我找到了一个 jnlp.jar,它只包含 jnlp API:
sample\jnlp\servlet\jnlp.jar
我将其作为 jnlp-api-1.7.jar 部署到我的私有远程存储库(人工制品),然后像这样配置 pom.xml('provided' 范围,因为在运行时这些类由 javaws.jar 提供,正如 Aksel 指出的那样威尔格特):
<dependency>
<groupId>javax.jnlp</groupId>
<artifactId>jnlp-api</artifactId>
<version>1.7</version>
<scope>provided</scope>
</dependency>
为了完整起见,部署到工件的屏幕截图: