[英]Java classpath issue '.' vs. './*'
我正在尝试从命令行编译和运行一个简单的 java hello world 程序。
当我这样做时,它会成功编译并运行:
> javac HelloWorld.java
> java HelloWorld
但是,当我在这个 hello world 程序中放置 jar 依赖项并将相应的 jar 放在同一目录中时,我遇到了类路径问题。
我可以编译:
> javac -cp ./* HelloWorld.java
但是当我尝试在指定 jar 的类路径时运行时,找不到我的 HelloWorld class。
> java -cp ./* HelloWorld
Error: Could not find or load main class HelloWorld
当 classpath 为./*
时,找到 jar 但未找到 class,并且当 classpath 为.
,找到了 class,但没有找到 jar。
我也尝试同时指定两者,但是每当我在类路径中使用:
时,都找不到主要的 class 。
> java -cp "./*:." HelloWorld
Error: Could not find or load main class HelloWorld
如何为 java 指定类路径以找到 jar 和我的 class?
在 powershell 中,一种解决方案是使用;
而不是:
。
即这适用于 powershell:
> java -cp "./*;." HelloWorld
hello, world
尝试的想法来自对这个问题的回答:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.