如何在任何文件夹中执行java.class?
这是我的文件夹:如何在任何文件夹中执行java.class?,java,javac,Java,Javac,这是我的文件夹: $ tree . ├── src │ ├── Main.class │ ├── Main.java │ └── xyz │ └── bitfish │ ├── Fish.class │ └── Fish.java 如果我尝试在当前文件夹中执行Main.class,它将失败: $java src/Main Error: Could not find or load main class src.Main Caus
$ tree
.
├── src
│ ├── Main.class
│ ├── Main.java
│ └── xyz
│ └── bitfish
│ ├── Fish.class
│ └── Fish.java
如果我尝试在当前文件夹中执行Main.class,它将失败:
$java src/Main
Error: Could not find or load main class src.Main
Caused by: java.lang.NoClassDefFoundError: Main (wrong name: src/Main)
$ java src.Main
Error: Could not find or load main class src.Main
Caused by: java.lang.NoClassDefFoundError: Main (wrong name: src/Main)
但是,如果我尝试在src文件夹中执行此操作,就可以了
$ cd src
src$ java Main
// it works
有什么问题?如何在任何文件夹中执行Main.class?尝试使用以下命令:
java-classpath src-Main
当你发出命令时
java src/Main-->那么java不仅尝试使用src文件夹中的类;但它也假设包是src.Main;因此,试图以这种方式执行它会给你一个错误;除非Main.java-->Main.class定义的类除了在目录src中之外还位于包“src”中。当您运行
java-help
时,您会得到以下输出:
Usage: java [options] <mainclass> [args...]
(to execute a class)
...
使用java-cpsrc-Main
java -classpath src/ Main