0

如何解决这个问题?我可以编译它,但我不能运行它。我有不同版本的javacjava。我正在尝试.java在终端上运行我的文件。但它适用于日食。我知道那个版本会影响这个。如何升级javac?如果我这样做会影响我的日食吗?谢谢。;)

[clemjon@localhost ~]$ javac -version

javac 1.6.0_20


[clemjon@localhost ~]$ java -version

java version "1.6.0_21"

Java(TM) SE 运行时环境(内部版本 1.6.0_21-b06) Java HotSpot(TM) 服务器 VM(内部版本 17.0-b16,混合模式)

4

2 回答 2

0

检查哪个 JRE eclipse 正在使用:

Window->Preferences->Java->JREs 右键单击选定的一个和Edit
JRE 主路径应该在那里。将该路径添加到您的path环境变量(而不是已经存在的那个),这应该可以为您解决问题。

您还可以设置希望 Eclipse 编译到的 JDK 版本:
Window->Preferences->Java->Compiler

我最好的建议是跟踪所有已安装的 JDK 和 JRE。

选择您要默认使用的那些并将它们添加到您的JAVA_HOMEPath环境变量中;然后使用上述步骤将 Eclipse 设置为相同的值。

然后,如果对于特定项目,您需要使用特定的 JRE,请右键单击该项目,然后转到BuildPath-> Libraries-> JRE Library->Edit并选择您的 JRE。

免责声明:我现在不在我的开发机器上,所以名称可能是近似的。:)

于 2013-10-08T03:42:00.190 回答
0

javac这与和的不同版本无关java。这里的问题是您正在尝试运行一个类文件,其完全限定名称 ( ) 与您传递给( )com.pl.casestudy.First的类名称不匹配。如果你有相同版本的和 ,你会得到同样的错误。javaFirstjavacjava

如果您有一个名称为 的类com.pl.casestudy.First,Java 将在具有名称的文件中查找它com/pl/casestudy/First.class(Windows 用户可以随意反转斜杠的方向。)因此您需要First从包含com子目录的目录中运行您的类。我可以从您的堆栈跟踪中的 shell 提示中看到您有一个名为 的目录casestudy,我假设compl父目录也存在。Eclipse 可能已经为您创建了它们。

尝试cd到包含的目录,com使用编译

javac com/pl/casestudy/First.java

并使用

java com.pl.casestudy.First
于 2013-10-08T08:15:02.017 回答