首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JRE rt.jar的行为与JDK rt.jar不同

JRE rt.jar的行为与JDK rt.jar不同
EN

Stack Overflow用户
提问于 2018-01-05 21:10:22
回答 1查看 165关注 0票数 0

几天前,我遇到了一个奇怪的问题,当时我正在使用JAXB解除XML文件的编组。所以我写的代码如下。

代码语言:javascript
复制
JAXBContext jaxbContext = JAXBContext.newInstance(XxspPoInHeaderCollection.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); //step1
XxspPoInHeaderCollection poInHeaderCollection = (XxspPoInHeaderCollection) JAXBIntrospector.getValue(jaxbUnmarshaller.unmarshal(file));

因此,这是我在SVN中签入的一个工作代码。现在,从其他一些系统中,我获得了相同的代码,但是在该系统上,代码在解组时找不到任何XML标记。经过几个小时的调试,我发现在这两个环境中有一个细微的差别。在上面的JDK_HOME/jre/lib中,工作系统从step1中选择rt.jar,不工作的系统从JRE_HOME/lib中选择它。因此,jrert.jar引发了这一问题。

我的项目是一个可运行的罐子。因此,在不工作的系统上,当我使用java -jar jarName.jar从任何目录运行它时,都会引起问题。所以我试着从下面的JDK_HOME/bin(as运行jar文件,boom...everything运行得很好。

代码语言:javascript
复制
C:\Program Files\Java\jdk1.8.0_91\bin>java -jar "C:\Users\puspender.tanwar\project\850\Adapter-0.0.10-SNAPSHOT.jar"

现在我只想问几个问题:

  1. 为什么会出现这个问题?为什么rt.jar在JRE和JDK中是不同的
  2. 我的可运行jar文件依赖于一些我不能放在jar中的文件。在使用上述方法运行它时,我需要将它们保存在JDK_HOME/bin.下有什么好办法吗?
EN

回答 1

Stack Overflow用户

发布于 2018-01-05 21:13:26

我不知道你在观察到的行为上有什么不同,但我想到的一件事是.

JDK捆绑了JAXB的(定义)版本,而JRE没有,这可能导致JAXB无法在“JRE专用计算机”上使用。或者使用与类路径不同的版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48121333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档