我有一个主要方法的课程。当我使用Windows命令行运行类的主方法时,编译过程使用" javac"命令工作正常(命令行的当前位置 - 具有此类的目录)。文件名为" Card.class"得到的几乎是" Card.java"文件。但命令" java Card"返回错误的描述"无法找到或加载主类"。在Intellij Idea中,这个类中的方法运行得很好。
我试图解决问题的方法(一些解决方案来自StackOverflow主题):
1)完全重新安装JDK和JRE。
2)重写了我的所有环境变量:
JAVA_HOME = C:\ Program Files \ Java \ jdk1.8.0_144
JDK_HOME =%JAVA_HOME%
PATH = C:\ Program Files \ Java \ jdk1.8.0_144 \ bin
CLASSPATH =%JAVA_HOME%\ lib \ dt.jar;%JAVA_HOME%\ jre \ lib \ tools.jar
3)我为" CLASSPATH"尝试了不同的变体。环境变量。另外,我手动写了这个:" java -classpath" $ s"卡"," -classpath"的值我从Intellij Idea命令复制的参数是在IDE中运行程序后返回的。
4)在命令中尝试了类名的一些变体(来自" java Card" to" 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
}
}
Stacktrace我的错误:
myPathToTheProject \ src \ cards> java Card
错误:无法找到或加载主类卡
答案 0 :(得分:0)
在您拥有Card.class
的位置打开CMD set CLASSPATH=""
java Card
我假设您在Card.java上没有包减速
答案 1 :(得分:-1)
让我们在运行前设置类路径正确。这对我来说很好:java -cp ./ Card
或java -cp . Card
。部分:-cp .
或-cp ./
用于将类路径设置为当前文件夹。