如何在 mac 终端中简化 java 路由

How to simplify java route in mac terminal

如果我的 mac 中有 eclipse-workspace/bin/test/example.class 我尝试 java example(在测试文件夹中,使用 mac 终端) 但它不起作用只是说

Error: Could not find or load main class haha

但它有效java test/example(在 bin 文件夹中) 我怎样才能在测试文件夹中声明 'java example'? (我可能认为这是关于 PATH,但我找不到解决方案...)

java 可执行文件的参数 不是文件。这是一个完全限定的 class 名称。对于 运行 这样的名称,java 需要知道 class 文件所在的位置(当然还有其中提到的任何类型的 class 文件)——以及它通过搜索 class 路径(而不是 PATH)来执行此操作,其中 文件系统路径 - 您可以指定 jar 文件或目录。无论哪种方式,class 文件都需要与全名完全匹配,例如字符串 class 的全名是 java.lang.String。就是包+名字(String.javapackage java.lang;开头)。

不清楚您是否告诉 Eclipse bin/test 是基础文件夹,或者 bin 是基础文件夹并且您的示例 class 有 package test;顶部。

你会 运行 像这样:

java -cp ~/eclipse-workspace/bin/test example
# or - depends on that package stuff
java -cp ~/eclipse-workspace/bin test.example

如果你有部门参与,事情会变得更复杂。那么它可能看起来像:

java -cp ~/eclipse-workspace/bin:'~/eclipse-workspace/lib/*' test.example

注意单引号:您 NOT 想要 bash(您的 shell)扩大那颗星。它还取决于您的 eclipse 配置。你的问题不可能是日食配置,或者至少,不是没有一些 wildly 奇怪的设置恶作剧 - 通常它是 workspace/projectname/bin/fully/qualified/package/YourClass.class - 即 workspace/projectname/bin 是 class路径。不是 workspace/bin.