的Java 1.7.0_03错误:无法找到或加载主类
我刚刚升级到最新的Java的Java 1.7.0_03错误:无法找到或加载主类
> java -version
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b05)
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)
> javac -version
javac 1.7.0_03
我有问题,在命令行中执行的Java程序
。例如:
public class Tester {
public static void main(String[] args) {
System.out.println("in main");
}
}
我编译它的命令行,然后尝试执行它:
> javac Tester.java
> java Tester
Error: Could not find or load main class Tester
这是一个错误?奇怪的是,我用Eclipse来执行程序没有问题。
是否设置了CLASSPATH环境变量?当我做
export CLASSPATH=/tmp
java Tester
我得到一个NoClassDefFoundError的,虽然不是完全相同的错误消息,引述。
''classpath''与这个问题无关。 – MrRoth 2012-02-18 18:48:59
另一方面,当我在类路径中没有'.'时,我在Windows上使用相同的Java版本获取完全相同的错误消息。 – 2012-02-18 18:59:05
@MrRoth:确实如此。如果你设置了'CLASSPATH',它不包含'.'或者间接包含'.'的其他引用,你将会得到那个确切的错误。尝试'在控制台窗口中设置CLASSPATH =',如果它工作,那就是你的问题。 (我知道你使用Windows,因为内部版本号在Linux/Solaris上不同) – mihi 2012-02-18 19:02:41
以控制台模式运行jar文件。 java -jar filename.jar
我试图运行Tomcat时发现同样的错误,并意识到这是因为我在32位系统上使用了64位版本的Tomcat。一旦我尝试了32位版本,它的工作。
如果你想运行当前工作目录中你的班级所在的程序。
java给出了三个选项。
第一个选项
java命令测试
当前工作目录
java命令第二个选项。测试
第三种选择出口CLASSPATH变量
出口CLASSPATH = $ CLASSPATH:。 (这是,如果你的目录变化的最佳之一) 或
出口CLASSPATH = $ PWD
或
出口CLASSPATH =
之后,你必须SORCE的.bashrc中或bashprofile。
只设置在系统变量类路径:
classpath=.
是'默认包Tester'类?编译后是当前目录下的文件'Tester.class'? – millimoose 2012-02-18 18:39:13
@Inerdial,_Tester_类完全如此处所示,没有包引用。是的,_Tester.class_文件驻留在执行编译和_java_ iteself的相同目录中。 – MrRoth 2012-02-18 18:41:13
不得不测试,完全相同的程序适用于我的版本。我唯一能想到的就是classpath包含'.' – 2012-02-18 18:50:01