在 Sublime Text 2 中编译和运行 Java 代码
Posted
技术标签:
【中文标题】在 Sublime Text 2 中编译和运行 Java 代码【英文标题】:Compiling and Running Java Code in Sublime Text 2 【发布时间】:2012-05-20 13:51:52 【问题描述】:我正在尝试。不要只是告诉我在命令提示符中手动执行。谁能告诉我怎么做?
顺便说一句,我在 Windows 7...
【问题讨论】:
Sublime 论坛似乎对此有答案:sublimetext.com/forum/viewtopic.php?f=3&t=4805, sublimetext.userecho.com/topic/… 我已经尝试过那些...我得到这个:[错误2]系统找不到指定的文件[完成] 这个问题在论坛的帖子中得到了解决。我认为您需要将 java 和 javac 添加到您的 PATH 中。 在我的情况下,我只是尝试使用单个命令 Ctrl+B 在 Windows 7 的 Sublime Text 3 beta 中构建和运行单个 java 文件,将以下内容放在“CLASSPATH
和/或传递cp
开关的程序都将不起作用。每次您想要处理不同的项目时,您要么需要修改构建系统,要么找到其他解决方案(只有自虐反社会者每次都会在操作系统级别修改 CLASSPATH
变量)。
【参考方案1】:
这就是我添加到 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,然后您的代码将执行。
希望这会有所帮助。
【讨论】:
如果要使用ctrl+shift+b运行,请将“name”字段更改为“运行”。 ST3 已更改:* 用 shell_cmd 替换“cmd” * 删除方括号 * 将整个命令放在一个字符串中 +1 正如ST build-system docs 所说,构建命令不一定要编译文件,它们可以运行任何东西,包括编译后的程序。因此,this 答案是在不使用命令提示符的情况下从 ST(2) 编译 和运行 Java 的正确方法。 (事实上,TextPad 具有类似的定义和运行任意程序的能力,并且内置了对 Java 的支持,允许您绑定一个热键来编译和另一个热键来运行。) 感谢这项工作。并感谢@mtyurt,将Run Java
更改为Run
,现在按ctrl+shift+b
执行程序。
在哪里可以找到*.sublime-build
文件?【参考方案2】:
我发现帖子Compile and Run Java programs with Sublime Text 2 中的方法效果很好,并且比其他方法更方便一些。 Here 是存档页面的链接。
对于 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 步:
-
使用 Preferences > Browse Packages..打开 Sublime 包目录。
转到 Java 文件夹
打开 JavaC.sublime-build 并替换行
"cmd": ["javac", "$file"],
与"cmd": ["runJava.bat", "$file"],
完成!
使用CTRL + B
编写程序并运行
注意:Sublime 3 的说明不同。
【讨论】:
【参考方案3】: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 将运行。
【讨论】:
干得好。这也适用于 Linux,尽管我似乎不需要额外的双引号和前导转义符号。 =:)。但它有效。谢谢。【参考方案4】:根据 vijay 的回答编辑的 JavaC.sublime-build 版本在 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
【讨论】:
如果将shell_cmd
替换为cmd
,此解决方案也适用于sublime text 2。这是唯一对我有用的解决方案。谢谢。【参考方案5】:
按照 sublime text 2 nd 3 的文档编译和运行
第 1 步: 如您所知,为 java 设置环境变量或参考某处
strp-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 的帖子来设置 环境变量。最好的!
【讨论】:
【参考方案7】:参考解决方案: http://www.compilr.org/compile-and-run-java-programs/
希望解决,在 sublime 中编译和运行类..... 您可以在 cmets 部分查看我的脚本以在 mac 的情况下进行尝试...
编辑:不幸的是,上面的链接现在坏了。它详细介绍了在 sublime 文本中编译和运行 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文件,大家可以自己修改。
【讨论】:
链接失效了,上面说了什么?【参考方案8】:这里详述:
http://sublimetext.userecho.com/topic/90531-default-java-build-system-update/
我采取的补救措施
点击开始
右键单击“计算机”
2.5 点击属性。
在左侧选择“高级系统设置”
在底部附近点击“环境变量”
在“系统变量”上向下滚动,直到找到“路径” - 选中此选项后单击编辑。
将路径添加到您的 Java bin 文件夹。我的最终看起来像这样:
代码:全选
;C:\Program Files\Java\jdk1.7.0_03\bin\
【讨论】:
这不起作用,我单击开始,右键单击计算机,我没有得到任何东西,只有一个菜单,而不是双菜单...我正在关注新波士顿教程,所以我已经做了 PATH 的东西 【参考方案9】:对于 Sublime Text 3 在“C:\Program Files\Sublime Text 3\Packages”中,您将获得 java.sublime-package 复制到另一个文件夹,将其扩展名从 .sublime-package 更改为 zip 并解压缩,您将获得 JavaC.sublime-build 文件以进行修改如上所述。 在所有修改后提取的 java 文件夹再次转换为 .zip 并将其扩展名 .zip 更改为 .sublime-package。之后将此文件复制并粘贴到 C:\Program Files\Sublime Text 3\Packages。 这会对你有所帮助!
(即使你从http://upfile.mobi/363820 或http://www.4shared.com/file/73SkzY-Kba/Java.html 链接获取我的文件 我用来运行java代码我使用“Wesley Baugh”的技巧,所以你需要将runJava.bat文件复制到你的C:\ Program Files(x86)\Java\jdk1.8.0\bin目录,正如他所说。并将上面的链接文件复制到 C:\Program Files\Sublime Text 3\Packages)
【讨论】:
【参考方案10】:您可以完全在 ST 中编译和运行您的代码,而且非常快速/简单。 最近有一个名为 Javatar 的 ST 包可以做到这一点。 https://javatar.readthedocs.org
【讨论】:
【参考方案11】:这是在 sublime text 3 中编译和运行 java 的代码
"shell_cmd": "javac -d .$file && java $file_base_name.$file_base_name", “壳”:是的
【讨论】:
【参考方案12】:我关注了thread 中的一个帖子,并让它完美运行:
使用以下内容制作 bat 文件,并将其保存在 PATH 中的任何位置。我建议 C:\Program Files\Java\jdk*\bin\ 将所有内容放在一起。
@ECHO OFF
cd %~dp1
javac %~nx1
java %~n1
然后编辑C:\Users\your_user_name\AppData\Roaming\Sublime Text 2\Packages\Java\JavaC.sublime-build,内容为
"cmd": ["javac", "$file"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java"
将“javac”替换为您的 bat 文件的名称(例如 javacexec.bat)并保存。
【讨论】:
【参考方案13】:按照以下步骤,您将拥有 2 个 sublime 构建系统 - “JavaC”和“JavaC_Input”。
“JavaC”可以让你运行不需要用户输入的代码,并在sublime的终端模拟器中显示结果,既方便又好看。 “JavaC_Input”允许您在单独的终端窗口中运行需要用户输入的代码,它能够接受用户输入。你也可以在这个构建系统中运行不需要输入的代码,所以如果你不介意弹出窗口,你可以坚持使用这个构建系统,不要切换。 您可以从 Tools -> Build System 在构建系统之间切换。然后使用 ctrl+b 编译和运行代码。
以下是实现此目的的步骤:
(注意:请确保您已经具备java系统的基本设置:安装JDK并设置正确的CLASSPATH和PATH,我不会详细说明)
“JavaC”构建系统设置
1,用以下代码制作一个bat文件,并将其保存在C:\Program Files\Java\jdk*\bin\下,以便将所有内容放在一起。将文件命名为“javacexec.bat”。
@ECHO OFF
cd %~dp1
javac %~nx1
java %~n1
2、然后编辑 C:\Users\your_user_name\AppData\Roaming\Sublime Text 2\Packages\Java\JavaC.sublime-build (如果没有,创建一个),内容为
"cmd": ["javacexec.bat", "$file"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java"
“JavaC_Input”构建系统设置
1、安装Cygwin [http://www.cygwin.com/]
2、进入C:\Users\your_user_name\AppData\Roaming\Sublime Text 2\Packages\Java\,然后创建一个名为“JavaC_Input.sublime-build”的文件,内容如下
"cmd": ["javacexec_input.bat", "$file"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java"
3,用以下代码制作一个bat文件,并将其保存在C:\Program Files\Java\jdk*\bin\下,以便将所有内容放在一起。将文件命名为“javacexec_input.bat”。
@echo off
javac -Xlint:unchecked %~n1.java
start cmd /k java -ea %~n1
【讨论】:
【参考方案14】:
"shell_cmd": "javac -Xlint \"$file\"",
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"working_dir": "$file_path",
"selector": "source.java",
"variants": [
"shell_cmd":"javac -Xlint \"$file\" && java $file_base_name < input.txt > output.txt",
"name": "Run"
]
保存这个崇高的构建并使用 ctrl + shift + B 运行程序和运行变体。没有运行变体它只会创建 .class 文件但不会运行它。
此构建将从 input.txt 读取输入并在 output.txt 中打印输出。
注意:input.txt 和 output.txt 必须与 .java 文件位于同一工作目录中。
【讨论】:
【参考方案15】:确保你先安装 JDK/JRE。
如果您是 mac 用户,请按照以下步骤操作:
打开终端输入
进入你的根字典cd ..
反复。 使用
ls
看看你是否已经到达根目录
你会看到图书馆文件夹 现在按照这个路径 Library/Java/JVM/bin 进入 bin 后可以看到 JavaC 文件
现在你需要得到这个文件夹的路径,只需要写这个命令
密码
将其复制粘贴到您的 sublime JavaC 文件中,然后通过 cmd+b 在 sublime 中构建 java 代码。
【讨论】:
【参考方案16】:Alex Yao 的答案是最简单的解决方案,如果您只想构建和运行 Java 程序而不从控制台获取任何输入,请使用 Alex Yao 提供的解决方案。但是,如果您想从控制台获取输入,请参考以下链接
Java console input in Sublime Text 2?
【讨论】:
【参考方案17】:这是我使用 sublime text 3. 我需要在新窗口中打开命令提示符的选项。 Java compile 与 -Xlint
选项一起使用,以在 Java 中打开完整的警告消息。
我已将文件保存在我的用户包文件夹中 Java(Build).sublime-build
"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\"",
,
"name": "Run (External CMD Window)",
"shell_cmd": "start cmd /k java \"$file_base_name\""
]
【讨论】:
【参考方案18】:构建系统 JavaC 的工作原理很吸引人,但当您想在 Sublime-text 中从标准输入提供输入时会失败。但是您可以编辑构建系统以使其接收来自用户的输入。这是我在 Ubuntu 18.04 LTS 上使用的修改后的 JavaC 版本。 您可以编辑构建系统或创建新的构建系统。
创建新的构建系统。
转到工具>>构建系统>>新构建系统。复制粘贴下面的代码并文件>>保存。
"shell_cmd": "javac \"$file\"",
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java",
"variants":
[
"shell_cmd":"bash -c \"javac $file\" && gnome-terminal -- bash -c \"java $file_base_name ;read\"",
"name": "Run"
]
编辑现有的 Java C 构建文件
按照步骤操作 https://***.com/a/23790095/10847305 从此构建系统复制粘贴“变体”。【讨论】:
【参考方案19】:这就是我通过这些简单的步骤做到的:
设置新的构建系统:
工具 > 构建系统 > 新构建系统
用以下代码替换默认代码:
"cmd": ["javac","$file_name","&&","java","$file_base_name"],
"path": "C:\\Program Files\\Java\\jdk1.7.0_25\\bin\\",
"shell": true
// locate the path of your jdk installation and replace it with 'path'
给文件起个名字来保存文件(我把我的命名为“Java”)
激活构建系统:
-
工具 > 构建系统 > Java(保存文件的名称)
现在使用 Ctrl + B 运行您的程序
【讨论】:
以上是关于在 Sublime Text 2 中编译和运行 Java 代码的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Sublime Text 2 编译和运行一个简单的 C 程序?
sublime text 2 基于 MinGW 的 C/C++ 配置文件