在Sublime Text 2中编译和运行Java代码

80

我正在尝试在Sublime Text 2中编译和运行Java代码。不要告诉我在命令提示符中手动执行它。有人能告诉我如何做吗?

顺便说一下,我在Windows 7上...


2
那个问题在论坛的帖子中得到了解决。我认为你需要将Java和Javac添加到你的PATH中。 - madth3
使用以下链接到Github,您可以下载JPack。使用JPack在Sublime Text中运行Java非常容易,您需要的所有信息都在该页面上。该页面上写着“安装”,但实际上您不需要安装它,只需将文件路径添加即可。 JPack: https://github.com/dannyvantol/jpack - Danny van Tol
1
值得一提的是,以下任何答案似乎都不支持比基本的hello-world类型的程序更复杂的内容。任何具有外部导入并需要设置CLASSPATH和/或传递cp开关以进行项目的程序都将无法工作。您要么需要每次想要处理不同项目时修改构建系统,要么找到其他解决方案(只有受虐狂社会人才会每次在操作系统级别上修改CLASSPATH变量)。 - Synetech
1
我写了一个Sublime插件,它完全做同样的事情。我为Sublime Text 3制作了它,不确定它是否适用于Sublime Text 2。这个插件让你无需使用命令提示符编译和运行Java程序。唯一的要求是在你的操作系统上设置JAVA_HOME。 请查看此git repo以获取有关此插件的更多信息。https://github.com/jainrish/sublime-plugins/tree/master/RunProgram - jainrish
显示剩余2条评论
19个回答

77

这是我添加到JavaC.sublime-build文件中的内容。

{
    "cmd": ["javac", "-Xlint", "$file"],
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "selector": "source.java",

    "variants": [

        { "cmd": ["javac", "-Xlint", "$file"],
          "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
          "selector": "source.java",
          "name": "Java Lintter"
        },  

        { "cmd": ["java", "$file_base_name"],
          "name": "Run Java"
        }
    ]
}
这样做的作用是创建常规构建命令 (ctrl+b) 的变体。使用 ctrl+b 仍然可以编译代码。如果你按 shift+ctrl+b,则会执行第一个变体,在本例中为带有 -Xlint 选项的 javac 命令。第二个和最终变体是 java 命令本身。你可以将其放置在第一变体位置,实际上按下 shift+ctrl+b 将执行 java 代码。
此外,请注意每个变体都有一个 "名称"。这基本上允许此特定的 "构建" 选项出现在 shift+ctrl+p 选项中。因此,使用此配置,您只需执行 shift+ctrl+p,然后键入 "Run Java" 并按 enter,即可执行代码。
希望对你有所帮助。

10
如果你想使用Ctrl+Shift+B来运行,请将“name”字段更改为“Run”。 - mtyurt
4
ST3 有所变动:
  • 将 "cmd" 替换为 shell_cmd
  • 删除方括号
  • 将整个命令放在字符串中
- Dagoth Ulen
1
正如ST构建系统文档所述,构建命令不一定要编译文件,它们可以运行任何东西,包括已编译的程序。因此,这个答案是在ST(2)中编译和运行Java的正确方法,而不使用命令提示符。(事实上,TextPad也有类似的能力来定义和运行任意程序,并且具有内置的支持Java,允许您将一个热键绑定到编译和另一个运行。) - Synetech
谢谢,这个方法可行。感谢 @mtyurt,将“运行Java”更改为“运行”,现在按下“ctrl+shift+b”即可执行程序。 - Nishant Bhakta
“*.sublime-build”文件在哪里可以找到? - YetAnotherBot

19

我发现 使用Sublime Text 2编译和运行Java程序 这篇文章中的方法很好用,比其他方法更方便一些。 这里 是一个存档页面的链接。

对于Windows系统:

步骤1:

创建一个名为 runJava.bat 的文件,并包含以下代码。

@ECHO OFF
cd %~dp1
ECHO Compiling %~nx1.......
IF EXIST %~n1.class (
DEL %~n1.class
)
javac %~nx1
IF EXIST %~n1.class (
ECHO -----------OUTPUT-----------
java %~n1
)

将此文件复制到jdk bin目录中。

步骤2:

  1. 使用“偏好设置 > 浏览程序包”打开Sublime程序包目录。
  2. 进入Java文件夹
  3. 打开JavaC.sublime-build文件并替换行
    "cmd": ["javac", "$file"],

    "cmd": ["runJava.bat", "$file"],

完成!

编写程序并使用CTRL + B运行

注意: Sublime 3 的说明不同。


17

Sublime Text 3有一个稍微不同的解决方案。这是对vijay的答案进行修改,而我以前一直在使用它。

 {
     "shell_cmd": "javac -Xlint \"${file}\"",
     "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
     "working_dir": "${file_path}",
     "selector": "source.java",

     "variants":
     [
          {
               "name": "Run",
               "shell_cmd": "java \"${file_base_name}\""
          }
     ]
 }
将以上内容复制到一个名为JavaC.sublime-build的新文件中,并将其放入您的用户包中。这可以在C:\Users\You\AppData\Roaming\Sublime Text 3\Packages\User中找到。
按下Ctrl-B进行编译,按下Ctrl-Shift-B运行。

