Questions tagged «javac»

javac是主要的Java编译器,它包含在Sun Microsystems(现在为Oracle)的Java开发工具包(JDK)中,也包含在其他供应商的版本中。

1
为什么array [idx ++] + =“ a”在Java 8中增加一次idx,而在Java 9和10中增加两次?
为了挑战,一位高尔夫球手代码 编写了以下代码: import java.util.*; public class Main { public static void main(String[] args) { int size = 3; String[] array = new String[size]; Arrays.fill(array, ""); for(int i = 0; i <= 100; ) { array[i++%size] += i + " "; } for(String element: array) { System.out.println(element); } } } 在Java …
751 java  java-8  javac  java-9  java-10 


12
错误:java:无效的源发行版:Intellij中的8。这是什么意思?
我正在尝试使用Intellij Ultimate 13.1.4编译一些代码,但是出现以下错误,我不知道这意味着什么: Information:Using javac 1.7.0_55 to compile java sources Information:java: Errors occurred while compiling module 'Example' Information:Compilation completed with 1 error and 0 warnings in 3 sec Information:1 error Information:0 warnings Error:java: invalid source release: 8 我的猜测是它与Java 8 vs Java 7有关,但是我不知道具体是什么。我已尝试在Google周围搜索此消息,但他们要么谈论javac要么target release,所以似乎并不适用。

6
javac不被识别为内部或外部命令,可操作程序或批处理文件
关闭。这个问题不能重现或由错别字引起。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 改善这个问题 尝试编译Java程序时遇到错误。 我在Windows上(这是Windows特定的问题),并且我安装了最新的JDK。 我尝试了一个涉及PATH变量的解决方案,但错误仍然存​​在。 控制台输出: C:\>set path=C:Program Files (x86)\Java\jdk1.7.0\bin C:\>javac Hello.java 'javac' is not recognized as an internal or external command, operable program or batch file.

4
为什么Java类用空白行进行不同的编译?
我有以下Java课 public class HelloWorld { public static void main(String []args) { } } 当我编译该文件并在生成的类文件上运行sha256时,我得到 9c8d09e27ea78319ddb85fcf4f8085aa7762b0ab36dc5ba5fd000dccb63960ff HelloWorld.class 接下来,我修改了该类并添加了一个空白行,如下所示: public class HelloWorld { public static void main(String []args) { } } 再次,我在输出上运行了sha256,期望得到相同的结果,但是我得到了 11f7ad3ad03eb9e0bb7bfa3b97bbe0f17d31194d8d92cc683cfbd7852e2d189f HelloWorld.class 我读过这篇TutorialsPoint文章: 仅包含空格(可能带有注释)的行被称为空白行,而Java完全忽略了它。 所以我的问题是,由于Java忽略空白行,两个程序的编译字节码为何不同? 即在该差HelloWorld.class一个0x03字节是由替换0x04字节。



4
“ java”命令可以编译Java程序吗?
互联网上的大多数网站都说: “使用javac命令编译.java文件。然后使用java命令运行它” 但是今天我试图在没有Java的情况下运行Java程序,但javac结果却很奇怪。 以下是名为的文件的内容hello.java: public class Myclass { public static void main(String[] args){ System.out.println("hello world"); } } 然后我跑了: $ javac hello.java 这给了我这个错误: hello.java:1: error: class Myclass is public, should be declared in a file named Myclass.java public class Myclass { ^ 1 error 但是,当我在没有javac命令的情况下运行它时,它的执行没有任何错误。 $ java hello.java hello world 该java命令还会编译程序吗?如果是,为什么我们需要该javac命令? …
145 java  javac 

6
如何将-Xlint:uncheck添加到基于Android Gradle的项目中?
我试图将以下内容添加到根build.gradle文件中: subprojects { gradle.projectsEvaluated { tasks.withType(Compile) { options.compilerArgs << "-Xlint:unchecked -Xlint:deprecation" } } } 但是我得到这个: FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':Libraries:ActionBarSherlock:compileRelease'. > invalid flag: -Xlint:unchecked -Xlint:deprecation 我究竟做错了什么?
138 android  gradle  javac  lint 

17
Javac在Windows命令提示符下不起作用
我正在尝试javac与Windows命令提示符一起使用,但无法正常工作。 将目录添加"C:\Program Files\Java\jdk1.6.0_16\bin\"到PATH环境变量的末尾后,该java命令可以正常工作,但是使用javac会出现以下错误: 无法将“ javac”识别为内部或外部命令,可操作程序或批处理文件。

9
javac选项以递归方式编译给定目录下的所有java文件
我正在使用javac编译器来编译项目中的Java文件。这些文件分布在几个包像这样:com.vistas.util,com.vistas.converter,com.vistas.LineHelper,com.current.mdcontect。 这些软件包中的每一个都有几个java文件。我正在使用像这样的javac: javac com/vistas/util/*.java com/vistas/converter/*.java com.vistas.LineHelper/*.java com/current/mdcontect/*.java (一行) 除了提供这么多路径之外,我如何要求编译器递归地编译来自父com目录的所有Java文件?
127 java  javac 

12
javac错误:仅在显式请求注释处理的情况下,才接受类名称
编译Java程序时出现此错误: error: Class names, 'EnumDevices', are only accepted if annotation processing is explicitly requested 1 error 这是Java代码(我正在Ubuntu上运行它)。 import jcuda.CUDA; import jcuda.driver.CUdevprop; import jcuda.driver.types.CUdevice; public class EnumDevices { public static void main(String args[]) { CUDA cuda = new CUDA(true); int count = cuda.getDeviceCount(); System.out.println("Total number of devices: " + count); for …
112 java  javac 

11
javac:找不到命令
我已经使用命令在CentOS 5.5版机器中安装了Java yum install java。但是我无法使用javac编译类。 我是否需要安装其他软件包? 我试图找到javac可执行文件,但是我找不到它。 /usr/bin/java链接如下: /usr/bin/java-> /etc/alternatives/java /etc/alternatives/java->/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java 我已经看到了以下输出yum list installed |grep java: java-1.6.0-openjdk.x86_64 1:1.6.0.0-1.16.b17.el5 installed tzdata-java.x86_64 2011b-1.el5 installed

11
Java类文件的创建是否确定性的?
当使用相同的JDK(即相同的javac可执行文件)时,生成的类文件是否始终相同?取决于操作系统或硬件,会有所区别吗?除JDK版本外,是否还有其他因素导致差异?是否有任何编译器选项来避免差异?是仅在理论上可能有所不同,还是Oracle javac实际上针对相同的输入和编译器选项生成了不同的类文件? 更新1我对生成感兴趣,即对编译器输出感兴趣,而不对是否可以在各种平台上运行类文件感兴趣。 更新2 “相同的JDK”也指相同的javac可执行文件。 Update 3在Oracle编译器中的理论差异和实践差异之间的区别。 [编辑,添加解释的问题] “在不同平台上运行相同的javac可执行文件时,在什么情况下会产生不同的字节码?”

2
Java 9编译器中的--release标志是什么?
Java 9javac具有一个新标志--release: > javac --help ... --release <release> Compile for a specific VM version. Supported targets: 6, 7, 8, 9 与-source和-target标志有何不同?这只是它的捷径-source X -target X吗?
85 java  javac  java-9 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.