Sublime 3 中的 Java 构建

问题描述 投票:0回答:6

我正在尝试设置一个构建,以便我可以在 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

我将此构建保存到我的包中,它出现在构建菜单中,但是当我尝试运行它时,它说没有构建工作。

java sublimetext3
6个回答
3
投票

请阅读构建系统文档以获取有关如何构建

.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
}

3
投票

试试这个。它在 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\"",
     }
   ]
}

2
投票

试试这个:

{
    "file_regex": "(.+):(\\d+): error: ",
    "shell_cmd": "javac $file && java $file_base_name",
    "shell": true,
    "selector": "source.java",
}

它可以在 Windows Sublime Text 3 上运行。


0
投票

试试这个。它可以在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。

唯一的限制是它不能在编译时接受用户输入或参数。您必须在终端中手动执行此操作。


0
投票

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"
}

0
投票

对于 Windows:

{
"cmd": ["java", "$file"]
}
© www.soinside.com 2019 - 2024. All rights reserved.