我在哪里可以找到jdk 7中的jnlp api jar?

Ret*_*ner 9 java jnlp java-web-start

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

对于jdk 1.6,它可以在这里找到(根据我在哪里可以下载JNLP.jar):

${java.home}/sample/jnlp/servlet/jnlp.jar
Run Code Online (Sandbox Code Playgroud)

但是,我在jdk 7 home中看不到这个目录.

它去了哪里?

Aks*_*ert 11

在java 7中,javax.jnlp.*包是jre的一部分,可以javaws.jar在以下路径中找到

C:\Program Files\Java\jre7\lib\javaws.jar
Run Code Online (Sandbox Code Playgroud)

如果使用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>
Run Code Online (Sandbox Code Playgroud)

如果你在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>
Run Code Online (Sandbox Code Playgroud)

编辑:正如Zalumon在他的回答中所述,javax.jnlp.*api也可以在samples-package中找到.下载这个并将jnlp.jar添加到类路径中应该推荐为选择添加javaws.jar,如上所述.


Ret*_*ner 6

感谢您的所有提示 - 我不知道有单独的样本下载.

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

我从Oracle的网站上下载了jdk7样本.在里面我找到了一个jnlp.jar,它只包含jnlp API:

sample\jnlp\servlet\jnlp.jar
Run Code Online (Sandbox Code Playgroud)

我将此部署到我的私有远程存储库(artifactory)为jnlp-api-1.7.jar,然后像这样配置pom.xml('提供'范围,因为在运行时这些类由javaws.jar提供,如Aksel所指出的Willgert):

<dependency>
  <groupId>javax.jnlp</groupId>
  <artifactId>jnlp-api</artifactId>
  <version>1.7</version>
  <scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

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