在何处检查JRE for Java是否附带了包
我在java桌面应用程序中使用javax.xml.soap包,我想检查该包(以及JDK附带的任何包)是否在JRE的不同平台(win、mac、linux)上可供部署。 其目的是确保我的应用程序将运行在带有JRE的目标机器上,或者检查是否需要完整的JDK。同样对于linux,我希望确保开放的jdk jre 1.6(而不是oracle)就足够了。在何处检查JRE for Java是否附带了包,java,Java,我在java桌面应用程序中使用javax.xml.soap包,我想检查该包(以及JDK附带的任何包)是否在JRE的不同平台(win、mac、linux)上可供部署。 其目的是确保我的应用程序将运行在带有JRE的目标机器上,或者检查是否需要完整的JDK。同样对于linux,我希望确保开放的jdk jre 1.6(而不是oracle)就足够了。 感谢在运行时猜测JVM中是否存在包的方法: 检查JRE版本系统属性(java.version) 尝试在javax.xml.soap中使用 然而,在实践中
感谢在运行时猜测JVM中是否存在包的方法:
- 检查JRE版本系统属性(
)java.version
- 尝试在
中使用javax.xml.soap
然而,在实践中,我宁愿要求在我的系统需求中使用某些JRE来运行我的应用程序,而不仅仅是试图检测包是否可用 猜测运行时JVM中是否存在包的方法:
- 检查JRE版本系统属性(
)java.version
- 尝试在
中使用javax.xml.soap
然而,在实践中,我宁愿要求在我的系统需求中使用某些JRE来运行我的应用程序,而不仅仅是试图检测包是否可用 在可移植性方面的努力非常好! 我建议您需要Java7,因为OpenJDK7是它的默认实现,所以没有更多的“OracleJava比openjdk更好”。 我认为要求Java7比要求特定的Java实现(Oracle)或“检查它是否在OpenJDK6上运行”要好。
不管怎样,我建议大卫的观点 在可移植性方面的努力非常好! 我建议您需要Java7,因为OpenJDK7是它的默认实现,所以没有更多的“OracleJava比openjdk更好”。 我认为要求Java7比要求特定的Java实现(Oracle)或“检查它是否在OpenJDK6上运行”要好。
不管怎样,我建议大卫的观点 如果您不想知道某个类是否包含在您拥有的JRE中,请执行以下操作:
- 找到你的JRE的
,我的是rt.jar
/usr/lib/jvm/jdk1.7.0\u 07/JRE/lib/rt.jar
- 用您喜爱的
查看器打开它.zip
- 搜索被通缉的班级
- 你完了李>
如果您不想知道正在运行的JRE是否包含您的类,请执行以下操作:
- 使用不想测试的类的类名调用
Class.forName
- 把这个放在试抓块里
- 如果您捕获到一个
,它就不在那里李>ClassNotFoundException
- 请注意,这并不表示它是否在默认库中,只表示它在类路径上李>
- 找到你的JRE的
,我的是rt.jar
/usr/lib/jvm/jdk1.7.0\u 07/JRE/lib/rt.jar
- 用您喜爱的
查看器打开它.zip
- 搜索被通缉的班级
- 你完了李>
如果您不想知道正在运行的JRE是否包含您的类,请执行以下操作:
- 使用不想测试的类的类名调用
Class.forName
- 把这个放在试抓块里
- 如果您捕获到一个
,它就不在那里李>ClassNotFoundException
- 请注意,这并不表示它是否在默认库中,只表示它在类路径上李>
Class.forName(someClass)
并等待ClassNotFoundException…抱歉,也许我的问题不够清楚。我正在寻找文档,说明在部署我的应用程序之前,JRE上是否有某个包,或者是否需要JDK。我希望避免将我的应用程序打包并在仅配备JRE的目标机器上测试,以查看该包/类是否存在。。。它们毕竟是.zip文件。太棒了!那正是我要找的for@Iviggiani:在回答此问题时总结了我的评论。Class.forName(someClass)
并等待ClassNotFoundException…很抱歉,我的问题可能不够清楚。我正在寻找文档,说明在部署我的应用程序之前,JRE上是否有某个包,或者是否需要JDK。我希望避免将我的应用程序打包并在仅配备JRE的目标机器上测试,以查看该包/类是否存在。。。它们毕竟是.zip文件。太棒了!那正是我要找的for@Iviggiani:在回答这个问题的未来读者时总结了我的评论。对不起,也许我的问题不够清楚。我正在寻找文档,说明在部署我的应用程序之前,JRE上是否有某个包,或者是否需要JDK。我希望避免将我的应用程序打包,并在仅配备JRE的目标机器上测试,以查看该包/类是否存在。因此,您不是试图通过编程实现这一点,而是通过阅读文档。一般来说,除非你想使用任何开发工具(比如javac),否则你不需要JDK。所有的运行时包都是JRE的一部分,或者是一些第三方库,或者可能是一些Oracle附加组件(JavaMail就是一个例子)。不过,除了Oracle和IBM之外,我没有使用JDK的经验。很可能有些产品的包装有所不同。如果我必须支持他们,我会像回答中所描述的那样去猜测。对不起,也许我的问题不够清楚。我正在寻找文档,说明在部署我的应用程序之前,JRE上是否有某个包,或者是否需要JDK。我希望避免仅在JRE上打包应用程序和测试