【问题标题】:Java - NoClassDefFoundError on runningJava - 运行时出现 NoClassDefFoundError
【发布时间】:2013-08-15 22:27:12
【问题描述】:

今天我尝试通过命令提示符编译我的源代码:

PS ...\JavaDev\Prog> javac -classpath <libs> -d . -sourcepath src src/com/negi/prog/Prog.java

他们编译成功了。

但是当我尝试运行它时,它会产生错误:

PS ...\JavaDev\Prog> java -classpath com.negi.prog.Prog 线程“主”java.lang.NoClassDefFoundError 中的异常:com/negi/prog/Prog 引起:java.lang.ClassNotFoundException:com.negi.prog.Prog

我该如何解决这个问题?

【问题讨论】:

    标签: java


    【解决方案1】:

    -classpath 中的类必须用: 分隔

    PS ...\JavaDev\Prog> java -classpath "<libs>:com.negi.prog.Prog"
    

    为了完成答案,不同的操作系统有不同的类路径分隔符。您可以通过检索java.class.path 属性的值来检查分隔符。

    【讨论】:

    • 实际上不同的操作系统有不同的类路径分隔符,因此System中的java.class.path属性。
    • 因为他在 Windows 上(通过使用反斜杠而不是正斜杠来判断)他需要使用;Relevant.
    • 正确。但我的猜测是这就是该类未包含在类路径中的原因。
    • @kocko 没错,您的回答是正确的,只要确保我们获得完整的信息。
    【解决方案2】:

    默认情况下。 (当前路径)包含在类路径中,但如果您指定 -classpath 或 -cp,则会被覆盖。包括 。在你的类路径中:

    java -classpath <libs>:. com.negi.prog.Prog
    

    【讨论】:

      【解决方案3】:

      运行时需要确保当前目录在类路径中,即

      PS ...\JavaDev\Prog> java -classpath <libs>:. com.negi.prog.Prog
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多