用升华文本3在gnome终端中显示Java构建结果

用升华文本3在gnome终端中显示Java构建结果,java,sublimetext3,Java,Sublimetext3,我想通过Sublime Text 3在终端中编译和运行Java程序,而不是使用像Eclipse这样的IDE。为此,我编辑了Java.sublime build文件,但它不起作用。当我启动构建系统时,gnome终端会打开一段时间,然后崩溃 这是我编辑的.sublime构建: { "cmd": ["gnome-terminal -x bash -c\"javac ${file_name} && java ${file_base_name}; exec bash\""], "selec

我想通过Sublime Text 3在终端中编译和运行Java程序,而不是使用像Eclipse这样的IDE。为此,我编辑了
Java.sublime build
文件,但它不起作用。当我启动构建系统时,gnome终端会打开一段时间,然后崩溃

这是我编辑的
.sublime构建

{
"cmd": ["gnome-terminal -x bash -c\"javac ${file_name} && java ${file_base_name}; exec bash\""],
"selector": "source.java",
"shell":true,
"working_dir": "$file_path"
}
为了让它为我编译Java程序,我还需要做哪些其他更改?

试试这个

{
    "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上下载

有趣的是,它还将文件编译到JAR。在编译后删除类以使事情更整洁,它还支持生成JavaDocs


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

您所说的“崩溃”是什么意思?你有输出吗?也许添加一个“sleep 60”或类似的代码会有帮助,这样你就可以在shell终止之前看到输出了。@Clemens Klein Robbenhaar对不起,我不知道这是真正的崩溃还是正常的关闭方式。这就是为什么我建议添加一个“sleep 60”让窗口再打开60秒的原因,比如
-c\“javac${file\u name}&&java${file\u base\u name};sleep 60\”
尝试了你的方法,但没有成功,同样的问题。
sleep 60
应该解决不了这个问题。它所要做的就是保持终端窗口打开60秒,以便您可以看到错误消息。也许
-c \“javac${file_name}&&java${file_base_name}| | sleep 60;exec bash\”
工作得更好(尽管我不知道
exec bash
在那里真正做了什么…)