我正在测试 javac -source
标志,我对它应该如何工作感到有点困惑。
以这段代码为例。它是一个不兼容的 Java5 代码,因为方法 isEmpty()
在那个版本的 JDK 中没有为 String 定义。
public class TestJavac {
public static void Main(String args[]) {
String pippo = "pippo";
pippo.isEmpty();
}
}
尝试编译使用:
javac -source 5 TestJavac.java
然后就可以了!
这对我来说听起来很奇怪,但也许有些事情我忽略了。
我的 JAVA_HOME
指向 1.6 JDK
。
最佳答案
源选项仅针对语言级别,不适用于 API(由 JDK 运行时库提供)。
有一个单独的选项 (-bootclasspath -extdirs) 来指定要使用的 JDK(并且您需要获取适当的 jar 文件)。
请注意,还有 -target(它控制输出字节码版本)。
你应该总是指定全部(或者甚至使用旧的 JDK 编译,无论如何你或多或少需要它来使第二个切换工作)
关于java - 为什么 javac "-source"标志不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11794369/