2016-02-17 36 views
1

我一直在尝试从命令行运行任何.class文件,并且不断收到此错误。在我整个晚上试图找出问题后,我正式陷入困境。Java命令行无法找到或加载主类

我在linux上,我通常使用eclipse,所以我的.java文件和.class文件位于两个不同的位置。

继承人的classpath ....

%> echo $CLASSPATH 
/home/mike/Documents/java 

继承人我的.class目录之一...

/home/mike/Documents/java/homework/bin/src 

继承人相应的.java目录...

/home/mike/Documents/java/homework/src/src 

下面是我在bash中输入的内容...

[ mike (23:31:16): ~] $ >java homework.bin.src.EulerMath 

OR

[ mike (23:32:41): ~/Documents/java] $ >java -cp . homework.bin.src.EulerMath 

OR

[ mike (23:34:08): ~/Documents/java/homework/bin/src] $ >java -cp . EulerMath 

所有给我同样的错误。显然,我试图运行包src中的EulerMath.class。这在eclipse中编译和运行良好,并且我尝试从命令行运行的每个其他程序都有类似的问题。我可以使用javac编译.java文件,但是当试图运行新的.class文件时,我得到这个错误。编号感谢所有帮助

+0

你编译过.java文件吗? – MadProgrammer

+0

是否在包中包含'EulerMath'(什么是'EulerMath'的第一个非注释行)?包名称是Java中类的一部分。目录结构不是没有意义的。 –

+0

@MadProgrammer是,同时使用javac命令和eclipse ElliotFrisch是的,它上面如所述是在src包和包含在我的命令 – mike

回答

0

修改您CLASSPATH

export CLASSPATH="$HOME/Documents/java/homework/bin" 

,那么你可以像

java src.EulerMath 

没有-cp命令行运行它没有设置CLASSPATH(或者,如果你想覆盖集CLASSPATH)你可以做

java -cp $HOME/Documents/java/homework/bin src.EulerMath 

src.EulerMath是你的班级的名字。或者,你可以将它打包成一个带有一些元信息的jar文件(基本上是Main-Class),并运行它java -jar <jarfile.jar>

+0

我已经修改在〜/ .bashrc,其中i改性我的PATH CLASSPATH以及。 CLASSPATH变量反映了这种变化。 – mike

+1

@mike请注意,我在这里提供的CLASSPATH与你所说的类相匹配(即'src/EulerMath.class'在'/ home/mike/Documents/java/homework/bin'中)。你的问题说你把它设置为'/ home/mike/Documents/java/homework/bin/src';注意区别。 –

0

我已经设法找到类(注意:不是运行它,我有一个新的错误但那是一个不同的故事)。希望这有助于别人

某处沿着这些步骤是固定的本身:

  • 确保CLASSPATH是否正确
  • 上的文件安装的javac
  • 使用javac
  • 重新启动计算机

现在应该工作

相关问题