javac <Filename> - a java command that compiles java source files into bytecodes.
它需要一个扩展,因为您正在编译源文件。
java -cp <classpath> <Classname> - a java command that executes the compiled bytecodes.
它不需要扩展,因为您只是告诉它从类路径中搜索要执行的类及其main()签名。
希望这有帮助!
如果你的源代码只是一个文件,它们是等价的。前者(有两个命令)是编译和运行Java源代码的通用方法,它仍然是编译更大项目的正确方法。后者是JDK11中增加的新功能,使运行单个文件和非常小的程序更加容易。
从建议特征的提案中
在源文件模式下,效果就像源文件被编译到内存中,并且执行源文件中找到的第一个类。例如,如果文件名为HelloWorld。java包含一个名为hello的类。世界
,然后命令
java HelloWorld.java
非正式地等同于
javac -d <memory> HelloWorld.java
java -cp <memory> hello.World
问题内容: 我正在尝试在中指定JDK的另一个版本maven-compiler-plugin。当-target和-source参数设置为1.5时,一切正常。但是,当我尝试使用1.6 JDK时,maven报告了一个错误。有人遇到过这个问题吗? 错误: 执行Javac失败,但无法解析错误:javac:无效标志:-s用法:javac,可能的选项包括:-g生成所有调试信息-g:none不生成调试信息 谢谢。
我试图在< code > maven-compiler-plugin 中指定另一个版本的JDK。当< code>-target和< code>-source参数设置为1.5时,一切正常。但是当我尝试使用1.6版JDK时,maven报告了一个错误。有人面临过这个问题吗? 错误: 执行 javac 失败,但无法解析错误: javac: 无效标志: -s 用法: javac(如果可能)选项包括: -g
问题内容: 我有一个导入一些servlet库的类。当我从命令行编译它时就可以了。 当我使用ant编译任务对其进行编译时,它会给出错误,即在其路径中找不到servlet库。 那是已知/常见的事件吗? 这是我的Ant目标: 问题答案: 如果您没有在任务的类路径中正确指定servlet库,这是一种常见的情况…我怀疑这就是问题所在。如果您发布失败的任务和有效的命令行,我们将为您提供更多帮助。
我有一些用< code>javac 1.8.0_92编译的代码: 但是,对于 ,需要一些额外的类型 (): 可以想象,这会给用户从源代码构建的包带来问题。 > 这是为什么呢? 这是特定Java版本的错误吗?
问题内容: 我面临一个问题。我在机器上重命名,并注意到任务仍然可以正常工作。 有人知道从哪里获取吗? 问题答案: 实际上,我相信默认情况下,Ant会尝试直接使用以下代码执行Java编译器类: 代码来自这里 。 这意味着,如果库tools.jar位于Ant的当前类路径上,它将拾取该类并启动它。这导致javac.exe可以重命名为您想要的任何名称,它仍然可以工作。因此,要回答您的问题,它实际上不执行任
我得到了一台装有Windows10的新笔记本电脑,我想对它进行设置,以便从命令行使用和。 我已经在网上搜索了,但所有的指南都是以前的版本,我不想在我不明白的地方乱搞。