3
很好的工作。这也适用于 Linux,尽管我似乎不需要额外的双引号和前导转义符 =:)。但它可以工作。谢谢。 - NYCeyes

8
这个版本的JavaC.sublime-build是从vijay的答案编辑而来,适用于我在Windows 7和Mac上使用Sublime Text 3。 我进行了编辑,所以Ctrl + b或command + b即可同时执行构建和运行。
{
"shell_cmd": "javac -Xlint $file && java $file_base_name",
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java",
"shell": true
}

'&&' 确保第二部分只在第一部分成功时运行,即只有在生成类文件时才运行。您可以在此处找到更多相关信息:http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds_shelloverview.mspx?mfr=true


1
如果将 shell_cmd 替换为 cmd,这个解决方案也适用于 Sublime Text 2。这是唯一对我有效的解决方案。谢谢。 - Andritchi Alexei

7

按照Sublime Text 2和3的文档编译和运行

步骤1: 设置Java的环境变量,如您已经知道或参考其他地方所述。

步骤2: 打开新文档并复制下面的代码。

{
"cmd": ["javac", "$file_name", "&&", "java", "$file_base_name"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.java",
"shell":true }

步骤三:将文档保存为userjavaC.sublime-build,保存在目录C:\Users\myLapi\AppData\Roaming\Sublime Text 3\Packages\User中。

步骤四:

完成后选择工具->构建系统->userjavaC

要编译和运行,请按ctrl+b


6

我正在使用Windows 7操作系统。以下解决方案适用于我!

**Open** the file JavaC.sublime-build and replace all the code in the file with the code below:

{
 "cmd": ["javac", "$file_name","&&","java", "$file_base_name"],
 "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
 **"path": "C:\\Program Files\\Java\\jdk1.6.0\\bin\\",**
 "selector": "source.java",
 "shell": true
 }

请记得将 "C:\Program Files\Java\jdk1.6.0\bin\" 替换为您放置JDK的路径。并确保将您的Java JDK路径添加到环境变量" PATH "中。请参考bunnyDrug的帖子设置环境变量。祝一切顺利!

3
请参考以下解决方案: http://www.compilr.org/compile-and-run-java-programs/ 希望这可以用于在sublime内编译和运行类…… 如果您是在Mac系统中,请查看我的脚本以尝试它。 编辑:不幸的是,上述链接已经失效。 它详细说明了在sublime text中编译和运行java所需的所有步骤。 无论如何,对于Mac或Linux系统,下面的方法应该有效: 修改javac.sublime-build文件为:
#!/bin/sh

classesDir="/Users/$USER/Desktop/java/classes/"
codeDir="/Users/$USER/Desktop/java/code/"
[ -f "$classesDir/$1.class" ] && rm $classesDir/$1.class
for file in $1.java
do
echo "Compiling $file........"
javac -d $classesDir $codeDir/$file
done
if [ -f "$classesDir/$1.class" ]
then
echo "-----------OUTPUT-----------"
java -cp $classesDir $1
else
echo " "
fi

这里,我在桌面上创建了一个名为"java"的文件夹,包含子文件夹"classes"和"code",用于分别维护.class和.java文件。你可以根据自己的需求进行修改。


链接已经失效了,它原来说的是什么? - ninMonkey

2

如此详细地介绍:

http://sublimetext.userecho.com/topic/90531-default-java-build-system-update/

我采取的步骤来解决这个问题

  1. 点击开始

  2. 右键单击“计算机”

2.5 点击属性。

  1. 在左侧选择“高级系统设置”

  2. 向下滚动并点击“环境变量”

  3. 在“系统变量”中向下滚动直到找到“PATH” - 选择编辑。

  4. 添加Java bin文件夹的路径。我的路径看起来像这样:

    CODE:全选

    ;C:\Program Files\Java\jdk1.7.0_03\bin\


这不起作用,我点击开始,右键点击计算机,什么也没有发生,只有一个菜单,而不是双重的...我一直在跟随thenewboston的教程,所以我已经做了路径设置。 - tolluy

2

这是在Sublime Text 3中编译和运行Java代码的命令:

"shell_cmd": "javac -d . $file && java ${file_base_name}.${file_base_name}", "shell": true

请注意,保留了HTML标记。


2
对于Sublime Text 3,您可以在“C:\ Program Files \ Sublime Text 3 \ Packages”中找到java.sublime-package文件。将其复制到其他文件夹并将其扩展名从.sublime-package更改为zip,然后解压缩它,您就会得到JavaC.sublime-build文件以进行上述修改。
完成所有修改后,再次提取java文件夹并将其转换为.zip格式。然后将其扩展名更改为.sublime-package。之后将此文件复制并粘贴到“C:\ Program Files \ Sublime Text 3 \ Packages”中。
这将有所帮助!
(即使您从http://upfile.mobi/363820http://www.4shared.com/file/73SkzY-Kba/Java.html链接获取我的文件。我使用"Wesley Baugh"的技巧运行Java代码,因此您需要将runJava.bat文件复制到C:\ Program Files(x86)\ Java \ jdk1.8.0 \ bin目录中。并将上面链接的文件复制到"C:\ Program Files \ Sublime Text 3 \ Packages"中)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接