首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding
V2EX  ›  Java

[求助]关于 cmd 命令运行时发现错误(已加 classpath): 找不到或无法加载主类 Main.class 原因: Java .lang.ClassNotFoundException: Main.class

  •  
  •   linmaoxe2v · 73 天前 · 1612 次点击
    这是一个创建于 73 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小弟下了个 java,打算学点皮毛,在 eclipse 编译执行顺利,但突然发现 在 windows cmd 命令下 java 执行一个随便一个超级简单的 class,都不行 classpath 不论是手动环境变量设置,还是 cmd 加参数设置 classpath,都不行,试了绝对路径和相对路径都不行,我要抓了。 java 内容,就简单一句: public class Main { public static void main(String[] args) { System.out.println(1); } }

    然后 cmd 命令在其路径下(该路径下已经 javac 编译出 Main.class 文件了) E:\Users\linmao\eclipse-workspace\hello\src>java -classpath ".;" Main.class 错误: 找不到或无法加载主类 Main.class 原因: java.lang.ClassNotFoundException: Main.class

    绝对路径和相对路径都试过了

    有没有大神,告诉怎么 debug,我不知道这个怎么 debug,求助,困扰了很久了,脑子都秀逗了

    15 回复  |  直到 2019-10-02 17:38:35 +08:00
        1
    avk458   73 天前
    编译过了?
        2
    linmaoxe2v   73 天前
    @avk458 在 eclipse 编译通过并执行成功了,然后我是在 cmd 里切到这个路径下,cmd 命令 java 运行这个 class 文件,发现不行。关键我还带了 classpath,也不行。我也觉得想不通
        3
    QiuSe   73 天前
    你可能带 package 了,编译的时候要 -d . XXX.java;
        4
    linmaoxe2v   73 天前
    @QiuSe 我试了下,还是不行
    java -classpath ".;" Main.class -d Main.java
    错误: 找不到或无法加载主类 Main.class
    原因: java.lang.ClassNotFoundException: Main.class


    你们这种一般都怎么定位 debug 呀?我一点头绪都没
        5
    linmaoxe2v   73 天前
    @QiuSe java -classpath "." Main.class -d . Main.java, 也试了,也不行哈
        6
    imzcg   73 天前 via Android   ♥ 2
    ???谁教你的
    🤔
    javac *.java
    java *
        7
    kokutou   73 天前
    我记得都是要先 javac,然后 java 的啊。。。
        8
    maokabc   73 天前 via Android   ♥ 2
    明显的,运行不要加.class 后缀
        9
    linmaoxe2v   73 天前
    @imzcg 我描述清楚,我拿的是 eclipse 编译成功也执行 class 成功的 class 文件。也就是 eclipse 上编译成功后并执行的 Main.class 文件,手动去执行的时候,发现不行
        10
    linmaoxe2v   73 天前
    @kokutou 我没描述清楚,我拿的是 eclipse 编译成功也执行 class 成功的 class 文件。也就是 eclipse 上编译成功后并执行的 Main.class 文件,手动 cmd 去执行的时候,发现不行
        11
    linmaoxe2v   73 天前
    @maokabc 你说的对,是我没理解透 java,去掉后缀 class 后,就成功了,让你见笑了哈
        12
    aLazarus   73 天前 via Android   ♥ 1
    java 命令是根据.这个符号来表示目录结构的
    所以如果你用 java main.class,他会去寻找一个叫做 java 的 package 中叫做 class 的文件
        13
    linmaoxe2v   73 天前
    @aLazarus 嗯嗯,领教了哈,之前没理解哈,以为就是像 Python *.py 这种,让大家见笑了哈
        14
    Aruforce   72 天前 via Android
    jar 包 META-INF 文件夹下有个 M 开头的文件 里面需要指定 main class 你可以看下 jar 规范… 楼上几个真逗…
        15
    aLazarus   72 天前
    @Aruforce #14 manifest.mf
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2323 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 05:00 · PVG 13:00 · LAX 21:00 · JFK 00:00
    ♥ Do have faith in what you're doing.