簡體   English   中英

嘗試在命令行上運行時,Java“無法找到或加載主類”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM