簡體   English   中英

java中如何正確設置classpath

[英]How to set the classpath correctly in java

我需要使用gson庫編譯和運行簡單代碼,但我不能使用 Maven、Gradle 或 IDE。該目錄包含Main.javagson-2.9.0.jar

javac -cp gson-2.9.0.jar Main.java正常工作並創建 Main.class

但是當我運行java -cp./*: Main時,我得到

Error: Could not find or load main class Main.

Caused by: java.lang.ClassNotFoundException: Main

我還嘗試了以下命令:

java -cp gson-2.9.0.jar Main

java -cp gson-2.9.0.jar: Main

java -cp ./gson-2.9.0.jar:./* Main

但是所有這些命令都給出相同的結果。 我以前從來沒有在沒有 Maven 或 IDEA 的情況下從命令行運行代碼,所以我認為這是類路徑規范的問題。 我在這里做錯了什么?

如果您的主要 class 在 package 中(具有package...聲明),您需要在java調用中包含 package 名稱,例如java -cp... mypackage.Main

此外, java文檔說明了-cp / --class-path

為了特別方便,包含星號 (*) 基本名稱的 class 路徑元素被認為等同於指定目錄中擴展名為 .jar 或 .JAR 的所有文件的列表。

因此,對.class文件使用*不起作用; 相反,您必須指定目錄名稱。 根據您的問題,您似乎正在使用 Linux,並且.class文件和 JAR 位於同一目錄中,因此以下內容適用於您的情況:

java -cp gson-2.9.0.jar:. Main

(注意:之后的. ,表示包含類路徑的當前目錄)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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