找到Java标准库

时间:2012-11-24 22:00:26

标签: java python classpath

找到包含核心Java类(例如java.lang.Object)的jar的最佳方法是什么?我一直在使用JAVA_HOME,但事实证明,只有安装了JDK才能使用它。如果从命令行运行java,我怎样才能找到将使用的标准库位置?

另外,我需要从Python脚本执行此操作,因此请不要使用Java库进行响应。

4 个答案:

答案 0 :(得分:2)

当您从Oracle的JVM启动java时,它会将sun.boot.class.path属性设置为指向rt.jar,该java.lang通常包含所有System.getProperty("sun.boot.class.path")内容。

你可以做的是启动一个简单的Java程序,它检索JAVA_HOME并获取该文件的位置。详细了解here

如果您的环境正确({{1}}已设置等),则上述应该有效。否则,我担心你有鸡和蛋的问题; - )

答案 1 :(得分:1)

由于放置内部类没有明确的限制,所以你应该尝试处理所有可能的(或尽可能多的)地方。

首先,你一定要在PATH中寻找java。不幸的是,它有时会失败,例如,您经常可以在java.exe中找到C:\Windows\System32。幸运的是,在Windows的情况下,您可以使用注册表来获取已安装的JRE列表。

如果您找到了一些可能包含基本课程的jar,您可以使用zipjar来检查java/lang/Object.class是否存在。

答案 2 :(得分:0)

如果您使用的是linux,则可以使用shell命令:“type java”并解析输出。

答案 3 :(得分:0)

Python应该有办法找到“java”或“java.exe”可执行文件的位置。按照所有符号链接显示真实位置。我的Python很生疏,但我认为shutil.whichos.path.realpath可以完成这项工作。

核心类将相对于java可执行文件位于../lib/rt.jar