查找包含核心Java类(如java.lang.Object )的jar的最佳方法是什么?我一直在使用JAVA_HOME,但事实证明,只有安装了JDK才能正常工作。如果从命令行运行java,我如何才能找到将使用的标准库位置?
此外,我需要从Python脚本执行此操作,因此请不要使用Java库进行响应。
发布于 2012-11-25 07:00:10
当您从Oracle启动java时,它将sun.boot.class.path属性设置为指向rt.jar,它通常包含所有java.lang内容。
您可以做的是启动一个简单的Java程序,该程序检索System.getProperty("sun.boot.class.path")并获取该文件所在的位置。在这个here上阅读更多。
如果您的环境是正确的(设置了JAVA_HOME等),上面应该可以工作。否则,我担心你有鸡和蛋的问题;-)
发布于 2012-12-22 06:58:40
由于在放置内部类方面没有明确的限制,因此您应该尝试处理所有可能的(或尽可能多的)位置。
首先,您一定要在PATH中查找java。不幸的是,它有时会失败,例如,您经常可以在C:\Windows\System32中找到java.exe。幸运的是,对于Windows,您可以使用注册表来获取已安装JRE的列表。
如果您发现了一些可能包含基本类的jars,您可以使用zip或jar来检查java/lang/Object.class是否在那里。
发布于 2012-11-25 06:08:08
如果您使用的是linux,您可以使用shell命令:"type java“并解析输出。
https://stackoverflow.com/questions/13546052
复制相似问题