[英]How to set the classpath correctly in java
我需要使用gson
庫編譯和運行簡單代碼,但我不能使用 Maven、Gradle 或 IDE。該目錄包含Main.java
和gson-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.