9

可能重复:
在 JDK 1.7 中找不到 jnlp.jar

对于 jdk 1.6,可以在这里找到(根据Where can i download JNLP.jar):

${java.home}/sample/jnlp/servlet/jnlp.jar

但是,我在我的 jdk 7 主页中看不到这个目录。

它去哪儿了?

4

2 回答 2

11

在 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。

于 2012-11-25T20:55:32.323 回答
6

感谢您提供的所有提示 - 我不知道有单独的示例下载。

所以这就是我最终做的事情(请注意,我有自己的远程存储库,所以这可能不适用于你):

我从 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>

为了完整起见,部署到工件的屏幕截图:

于 2012-11-26T10:26:30.093 回答