Sublime Text中运行JAVA程序需要输入数据的问题

一般情况下, 在ST里面运行一般的JAVA程序只需在jdk的bin目录里面添加一个runjava.bat文件,代码如下图
Sublime Text中运行JAVA程序需要输入数据的问题_第1张图片


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



然后在ST安装目录的Packages文件夹,找到Java.sublime-package这个文件【用压缩文件打开,我用的WinRAR】,然后修改里面的Javac.sublime-build文件,修改成如下图:

Sublime Text中运行JAVA程序需要输入数据的问题_第2张图片


{
    "shell_cmd": "runJava.bat \"$file\"",
	"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
	"selector": "source.java",
	"encoding": "cp936"
}


编码cp936是为了解决程序中有中文而导致的各种问题


但是,,,上面也说了,按照上面方法设置后只能运行一般的java程序, 当遇到程序运行过程中需要手动输入数字的情况时,ST编辑器就会报错而导致无法运行,这个问题我在网上搜索了很久也没有搜索到让人立马解决的办法,正当我准备放弃ST的时候,搜索了大量资料,终于找到了解决办法,然后很没良心的立马去把刚刚下载安装破解的EditPlus给卸载了。。。=_=

解决方案:Tool->Build System->New Build System,然后写入以下代码:
Sublime Text中运行JAVA程序需要输入数据的问题_第3张图片


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

"variants":
    [
        {
            "name": "Run",
            "shell": true,
            "cmd" :  ["start","cmd","/c", "java ${file_base_name}&pause"],
            "working_dir": "${file_path}",
            "encoding":"gbk"
        }
    ]
}


另存为Java.sublime-build,注意图中的红色标记的地方,可以写成gbk或者cp936都是可以的,这三个地方要统一,不然又会出现莫名其妙的中文编码错误问题,保存后再按CTRL+B就是执行javac命令,按CTRL+SHIFT+B就会执行java命令,弹出熟悉的CMD窗口,然后就可以很顺手的输入数据等等了,保存以后这个文件默认是保存在C:\Users\Administrator\AppData\Roaming\Sublime Text 3\Packages\User这个目录下的,可是撸主有强迫症啊有木有,放在这里看着就是不爽不和谐啊,于是就把Java.sublime-build移动到了Packages文件夹下的Java.sublime-package这个文件里面,保存,然后就终于解决了心头这个疙瘩了,呵呵


希望能帮到需要的朋友,大家共同学习~~~


上面新建的那个Build文件还是对中文支持有问题,就是如果用ST新建java文件,运行有中文的程序的时候就会有问题,然后现在重新修改一下,可以用了,代码如下:

{
	"cmd": ["javac", "${file}", "-encoding", "UTF-8"],
	"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
	"working_dir": "${file_path}",
	"selector": "source.java",
	"encoding": "cp936",
	"shell": true,
    "variants":
    [
        {
            "name": "Run",
            "cmd": ["cmd", "/c", "javac", "${file}", "-encoding", "UTF-8", "&&", "start", "cmd", "/c", "java ${file_base_name} & echo. & pause"]
        },
    ]
}

Sublime Text中运行JAVA程序需要输入数据的问题_第4张图片

你可能感兴趣的:(软件使用)