簡體   English   中英

Java | 類路徑 | Class 未找到

[英]Java | Classpath | Class not Found

問題:
  1. 我無法執行擴展其他類的類。 我相信這是由於我聲明類路徑的方式。 我正在通過終端執行以下操作。 任何指導都會很棒。 謝謝!
課程:
  1. 蛛形綱動物->父母
  2. 蜘蛛 --> 蛛形綱動物的子類
  3. GardenSpider --> 蜘蛛的子類
目錄:

所有代碼都是從父目錄執行的(我可以看到 bin 和 src)。

src/Spider.java:7: error: cannot find symbol
public class Spider extends Arachnid{
                            ^
  symbol: class Arachnid
1 error
error: compilation failed
課程:1. 蛛形綱動物
// Chapter 6: 6 /* This is a superclass */ public class Arachnid { /* * Constructor */ public Arachnid () { System.out.printf("%s%n%n", "Executing Arachnid constructor"); } public static void main(String[] args) { Arachnid a = new Arachnid(); // create Arachnid object } }
2.蜘蛛
// Chapter 6: 6 /* * This is a subclass - inherits all protected and public members from parent (field, methods, and nested classed) */ public class Spider extends Arachnid{ /* * Constructor */ public Spider () { System.out.printf("%s%n%n", "Executing Spider constructor"); } public static void main(String[] args) { Spider a = new Spider(); // create spider object } }
3. 花園蜘蛛
// Chapter 6: 6 /* This is a subclass */ public class GardenSpider extends Spider{ /* * Constructor */ public GardenSpider () { System.out.printf("%s%n%n", "Executing GardenSpider constructor"); } public static void main(String[] args) { GardenSpider gs = new GardenSpider(); // create garden spider object } }
編譯類
  1. javac -d bin src/*.java
執行類: 1. java -cp bin/Arachnid.class src/Arachnid.java

Executing Arachnid constructor

2. java -cp bin/Arachnid.class:bin/Spider.class src/Spider.java
 src/Spider.java:7: error: cannot find symbol public class Spider extends Arachnid{ ^ symbol: class Arachnid 1 error error: compilation failed
3. java -cp bin/Arachnid.class:bin/Spider.class:bin/GardenSpider.class src/GardenSpider.java
 src/GardenSpider.java:6: error: cannot find symbol public class GardenSpider extends Spider{ ^ symbol: class Spider 1 error error: compilation failed
參考:
  1. “找不到或加載主類”是什么意思?
筆記:
  1. bin/*聲明類路徑時使用的簡寫選項
  2. Class 分隔符:
  3. FQN 應該用於傳遞類路徑
  4. 執行時不需要.java(如果你做對了?)
FQN:
  • /Users/hw_2/src/*.classes
  • /Usershw_2/src/*.java
FQN 示例:
  1. java -cp /Users/hw/hw_2/bin/Arachnid.class src/Arachnid.java

“找不到或加載主類”意味着找不到 class,或者 class 沒有帶有簽名的方法public static void main(String[])

我認為src/Arachnid.java在這兩種情況下都是錯誤的。 你不執行.java源文件,你執行.class文件。 在您的情況下,它們位於/bin目錄中。 嘗試類似:

java -cp bin/Arachnid.class:bin/Spider.class Spider

暫無
暫無

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

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