我有一个非常简单的类文件(.class),当我进行注释包分配时,我完全可以确定它工作正常:
package com.domain.core;
public class Challenge {
public static final int ID = (int) Math.abs(Math.random()*10);
public static void getDescription() {
System.out.println("Challenge ID: " + ID);
}
public static void main(String args[]) {
getDescription();
}
}
我正在通过常规CMD在Windows计算机上对此进行测试。没有指定全局CLASSPATH。我在C驱动器的“ myclasses”目录中找到了.class文件。因此,该类的路径为:“ C:\ myclasses”
此处的目的是使用jvm的-classpath选项运行该类。我检查了以下方法:
在C盘中:
在目录“ C:\ myclasses”内
将-cp替换为-classpath的结果相同:
Error: Could not find or load main class com.domain.core.Challenge
JVM:
C:\>java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
真的很奇怪。你们能指出我在这里做错了吗?
谢谢!
答案 0 :(得分:1)
JVM希望在类路径中目录的Challenge.class
子目录中找到com/domain/core
文件,而不是直接在类路径中的目录中找到。因此,如果您将其放在C:\myclasses
中,则它不是预期的位置。您需要将其移至C:\myclasses\com\domain\core
并在类路径中指定C:\myclasses
。