【问题标题】:class not found after compiling as Jar file编译为 Jar 文件后找不到类
【发布时间】:2014-09-09 06:07:46
【问题描述】:

有一个 jar 文件已经部署并成功运行。现在我们需要在一个类中添加一个非常小的字符串。

These are the steps so far i made:

1.) I already decompile/extract the jar into a folder. 
2.) Open a class file in JDgui(java file viewer).
3.) Copy the source code in notepad++ and save as fileName.java
4.) Compile that .java as .class via cmd.
5.) Compile the folder again as .jar file (the same as the old .jar which is running)

现在当我重新启动 Tomcat 时,运行系统,然后它显示错误:

ClassNotFoundException

当我在 JDGui 中打开该 jar 文件时,该类就在其中。

请帮忙。谢谢

【问题讨论】:

  • 确保类文件的名称和包相同。
  • 您是如何实现以下目标的:4。)通过 cmd 将该 .java 编译为 .class。没有错误?
  • @BatScream - 当我尝试在 cmd 中将 fileName.java 编译为 .class usign javac 时,会发生很多错误,然后我调试所有错误并成功。然后我现在创建了 .class 文件。当我尝试将新的 .class 文件与旧文件进行比较时,除了使用的变量之外,它们是相同的。
  • 你在用netbeans吗?

标签: java class jar classnotfoundexception


【解决方案1】:

这无疑是由于您以不同的方式命名类或将其放在不同的包(不同的文件夹)中的错误。

当您将类的源代码保存在Java文件中时,请确保将其保存在反映其包的文件夹中,并将package语句放在文件开头,正确反映文件夹结构。

还要注意,如果类被声明为public,它必须位于以该类命名的文件中:ClassName.java,否则它甚至无法编译。因此,在这种情况下,您将其保存在 filename.java 中将不起作用。

还要确保在修改此 java 文件后重新编译它时不会出现编译错误(否则您将不会得到.class 文件的结果)。

【讨论】:

    猜你喜欢
    • 2014-01-24
    • 1970-01-01
    • 2012-11-17
    • 2016-10-02
    • 1970-01-01
    • 2017-12-10
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多