繁体   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