我想在Sublime Text 2中构建一个编译Java文件的构建系统,然后在 new 终端(用于OS X或Linux)或命令提示符(用于Windows)中运行它)窗口。
原因是因为Sublime Text 2不允许用户输入任何内容,因此任何需要输入的程序在Sublime Text 2中运行时都会发出错误,如下所示:
这就是我目前所拥有的(我也尝试过批处理文件),但它只是在Sublime Text 2中运行,而不是在新shell中运行:
这可能吗?如果是这样,请逐步解释(我是Sublime Text 2的菜鸟),该怎么做;我已经尝试在Sublime Text 2论坛上发帖,到目前为止还没有运气!我无法形容地感激不尽。谢谢你的时间!
答案 0 :(得分:9)
以下是我所做的“礼貌”(阅读:简短易读)版本。
Nutshell (简化):编译并运行shell脚本以获得新窗口。
<强>脚本强>
cd $1
/usr/bin/javac $2
/usr/X11/bin/xterm -e "/bin/bash -c \"/usr/bin/java $3; echo 'Press ENTER to quit...'; read line\""
<强> JavaC.sublime-构建强>
{
"cmd": ["~/bin/run-java.sh $file_path $file $file_base_name"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"path": "/usr/bin/java",
"selector": "source.java",
"shell": true
}
在现实生活中,它有点复杂。
所有这一切都说,我从来没有真正对Java适当的控制台输入做任何事情;我通过Groovy或JRuby REPL,或允许存根输入/输出源/目的地,或者......但不是Java,而不是Sublime Text 2 - 我使用IDE进行Java开发。其他任何东西都浪费我的时间,即使对于简短的实验性东西也是如此。
答案 1 :(得分:1)
我没有必要使用所有这些长方法。不适合大项目。一个示例构建系统是
{
"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,可以在Java,sublime-build
下载到Github上有趣的是它还将文件编译为JAR。编译后删除类以使事情更整洁,它也支持生成JavaDocs。
唯一的限制是它在编译时不能接受用户输入或参数。您必须在终端中手动执行此操作。
答案 2 :(得分:0)
这可能会对您有所帮助,但它目前仅适用于Linux,我仍在使用Windows版本。我已经在sublime text 2和3中创建了一个用于运行java的bash脚本。这个脚本允许你使用包层次结构但不是必需的。
可以使用以下链接在github上下载:https://github.com/dannyvantol/JPack
如果你想传递参数,你需要使用包管理来为崇高文本安装GLUE。
我不知道linux版本是否适用于安装了Cygwin的Windows,但你可以尝试一下。
您需要知道如何使用它的所有信息也可以在github上找到。 我希望这对你有帮助