使用命令行从 "wrong" 目录执行 Java class 文件

Executing a Java class file using the command line, but from the "wrong" directory

App.java 是目录 /home/abcd 中的一个简单的“Hello World”应用程序,并且是程序包 abcd 的一部分;也就是说,它有一个 header package abcd;。我可以轻松地编译和 运行 应用程序,从 /home 目录 javac abcd/App.java 和 运行 从上层(即 /home)目录 java abcd.App.

我如何 运行 来自“错误”目录的 class 文件,例如来自 sub-directory abcd 本身,或者实际上来自任何其他目录。

尽管已经出现了几个标题表明它们解决了这个问题的 Whosebug 问题,none 我发现确实如此。

您需要将 /home 指定为 class 路径(或者更确切地说,将其添加到 class 路径)。这是你的包结构所在的目录。

从任何地方,您都可以运行

java -cp /home/ abcd.App

您还可以为 class 路径使用相对路径,这意味着这应该在 /home/abcd/:

中起作用
java -cp .. abcd.App