Javac 不编译、缓存旧文件,也许吧?
Javac not compiling, caching old file, maybe?
Windows 7 x64
我知道错误的问题描述,但真的很难解释。
基本上,在最近重新格式化 Windows 并重新安装 java 和所有爵士乐之后,我试图对 IntelliJ 中的旧程序进行一些调整。无论我在程序中做了什么更改,输出都没有改变。不管我注释掉或更改了什么。
因此,在有些沮丧之后,我决定进行一些基础测试,以确保我没有失去理智。我做了一个全新的目录。在该目录中,我制作了一个文件(使用 Sublime Text,而不是 IntelliJ)。你的 classic "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 class,而是一些较旧的缓存在其他地方。为了理智起见,我复制了文件,但将其更改为 HelloWorld.java
和 public 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
假设您告诉我们的是正确的,它是 运行 来自其他地方的 FrequencyCounter class。最有可能的是你的 classpath 被设置为一个已经有 FrequencyCounter class 的目录或 jar,它是 运行。
Windows 7 x64
我知道错误的问题描述,但真的很难解释。
基本上,在最近重新格式化 Windows 并重新安装 java 和所有爵士乐之后,我试图对 IntelliJ 中的旧程序进行一些调整。无论我在程序中做了什么更改,输出都没有改变。不管我注释掉或更改了什么。
因此,在有些沮丧之后,我决定进行一些基础测试,以确保我没有失去理智。我做了一个全新的目录。在该目录中,我制作了一个文件(使用 Sublime Text,而不是 IntelliJ)。你的 classic "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 class,而是一些较旧的缓存在其他地方。为了理智起见,我复制了文件,但将其更改为 HelloWorld.java
和 public 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
假设您告诉我们的是正确的,它是 运行 来自其他地方的 FrequencyCounter class。最有可能的是你的 classpath 被设置为一个已经有 FrequencyCounter class 的目录或 jar,它是 运行。