2015-07-19 70 views
1

我试图回到OSX 10.9.5上的Java开发中,并且遇到了一个非常基本的问题,即在命令行上运行一个简单的程序。OSX/Eclipse/JDK /无法从bash运行HelloWorld

我已经安装了最新的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版本:月神服务版本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,但我的理解是不应该是一个问题。

任何想法可能会失踪?

非常感谢!

+0

'CD ../ ..',直到上面'repotools/repotool'的目录,然后运行'java的repotools.repotool.RepoToolApp' 。 – RealSkeptic

回答

3

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

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

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

By default, the first argument without an option is the name of the class to be called. A fully qualified class name should be used.

+0

非常感谢,它的工作原理! –