Sublime Text 2构建系统,用于在新的终端/命令提示符窗口中编译和运行Java?

8 java terminal command-prompt build-system sublimetext2

我想在Sublime Text 2中创建一个编译Java文件的构建系统,然后在新的终端(用于OS X或Linux)或命令提示符(用于Windows)窗口中运行它.

原因是因为Sublime Text 2不允许用户输入任何内容,因此任何需要输入的程序在Sublime Text 2中运行时都会发出错误,如下所示:

这就是我目前所拥有的(我也尝试过批处理文件),但它只是在Sublime Text 2中运行,而不是在新的shell中运行:

这可能吗?如果是这样,请逐步解释(我是Sublime Text 2的菜鸟),该怎么做; 我已经尝试在Sublime Text 2论坛上发帖,到目前为止还没有运气!我无法形容地感激不尽.谢谢你的时间!

Dav*_*ton 9

这是我做的工作的"礼貌"(阅读:简短和可读)版本.

  • 这只是一个起点.完全impl是博客文章,而不是答案.
  • 假设:OS X,xterm,没有包层次结构等.
  • 包裹/项目的东西相对简单,但IMO很尴尬.
  • 我没有一个完整的解决方案,即跨操作系统或考虑到奇怪的目录.
  • 我的真实版本做出了一些假设,这些假设可能会或可能不适用于世界其他地方.
  • 我的真实版本使用Ant或Maven,它解决了许多问题,但不是全部.
  • 其中一些可以包含在sublime-build文件中,但是......
  • ...对我而言,这种方式更容易,因为这里没有显示其他东西.

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\""
Run Code Online (Sandbox Code Playgroud)

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
}
Run Code Online (Sandbox Code Playgroud)

在现实生活中,它有点复杂.

所有这些说,我从来没有真正对Java适当的控制台输入做任何事情; 我通过Groovy或JRuby REPL,或允许存根输入/输出源/目的地,或者......但不是Java,而不是Sublime Text 2 - 我使用IDE进行Java开发.其他任何东西都浪费我的时间,即使是短期的实验性东西.