在何处检查JRE for Java是否附带了包

在何处检查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中使用 然而,在实践中

我在java桌面应用程序中使用javax.xml.soap包,我想检查该包(以及JDK附带的任何包)是否在JRE的不同平台(win、mac、linux)上可供部署。 其目的是确保我的应用程序将运行在带有JRE的目标机器上,或者检查是否需要完整的JDK。同样对于linux,我希望确保开放的jdk jre 1.6(而不是oracle)就足够了。
感谢

在运行时猜测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中,请执行以下操作:

  • 找到你的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上打包应用程序和测试