如何在任何文件夹中执行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