代码之家  ›  专栏  ›  技术社区  ›  Persimmonium

JDK1.6中使用已背书目录的确切方法是什么

  •  8
  • Persimmonium  · 技术社区  · 14 年前

    我想将我的JAXWS升级到2.2(JDK1.6与JAXWS 2.1捆绑在一起)。我的JDK是(我没有安装公共JRE):

    java version "1.6.0_20"
    Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
    Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode)
    

    jaxws' own doc 他们解释如何做到:

    解决这个问题的一种方法是将jaxws-api.jar和jaxb-api.jar复制到jre认可的目录中,即 $JAVA_HOME/lib/endorsed (or $JDK_HOME/jre/lib/endorsed)

    但我不确定这对我的安装是否有任何影响。对于初学者,我只定义了 %JAVA_HOME% . 文件夹 $JAVA_HOME/lib/endorsed 是不存在的,所以我创造并复制了两个罐子。但如果我这样做(wsgen是JAXWS的工具)

    wsgen -version
    

    我仍然得到:

    JAX-WS RI 2.1.6 in JDK 6
    

    我还尝试创建文件夹 JAVA_HOME\jre\lib\endorsed (注意,在文档中他们说jdk-home,但是因为我只有java-home,所以我使用了这个路径)。仍然是相同的wsgen输出。

    我的问题是:

    1. 在Doc页面中,java_Home和jdk_Home有什么区别?有没有什么重要的或只有两种方法可以用来指java_home?
    2. “wsgen-version”是否是检查所使用的JAXWS版本的有效方法,或者它总是在原始JDK中调用exe,但这并不意味着将使用经过认可的JAR?
    3. 任何人都知道 非常详细的步骤 在JDK.16中安装JAXWS2.2?

    我发现 this post 这对我所看到的有一些提示我想

    3 回复  |  直到 8 年前
        1
  •  0
  •   Daniel    8 年前

    jre中包含的wsimport和wsgen作为exe位于jre/bin目录中,如果仍然从命令行调用它,它仍将运行JAXWS2.1实现。

    要更新到JAXWS2.2,您需要从JAXWS网站下载相关的JAX-WS2.2.xRI。

    您需要将内容提取到计算机上。

    您还需要将jaxws-api.jar和jaxb-api.jar复制到已背书的目录中(根据原始描述)。

    但是,现在您不需要使用wsgen.exe或wsimport.exe(如果适用于您的项目),而是需要使用JAX WS 2.2更新/下载中提供的版本。

    在从JAX-WS2.2下载中提取的JAXWSRI目录中,您将看到一个bin目录和4个文件(wsgen.bat、wsgen.sh、wsimport.bat、wsimport.sh),这些是您需要运行的文件。

    要运行它们,必须设置jaxws_home环境变量(有关详细信息,请参阅wsgen/wsimport.bat/sh文件)。

    现在应该可以用JDK1.6运行JAX-WS2.2了

        2
  •  11
  •   Saintali    9 年前

    你应该检查一下你的系统属性 java.endorsed.dirs ,例如通过呼叫 System.getProperty("java.endorsed.dirs") . 在Windows计算机上,这通常是 C:\Program Files\Java\jdk1.6.0_16\jre\lib\endorsed . 把你要签名的JAR文件放在这里。如果该目录不存在,只需创建它。

    另一个选项是将JAR放在自己喜欢的目录中,但通过添加命令行开关来覆盖系统属性。 -Djava.endorsed.dirs=<Your endorsed jars directory> .

        3
  •  1
  •   Yishai    11 年前

    它与环境变量无关。%JavaAHOM%只是文档中的速记,不知道您在哪里安装了Java或您安装了什么版本的Java。

    %java_Home%指的是JRE(非开发人员可能拥有的常规运行时)。%JDKYHOL%指的是JDK的ROD目录,Java开发工具包,开发者将使用的东西。

    更重要的是,您必须知道何时运行wsgen,它从何处运行,并且相应的jvm配置了一个包含jar的认可目录。