我正在尝试设置一个构建,以便我可以在 sublime 3 中编译和运行 Java。我的构建系统无法正常工作。
"cmd": "java ${file_name} && java ${file_base_name}",
"file_regex": "^[ ]file \"(...?)\", line ([0-9]*)",
"path":"C:\\ProgramData\\Oracle\\Java\\javapath\\java.exe",
"selector": "source.java",
"shell":true
我将此构建保存到我的包中,它出现在构建菜单中,但是当我尝试运行它时,它说没有构建工作。
请阅读构建系统文档以获取有关如何构建
.sublime-build
文件的信息。 "cmd"
和 "path"
是列表,而不是字符串,因此这可能是您收到错误的原因之一。正如我在评论中提到的另一个原因是您尝试使用 .java
而不是 java
来编译 javac
文件。最后,您的 "path"
不正确 - 它应该指向目录列表,而不是文件。这可能对你更有效:
{
"cmd": ["javac", "${file_name}", "&&", "java", "${file_base_name}"],
"file_regex": "^[ ]file \"(...?)\", line ([0-9]*)",
"path": ["C:\\ProgramData\\Oracle\\Java\\javapath"],
"selector": "source.java",
"shell": true
}
试试这个。它在 Mac 上对我有用。
第 1 步:转到 Sublime Text 首选项,然后单击浏览包。
第2步:如果没有Java文件夹,则创建Java文件夹。
第3步:创建JavaC.sublime-build并添加以下代码并保存。
{
"shell_cmd": "javac \"$file_name\" && java \"$file_base_name\"",
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java",
"variants":
[
{
"name": "Syntax Check",
"shell_cmd": "javac \"$file_name\" && java \"$file_base_name\"",
}
]
}
试试这个:
{
"file_regex": "(.+):(\\d+): error: ",
"shell_cmd": "javac $file && java $file_base_name",
"shell": true,
"selector": "source.java",
}
它可以在 Windows Sublime Text 3 上运行。
试试这个。它可以在Linux上运行。不确定Windows。
{
"cmd": ["javac '$realpath$file' && java $file_base_name && rm *.class"],
"selector": "source.java",
"shell": true,
"variants": [
{
"name": "JavaDoc",
"cmd": ["mkdir documentation && javadoc -d documentation *.java"]
},
{
"name": "JAR",
"cmd": ["javac '$realpath$file' && echo \"Main-Class: $file_base_name\" > Manifest.txt && jar cfm $file_base_name.jar Manifest.txt *.class && rm *.class && java -jar $file_base_name.jar"]
},
]
}
这适用于 Linux 上的我,可以在 Github 上下载:Java.sublime-build
有趣的是它还可以将文件编译为 JAR。编译后删除类以使事情变得更整洁,它还支持生成 JavaDocs。
唯一的限制是它不能在编译时接受用户输入或参数。您必须在终端中手动执行此操作。
JavaC.sublime-build 示例在运行 java 代码时设置 java 类路径路径。
{
"shell_cmd": "javac -encoding utf-8 $file_name && java -cp .:/path/* $file_base_name && rm -rf $file_base_name.class",
"file_regex": "^ *\\[javac\\] (.+):([0-9]+):() (.*)$",
"selector": "source.java",
"encoding": "utf-8"
}
对于 Windows:
{
"cmd": ["java", "$file"]
}