[英]Java “cannot find or load main class” when trying to run on command line
我有一個Java項目,其目錄結構如下:
java
| build
| src
| gui
| Launcher.java
我正在使用以下命令將程序編譯為.class文件:
find -name "*.java" > src.txt
javac -d build @src.txt
rm $src.txt
編譯后,項目目錄如下所示
java
| build
| gui
| Launcher.class
| src
| gui
| Launcher.java
當我嘗試使用以下命令運行程序時(主要在Launcher.java中):
java -cp .:build:**/*.class gui.Launcher
我收到一條錯誤消息:
Error: Could not find or load main class gui.Launcher
有人看到錯了嗎?
注意:我正在Windows上使用cygwin
因為您的類路徑語法已關閉。
java -cp .:build:**/*.class gui.Launcher
應該是(在Unix上)
java -cp .:build/ gui.Launcher
或(在Windows上)
java -cp .;build/ gui.Launcher
另一個答案對於Linux / Unix和Windows(無Cygwin)是正確的。 但是,當從Cygwin使用Java時,存在一個不匹配之處,即Cygwin試圖像Linux / Unix一樣工作,但是Java是Windows二進制文件,因此它不了解Linux / Unix路徑語法。
這是使用來自Cygwin的類路徑運行java
(或javac
)時需要做的事情。 首先使用分號作為路徑分隔符,然后將整個路徑用引號引起來:
java -cp 'some/directory;path/to/file.jar;etc' main.class.Name <arguments>
請注意,您還可以嘗試使用cygpath
實用程序將Linux / Unix樣式路徑轉換為Java可以理解的Windows格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.