OSX / Eclipse / JDK /无法从bash

时间:2015-07-19 12:48:22

标签: java eclipse macos bash classpath

我正在尝试回到OSX 10.9.5上的Java开发,并且遇到一个非常基本的问题,即在命令行上运行一个简单的程序。

我已经安装了最近的JDK:

$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)**

我安装了Eclipse,版本:Luna Service Release 2(4.4.2)

我在Eclipse中创建了一个简单的Java程序,并将其配置为使用我安装的JRE版本1.8.0_45。

我可以在IDE中从这个项目运行一个简单的HelloWorld程序:

package repotools.repotool;

public class RepoToolApp
{
    public static void main(String[] args)
    {
        System.out.println("Hello World!");
    }
}

它显示了Eclipse控制台中的预期输出。

我无法从我的bash shell运行它。当我尝试运行它时,我得到了常见的错误:

$ ls
RepoTool.class      RepoToolApp.class
$ java RepoToolApp
Error: Could not find or load main class RepoToolApp
$ java -cp ./ RepoToolApp
Error: Could not find or load main class RepoToolApp
$ export CLASSPATH=.
$ java RepoToolApp
Error: Could not find or load main class RepoToolApp
$

我没有.bashrc文件,但似乎我可以执行java和javac,因为它们在我的路径中。默认情况下没有设置CLASSPATH,但我的理解是这应该不是问题。

知道我可能缺少什么吗?

非常感谢!

1 个答案:

答案 0 :(得分:3)

执行java的目录应该是包含包含类的包的根目录。在这种情况下:

$ cd ../..
$ java repotools.repotool.RepoToolApp

请参阅http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/java.html

  

默认情况下,没有选项的第一个参数是要调用的类的名称。 应使用完全限定的类名。