2017-08-12 132 views
-2

我有一个类的主要方法。当我使用Windows命令行来运行该类的主要方法时,使用“javac”命令的编译过程效果很好(命令行的当前位置 - 具有此类的目录)。名为“Card.class”的文件几乎被创建为“Card.java”文件。但命令“java card”返回错误,描述为“无法找到或加载主类”。在Intellij Idea中,这个方法在这个类中工作得很好。java控制台错误无法找到或加载主类

我所试图做的解决(解决了一些从StackOverflow的主题拍摄)问题:

1)JDK和JRE的完全重新安装。

2)重写了我所有的环境变量:

JAVA_HOME = C:\ Program Files文件\的Java \ jdk1.8.0_144

JDK_HOME =%JAVA_HOME%

PATH = C:\ Program Files文件\爪哇\ jdk1.8.0_144 \ BIN

CLASSPATH =%JAVA_HOME%\ lib中\ dt.jar;%JAVA_HOME%\ JRE \ lib中\的tools.jar

3)我尝试不同的变化为“CLASSPA TH“环境变量。另外,我手动编写了这个文件:“java -classpath”$ s“Card”,其中“-classpath”参数的值是从Intellij Idea命令复制的,在IDE中运行该程序后已返回。

4)尝试命令中的类名的一些变体(从源项目目录中的“java card” 变为“java package_name.Card”)。所有这些变体都被命令行识别,返回相同的错误。

我在想“classpath”变量的问题,但是我发现的所有解决方案都为这个变量建议了不同的值,并且他们中的任何一个都工作了。之前提到了变量的上次更新值。

这里是我的类(可能的问题是在这里):

package cards; 

public class Card { 

    //Constants, constructor, getters, setters, validation checking methods 

    public static void main(String[] args) { 

     // Just to see in the command line that the method was invoked 
     System.out.println("WORK"); 

     // "assert" checks for constants values 

    } 
} 

堆栈跟踪了我的错误:

myPathToTheProject的\ src \卡> Java卡

错误:无法找到或加载主类卡

+0

请重新格式化您的代码,以便阅读。 – UmarZaii

+0

之前,当命令行的“位置”位于项目的源文件夹(src)中时,我尝试了此命令:“java cards.Card”。它不起作用。但是,当我手动添加-cp 作为命令参数时,确实如此。所以Tuyen Nguyen的解决方案确实有帮助。这是我的CLASSPATH环境变量的错误,显然可能发生在其他人身上。类似的问题在这里:https://stackoverflow.com/questions/18093928/what-does-could-not-find-or-load-main-class-mean?rq=1,最好的答案(加上两个顶级投票)正在为此描述另一个解决方案。 –

+0

关于“简单的印刷错误”:http://screenshot.su/show.php?img = 1cf41c141fdc9bd60056965b7ba6793f.jpg –

回答

-1

让我们设置classpath中运行之前正确的。这项工作适合我:java -cp ./ Cardjava -cp . Card。部分:-cp .-cp ./用于将classpath设置为当前文件夹。

0

打开CMD的位置,你有Card.class

set CLASSPATH="" 
java Card 

我假设你没有包减速对Card.java

+0

naa,同样的错误显示出来。 –

+0

另外您发布的代码不包含包装声明,问题非常相似。如果你的包减速可以在你的课堂上说出“包装卡片”,你可以像javac Card.java一样编译它,而不会出现问题。但是如果你尝试运行它,它会抛出异常“main not found”,你需要上一层并执行“java card.Card”。不知道还会发生什么。 – Imran

+0

我也厌倦了这些变化,就像我在问题中所描述的那样,但是它没有帮助将类路径设置为项目的源文件夹 –

相关问题