如何运行类路径中有jar的java类?

6jjcrrmo  于 2023-02-02  发布在  Java
关注(0)|答案(4)|浏览(120)

所以,我可以很好地做到这一点:

java mypackage.MyClass

如果./mypackage/MyClass.class存在的话。我也可以很高兴地这样做:

java -cp myjar.jar mypackage.MyClass

类文件是否存在于jar的适当部分,很简单,但是我一辈子都做不了这样的事情:

java -cp utilities.jar mypackage.MyClass

其中./mypackage/MyClass.class存在,./utilities.jar存在(当然不包含MyClass)。
我是不是觉得自己很蠢?

pftdvrlh

pftdvrlh1#

可能:)

# On Unix
java -cp utilities.jar:. mypackage.MyClass

# On Windows
java -cp utilities.jar;. mypackage.MyClass

基本上,这只是在类路径和jar文件中包含.(当前目录)。

wlwcrazw

wlwcrazw2#

如果您使用的是Windows,请尝试以下操作:

java -cp .;utilities.jar mypackage.MyClass

如果你使用的是Linux,那么就这样:

java -cp .:utilities.jar mypackage.MyClass

-cp指定值时,默认情况下当前目录不在CLASSPATH中。

dtcbnfnu

dtcbnfnu3#

这个问题似乎过时了。但是没有答案提到不先使用javac直接运行源文件的功能,适用于JDK 11+。
在Linux上:

java -cp some-library.jar:some-other-library.jar AClassName.java

在窗口上:

java -cp "some-library.jar;some-other-library.jar" AClassName.java
omjgkv6w

omjgkv6w4#

应将mypackage.MyClass包含到CLASSPATH-cp参数中。例如:

java -cp utilities.jar;myjar.jar mypackage.MyClass

路径分隔符在Windows上为;,在Unix/Linux上为:

相关问题