Java 使用命令行工具列出当前类路径中的可用类

Java 使用命令行工具列出当前类路径中的可用类,java,linux,classpath,Java,Linux,Classpath,我需要使用默认的JRE/JDK命令行工具检查当前目录中是否有特定的类可用 我可以构建自己的类来列出它,或者检查特定类是否可以从当前目录和当前CLASSPATH环境变量访问,但此选项不可用,因为我需要检查特定类名是否在受保护的生产环境中可用(只读)。您可以使用javap: 您可以使用javap: 您可以使用命令的-verbose选项并搜索特定类的完全限定名 $ java -verbose -jar MyProgram.jar | grep "java.lang.String" [Loaded ja

我需要使用默认的JRE/JDK命令行工具检查当前目录中是否有特定的类可用

我可以构建自己的类来列出它,或者检查特定类是否可以从当前目录和当前CLASSPATH环境变量访问,但此选项不可用,因为我需要检查特定类名是否在受保护的生产环境中可用(只读)。

您可以使用javap:

您可以使用javap:

您可以使用命令的-verbose选项并搜索特定类的完全限定名

$ java -verbose -jar MyProgram.jar | grep "java.lang.String" [Loaded java.lang.String from /Library/Java/…/Contents/Home/jre/lib/rt.jar] [Loaded java.lang.StringBuffer from /Library/Java/…/Contents/Home/jre/lib/rt.jar] … 附录:我想检查一个环境的类可用性


如果您是从java命令行运行的,则将搜索-classpath选项中指定的路径或classpath环境变量。如果您是从JAR运行的,则清单的类路径属性(例如)将取代这些设置

如果您试图找到一个所需的JAR,而该JAR可能无法通过这些方式访问,那么您必须搜索文件系统。我使用find、jar和grep的组合,通常侧重于在系统属性中定义的路径,如java.annowed.dirs和java.ext.dirs;给出了几种相关的方法

您可以使用命令的-verbose选项并搜索特定类的完全限定名

$ java -verbose -jar MyProgram.jar | grep "java.lang.String" [Loaded java.lang.String from /Library/Java/…/Contents/Home/jre/lib/rt.jar] [Loaded java.lang.StringBuffer from /Library/Java/…/Contents/Home/jre/lib/rt.jar] … 附录:我想检查一个环境的类可用性


如果您是从java命令行运行的,则将搜索-classpath选项中指定的路径或classpath环境变量。如果您是从JAR运行的,则清单的类路径属性(例如)将取代这些设置


如果您试图找到一个所需的JAR,而该JAR可能无法通过这些方式访问,那么您必须搜索文件系统。我使用find、jar和grep的组合,通常侧重于在系统属性中定义的路径,如java.annowed.dirs和java.ext.dirs;给出了几种相关的方法

如果您是从JAR运行的,请检查清单的类路径属性。这就是@trashgod。我想检查环境的类可用性,而不是它是否存在于特定的jar中。如果您是从jar运行的,请检查清单的类路径属性。这就是@trashgod。我想检查环境的类可用性,而不是检查它是否存在于特定的jar中。如果您试图在特定的jar文件上查找类,可以这样做。javap-cp file1.jar:file2.jar com.example.classyoulookfor如果您试图在特定的jar文件上找到一个类,那么可以这样做。javap-cp file1.jar:file2.jar com.example.ClassYouLookFor