Java 在jdk1.6中使用认可目录的确切方式是什么
我想将我的jaxws升级到2.2(jdk1.6与jaxws 2.1捆绑在一起)。我的jdk是(我没有安装公共jre): 在本文中,他们解释了如何做到这一点: 解决此问题的一种方法是将jaxws-api.jar和jaxb-api.jar复制到JRE认可的目录中,即Java 在jdk1.6中使用认可目录的确切方式是什么,java,jax-ws,endorsed,Java,Jax Ws,Endorsed,我想将我的jaxws升级到2.2(jdk1.6与jaxws 2.1捆绑在一起)。我的jdk是(我没有安装公共jre): 在本文中,他们解释了如何做到这一点: 解决此问题的一种方法是将jaxws-api.jar和jaxb-api.jar复制到JRE认可的目录中,即$JAVA\u HOME/lib/annowed(或$JDK\u HOME/JRE/lib/annowed) 但我不确定这对我的安装是否有任何影响。对于初学者,我只定义了%JAVA\u HOME%。文件夹$JAVA_HOME/lib/an
$JAVA\u HOME/lib/annowed(或$JDK\u HOME/JRE/lib/annowed)
但我不确定这对我的安装是否有任何影响。对于初学者,我只定义了%JAVA\u HOME%
。文件夹$JAVA_HOME/lib/annocated
不远,所以我创建并复制了两个jar。但如果我这样做了(wsgen是来自jaxws的工具)
我仍然得到:
JAX-WS RI 2.1.6 in JDK 6
我还尝试创建文件夹JAVA\u HOME\jre\lib\annowed
(注意,在文档中他们说JDK\u HOME,但由于我只有JAVA\u HOME,所以我使用了这个路径)。仍然是相同的wsgen输出
我的问题是:
我发现它对我看到的东西有一些提示,我认为它与环境变量无关JAVA_HOME%只是文档中的简写,它不知道您在哪里安装了JAVA或安装了什么版本的JAVA %JAVA_HOME%指的是JRE(非开发人员将拥有的常规运行时)。%JDK_HOME%指的是JDK的rood目录,这是一个Java开发工具包,开发人员会使用它
除此之外,您还必须知道何时从何处运行wsgen,以及相应的JVM配置了一个包含JAR的认可目录。您应该检查系统属性
java.annowed.dirs
,例如通过调用system.getProperty(“java.annowed.dirs”)
。在Windows计算机上,这通常类似于C:\ProgramFiles\Java\jdk1.6.0\u 16\jre\lib\annowed
。把你想要签署的jar文件放在这里。如果该目录不存在,只需创建它
另一个选项是将JAR放在您自己喜欢的目录中,但通过添加命令行开关来覆盖系统属性
-Djava.annowned.dirs=
jre中包含的wsimport和wsgen作为exe位于jre/bin目录中,如果您仍然从命令行调用它,它仍将运行Jax WS 2.1实现
要更新到Jax WS 2.2,您需要从jaxws网站下载相关的Jax-WS 2.2.X RI
您需要将内容提取到计算机上
您还需要将jaxws-api.jar和jaxb-api.jar复制到认可的目录中(按照您的原始描述)
但是,您现在需要使用jax ws 2.2更新/下载中提供的版本,而不是使用wsgen.exe或wsimport.exe(适用于您的项目)
在从JAX-WS2.2下载中提取的JAXWSRI目录中,您将看到一个bin目录和4个文件(wsgen.bat、wsgen.sh、wsimport.bat、wsimport.sh),这些是您需要运行的文件
要运行它们,必须设置JAXWS_HOME环境变量(有关详细信息,请参阅wsgen/wsimport.bat/sh文件)
现在,无论wsgen在哪里运行,您都可以使用JDK1.6运行JAX-WS2.2,因为路径中有JAVA_HOME%\bin。因此wsgen.exe将始终是其中的一个。但是我希望它能把罐子装进被认可的目录或者其他什么问题是关于如何认可的?谢谢!正如你可能猜到的那样,我不需要6年的时间来回答这个问题:)但也许可以帮助某人
wsgen -version
JAX-WS RI 2.1.6 in JDK 6