在 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 文件,将以下内容放在“ \Packages\Java\JavaC.sublime-build”文件(创建的文件夹/文件不存在)工作。根据需要更改 Java bin 目录。 "cmd": ["javac", "$file_name", "&&", "java", "$file_base_name"], "shell": true, "path": "C:\\Program Files (x86)\ \Java\\jdk1.8.0_05\\bin", "file_regex": "^(...*?):([0-9]*):?([0-9]*)", "选择器" : "source.java" 郑重声明,下面的答案似乎都不支持比基本的 hello-world 类型的程序更复杂的东西。任何具有外部导入并需要为项目设置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编译运行C语言

sublime text 2 基于 MinGW 的 C/C++ 配置文件

如何在Sublime Text 2,Windows 8中构建和运行c ++程序?

sublime text 设置编译运行java

Sublime Text 3配置C++编译运行