我正在尝试回到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,但我的理解是这应该不是问题。
知道我可能缺少什么吗?
非常感谢!
答案 0 :(得分:3)
执行java
的目录应该是包含包含类的包的根目录。在这种情况下:
$ cd ../..
$ java repotools.repotool.RepoToolApp
请参阅http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/java.html:
默认情况下,没有选项的第一个参数是要调用的类的名称。 应使用完全限定的类名。