我构建了一个应用程序来编译和运行 java 文件,它运行完全正常。
由于是用户选择要编译和执行的java文件的路径,所以我引用了路径,这样它就可以包含空格和特殊字符。像这样:
javac "C:\test project\*.java"
Run Code Online (Sandbox Code Playgroud)
现在,我在另一台计算机上尝试过,现在出现此错误:
javac: file not found: C:\test project\*.java
Usage: javac <options> <source files>
use -help for a list of possible options
Run Code Online (Sandbox Code Playgroud)
如果我删除引号并且路径中没有空格或特殊字符,则它可以工作,但对于上面的示例,包含空格,我会收到此错误:
javac: invalid flag: C:\test
Usage: javac <options> <source files>
use -help for a list of possible options
Run Code Online (Sandbox Code Playgroud)
我已经阅读了一些关于此的主题,但我无法找到解决方案。有人有线索吗?
谢谢!
根据Javac手册,有一个选项javac -O来编译优化的java代码.我可以使用maven来使用这个标志吗?
我是新编码而javac不被认可.我读到我需要改变自己的道路,但我尝试的却没有用.我当前的路径是:'C:\ Program Files\Java\jre7\bin'.怎么了?
我有一个名为的java文件MemoryComparison.java保存在文件夹中D:\Documents\CodeAnalysis\project_analysis_RG\CodeAnalysis\input\master\Kajari_G
我有另一个文件夹D:\Documents\CodeAnalysis\output\,我想在其中存储执行后上述java文件的输出。
在Java程序MemoryComparison.java中我没有给出任何包名称。
现在,我正在从另一个名为 的 java 程序编译并执行上述 java 程序ReadFilesInFolders.java。下面是代码片段:
try {
Runtime.getRuntime().exec("javac input\\master\\Kajari_G\\MemoryComparison.java");
Runtime.getRuntime().exec("java -cp input\\master\\Kajari_G\\ MemoryComparison > output\\output1.txt");
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
现在,第一个 exec 工作正常,并且 .class 文件正在 MemoryComparison.java 所在的同一文件夹中生成。但似乎第二个执行程序无法工作,因为没有创建output1.txt。
但是当我从命令提示符运行上述两行时,一切正常并且正在创建output1.txt。
你能帮我解决这个问题吗?
为了在 JDK 15 中使用记录,我曾经使用--enable-preview --release 15在 Ant 构建上传递给 javac 的参数进行编译。一切都编译并运行良好。
使用 JDK 16 时,如果我使用相同的参数进行编译,我会得到
错误:带 --enable-preview 的源版本 15 无效(仅版本 16 支持预览语言功能)
记录是 JDK 16 的标准功能,因此我预计应该在没有这些参数的情况下进行编译。但是,如果我删除它们,我会得到
Foo.class 使用 Java SE 15 的预览功能。(使用 --enable-preview 允许加载包含预览功能的类文件)
Ant 报告编译失败:
编译失败;有关详细信息,请参阅编译器错误输出。在 org.apache.tools.ant.taskdefs.Javac.compile (Javac.java:1425)
因此,无论有没有标志,编译都会失败。怎么了?
我需要编译一个具有多个内部类(或嵌套)的java类.示例:Myclass.java Myclass $ sub1.class Myclass $ sub2.class Myclass $ sub2 $ subsub.class
我需要使用编译的内部类文件编译(命令行,oracle javac)文件Myclass.java.
如何才能做到这一点?我尝试了-sourcepath选项,没有运气.
谢谢
我在Windows PC上安装了JDK 5,JDK 6和JDK 7.我在PATH变量中添加了所有三个版本的二进制文件夹.我可以使用IDE的不同项目使用不同的版本.但是,如何在cmd或PowerShell中使用特定版本的javac?
import java.nio.charset.Charsets在我的类UriCodec.java中,但是当我使用javac(jdk6)编译此类错误时.例如:javac UriCodec.java
错误代码:
import java.nio.charset.Charsets;
^
UriCodec.java:140: Can not find symbol
symbol? Variable Charsets
position? class com.android.exchange.utility.UriCodec
appendEncoded(builder, s, Charsets.UTF_8, false);
^
UriCodec.java:144: Can not find symbol
symbol? Variable Charsets
position? class com.android.exchange.utility.UriCodec
appendEncoded(builder, s, Charsets.UTF_8, true);
^
UriCodec.java:203: Can not find symbol
symbol? Variable Charsets
position? class com.android.exchange.utility.UriCodec
return decode(s, false, Charsets.UTF_8);
^
UriCodec.java:214: Can not find symbol
symbol? Method toHexString(byte,boolean)
position? class java.lang.Byte
sb.append(Byte.toHexString(b, true));
^
5 error
Run Code Online (Sandbox Code Playgroud)
我的课:
import java.nio.charset.Charset;
import java.nio.charset.Charsets;
public abstract class …Run Code Online (Sandbox Code Playgroud) 由 Java 鲜为人知的数据类型“null”引起的无意识查询。
有人能够澄清“null”是否是 Java 语言保留的文字,以及它作为原始数据类型和数字值之间的差异吗?
NULL default_object_value; // a Syntax error
NULL acct_balance_at_westbank = null; // Another Syntax error
String aStrokeOfLuck = null; // a feasible variable declaration & assignment
Run Code Online (Sandbox Code Playgroud)