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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 …Run Code Online (Sandbox Code Playgroud) 我收到以下警告:
[javac] build.xml:9: warning: 'includeantruntime' was not set,
defaulting to build.sysclasspath=last; set to false for repeatable builds
Run Code Online (Sandbox Code Playgroud)
这是什么意思?
我试图编译一些代码在我使用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
Run Code Online (Sandbox Code Playgroud)
我的猜测是它与Java 8和Java 7有关,但我不知道具体是什么.我试图谷歌周围的这个消息,但他们要么谈论javac或target release,所以它似乎并不完全适用.
我在尝试编译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.
Run Code Online (Sandbox Code Playgroud) 我有以下Java类
public class HelloWorld {
public static void main(String []args) {
}
}
Run Code Online (Sandbox Code Playgroud)
当我编译这个文件并在生成的类文件上运行sha256时,我得到了
9c8d09e27ea78319ddb85fcf4f8085aa7762b0ab36dc5ba5fd000dccb63960ff HelloWorld.class
Run Code Online (Sandbox Code Playgroud)
接下来我修改了类并添加了一个如下所示的空白行:
public class HelloWorld {
public static void main(String []args) {
}
}
Run Code Online (Sandbox Code Playgroud)
我再次在输出上运行sha256,期望得到相同的结果,但我得到了
11f7ad3ad03eb9e0bb7bfa3b97bbe0f17d31194d8d92cc683cfbd7852e2d189f HelloWorld.class
Run Code Online (Sandbox Code Playgroud)
我已阅读此TutorialsPoint文章:
只包含空格的行(可能带有注释)称为空行,Java完全忽略它.
所以我的问题是,由于Java忽略空行,为什么两个程序的编译字节码都不同?
即在该差HelloWorld.class一个0x03字节是由替换0x04字节.
Eclipse的Java编译器只是程序所在的同一个核心的包装器javac,还是一个单独的编译器?如果是后者,为什么他们会重新发明轮子?
互联网上的大多数网站都说:
“使用
javac命令编译.java文件。然后使用java命令运行它”
但是今天我试图在没有Java的情况下运行Java程序,但javac结果却很奇怪。
以下是名为的文件的内容hello.java:
public class Myclass {
public static void main(String[] args){
System.out.println("hello world");
}
}
Run Code Online (Sandbox Code Playgroud)
然后我跑了:
$ javac hello.java
Run Code Online (Sandbox Code Playgroud)
这给了我这个错误:
hello.java:1: error: class Myclass is public, should be declared in a file named Myclass.java
public class Myclass {
^
1 error
Run Code Online (Sandbox Code Playgroud)
但是,当我不使用javac命令运行它时,它执行时没有任何错误。
$ java hello.java
hello world
Run Code Online (Sandbox Code Playgroud)
该java命令还会编译程序吗?如果是,为什么我们需要该javac命令?
我的Java版本是:
openjdk version "12.0.2" 2019-07-16
OpenJDK Runtime Environment (build 12.0.2+10)
OpenJDK 64-Bit Server VM …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用javacWindows命令提示符,但它不起作用.
将目录添加"C:\Program Files\Java\jdk1.6.0_16\bin\"到PATH环境变量的末尾后,该java命令正常工作,但使用时javac给出了以下错误:
'javac'未被识别为内部或外部命令,可操作程序或批处理文件.
我尝试将以下内容添加到根build.gradle文件中:
subprojects {
gradle.projectsEvaluated {
tasks.withType(Compile) {
options.compilerArgs << "-Xlint:unchecked -Xlint:deprecation"
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':Libraries:ActionBarSherlock:compileRelease'.
> invalid flag: -Xlint:unchecked -Xlint:deprecation
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?