【问题标题】:Javac not compiling, caching old file, maybe?Javac 不编译,缓存旧文件,也许?
【发布时间】:2015-05-30 01:41:55
【问题描述】:

Windows 7 x64

我知道错误的问题描述,但真的很难解释。

基本上,在最近重新格式化 Windows 并重新安装 java 和所有爵士乐之后,我试图对 IntelliJ 中的旧程序进行一些调整。无论我在程序中进行了什么更改,输出都没有改变。我注释掉或更改了什么并不重要。

因此,经过一番挫折后,我决定进行一些基础测试,以确保我不会只是失去理智。我制作了一个全新的目录。在那个目录中,我创建了一个文件(使用 Sublime Text,而不是 IntelliJ)。您的经典“Hello World”程序。

public class FrequencyCounter {
    public static void main(String args[]) {
        System.out.println("Hello World");
    }
}

那是目录中唯一的文件。然

javac FrequencyCounter.java

似乎编译正常,没有错误,在目录下生成了FrequencyCounter.class文件。然

java FrequencyCounter

得到了这个错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
        at FrequencyCounter.main(FrequencyCounter.java:50)

显然这没有任何意义。就像它没有在该目录中运行 FrequencyCounter 类,而是在其他地方缓存了一些较旧的类。出于理智考虑,我复制了文件,但将其更改为 HelloWorld.javapublic class HelloWorld { ..... },编译并运行良好(在同一目录中)。

如果有帮助:

D:\Copy\Code\Learning\CS\IntelliJ\test>java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

D:\Copy\Code\Learning\CS\IntelliJ\test>javac -version
javac 1.7.0_07

【问题讨论】:

  • 删除类文件再试一次。
  • 现在已经做了六次了
  • 将源代码移动到另一个文件夹并在那里尝试。删除课程时,请尝试 shift+delete。
  • 它已经在我为测试而创建的新目录中。
  • 其中一个罐子里有FrequencyCounter 类吗?因为你没有“。”在你的类路径中,它可能首先运行类路径中的内容,我不记得了。如果您不知道,您可以使用 Winzip 或类似的工具查看 jar; jar 命令也可以列出内容,虽然我不记得是多么随意。

标签: java intellij-idea compilation


【解决方案1】:

假设您告诉我们的内容是正确的,它正在从其他地方运行 FrequencyCounter 类。最有可能的是,您的类路径设置为一个目录或 jar,其中已经有一个 FrequencyCounter 类,并且它正在运行它。

【讨论】:

  • 是的。我什至没有想到,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-22
  • 1970-01-01
  • 2018-11-09
  • 2011-12-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多