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


80

我正在尝试在Sublime Text 2中编译和运行Java代码。不要只是告诉我在命令提示符下手动进行操作。谁能告诉我如何?

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


4
崇高论坛似乎对此有答案:sublimetext.com/forum/viewtopic.php? f=
t

我已经尝试过这些...我得到了:[错误2]系统找不到指定的文件[完成]
tolluy 2012年

2
这个问题可以在论坛的帖子中解决。我认为您需要将Java和javac添加到PATH中。
madth3

在我仅尝试使用单个命令Ctrl + B在Windows 7的Sublime Text 3 beta中构建和运行单个Java文件的情况下,将以下内容放在“ <Sublime Text 3> \ 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”}
Lal

1
根据记录,下面的答案似乎都不支持比基本的hello-world类型的程序更复杂的功能。任何具有外部导入功能且需要为项目设置CLASSPATH和/或传递cp开关的程序均不起作用。每当您要在不同的项目上工作时,您要么需要修改构建系统,要么找到其他解决方案(只有受虐狂的社会病魔才会CLASSPATH每次在OS级别上修改变量)。
Synetech

Answers:


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代码。

另外,请注意,每个变体都作为“名称”。这基本上允许该特定的“ build”选项显示在shift+ ctrl+p选项中。因此,使用此配置,您只需执行shift+ ctrl+p并键入“ Run Java”并点击enter,您的代码就会执行。

希望这会有所帮助。


10
如果要使用ctrl + shift + b来运行,请将“名称”字段更改为“运行”。
mtyurt

4
ST3的此更改:*用shell_cmd替换“ cmd” *删除方括号*将整个命令放在字符串中
Dagoth Ulen 2014年

1
+1如ST构建系统文档所述,构建命令不一定必须编译文件,它们可以运行任何东西,包括已编译的程序。因此,答案是从ST(2)编译和运行Java而不使用命令提示符的正确方法。(事实上​​,TextPad具有类似的定义和运行任意程序的能力,并且对Java具有内置支持,使您可以绑定一个热键进行编译,另一个绑定来运行。)
Synetech

感谢您的工作。并感谢@mtyurt,更改Run JavaRun现在正在ctrl+shift+b执行程序。
Nishant Bhakta

在哪里可以找到*.sublime-build文件?
Aditya Gupta

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的说明不同。


15

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将运行。


2
不错的工作。尽管我似乎不需要多余的双引号和前导转义符号,但它在Linux上也适用。= :)。但这有效。谢谢。
NYCeyes 2015年

8

根据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


1
如果将替换为shell_cmd,则该解决方案也适用于崇高的文字2 cmd。这是唯一对我有用的解决方案。谢谢。
Andritchi Alexei

7

按照崇高文本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 }

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

第四步:

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

编译并运行按ctrl + b


6

我正在使用Windows7。以下解决方案适用于我!

**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文本中编译和运行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”的文件夹,并分别创建了用于维护.class和.java文件的子文件夹“ classes”和“ code”,您可以按照自己的方式进行修改。


链接断开了,它说了什么?
ninMonkey 2013年

2

如此处详述:

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

我采取的补救措施

  1. 点击开始

  2. 右键点击“计算机”

2.5单击属性。

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

  2. 在底部附近,单击“环境变量”

  3. 向下滚动“系统变量”,直到找到“路径”-单击选中此选项的编辑。

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

    代码:全选

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


这不起作用,我单击“开始”,右键单击“计算机”,但我什么也没得到,只是一个菜单,而不是双重菜单……而且我正在关注thenewbostons教程,所以我已经做了PATH的工作
收费

2

对于
“ C:\ Program Files \ Sublime Text 3 \ Packages”中的Sublime Text 3,您将得到java.sublime-package将其复制到另一个文件夹,将其扩展名从.sublime-package更改为zip并将其解压缩,您将得到JavaC.sublime-build文件进行上述修改。
经过所有修改后,提取的java文件夹再次转换为.zip并将其扩展名.zip更改为.sublime-package。之后,将该文件复制并粘贴到C:\ Program Files \ Sublime Text 3 \ Packages。
这会帮助你!

(即使您从http://upfile.mobi/363820http://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 )




1

我在此线程中关注了一个帖子,并使其完美运行:

使用以下命令制作bat文件,并将其保存在PATH中的任何位置。我建议使用C:\ Program Files \ Java \ jdk * \ bin \将所有内容保持在一起。

@ECHO OFF
cd %~dp1
javac %~nx1
java %~n1

然后编辑C:\ Users \您的用户名\ AppData \ Roaming \ Sublime Text 2 \ Packages \ Java \ JavaC.sublime-build,内容将是

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

用您的bat文件的名称(例如javacexec.bat)替换“ javac”并保存。


1

通过执行以下步骤,您将拥有2个高级构建系统-“ JavaC”和“ JavaC_Input”。

“ JavaC”使您可以运行不需要用户输入的代码,并将结果显示在sublime的终端模拟器中,这既方便又美观。“ JavaC_Input”使您可以在单独的终端窗口中运行需要用户输入的代码,它可以接受用户输入。您还可以在此构建系统中运行不需要输入的代码,因此,如果您不介意弹出窗口,则可以坚持使用此构建系统,而无需进行切换。您可以从工具->构建系统在构建系统之间切换。然后使用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 \您的用户名\ 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 \您的用户名\ 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

1
{
"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运行带有run变体的程序。没有run变体,它将仅创建.class文件,但不会运行它。

该版本将从input.txt中读取输入,并将输出打印在output.txt中。

注意:input.txt和output.txt都必须与.java文件位于同一工作目录中。


0

确保首先安装JDK / JRE。

如果您是Mac用户,请按照以下步骤操作:

打开终端,输入以下内容进入根字典

光盘..

反复。使用

ls

看看你是否已经根

您将看到Library文件夹现在使用此路径Library / Java / JVM / bin一旦进入bin,您将看到JavaC文件

现在,您需要获取此文件夹的路径,只需编写此命令

密码

将其复制粘贴到您的Sublime JavaC文件中,并通过cmd + b在sublime中构建Java代码。



0

这是我的,使用崇高文字3。我需要一个选项来在新窗口中打开命令提示符。Java编译与-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}\""
          }
     ]
}

0

构建系统JavaC就像一个超级按钮一样工作,但是当您希望以Sublime文本形式从stdin提供输入时,它会失败。但是您可以编辑构建系统以使其从用户那里接收输入。这是我在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构建文件


0

这就是我通过以下简单步骤完成的操作:

设置一个新的构建系统:

  1. 工具>构建系统>新构建系统

  2. 将默认代码替换为以下代码:

    {
       "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' 
    
  3. 通过命名来保存文件(我将其命名为“ Java”)

激活构建系统:

  1. 工具>构建系统> Java(用于保存文件的文件名)
  2. 现在使用Ctrl + B运行程序
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.