因为现在在借着经典的书籍巩固一些基础知识,所以会经常跑一些简单的程序,可又不想开庞大的IDE。所以就想试着用Sublime-Text来编译程序,哦,当然如果习惯的话,用 terminal 也可以。其实Sublime-Text里有编译功能,ctrl+B 即可,但编译后只是生成了 .class 文件,并没有执行,也就看不到结果。针对这一情况,需要一些配置文件的修改。我在网上查了一些方法,发现没有能用的,自己大概摸索了一下,找到了一个解决方法。当然,这个方法是以对付 JAVA 来做的,当然稍做修改也可以用来对付其他的语言。下面讲讲我理解的原理。

本文地址:http://www.cnblogs.com/rossoneri/p/4378339.html

  在 Sublime-Text 的文件夹下有一个 Packages 文件夹,里面有很多针对各种语言的工具包。对付 JAVA 就需要打开 Java.sublime-package 。不用解压,直接打开文件 JavaC.sublime-build 。ctrl + B 编译就是通过这个文件执行的,可以看到内容是:

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

  难怪,编译的时候只执行了 javac ,所以只是生成 .class 文件。那我们现在需要执行文件得到结果,就需要从这一行命令入手。

  打开 jdk 目录下的 /bin 。对,就是 javac 所在的目录,在里面我们新建一个脚本 runJava.sh :

#!/bin/bash
[ -f "$1.class" ] && rm $.class
for file in $
do
echo "-Compiling $file.java ..."
javac $file.java
done if [ -f "$1.class" ]
then
echo "------Output------"
java $
else
echo " "
fi

  记得 chmod 777 ( 自己的环境权限设成 777 无所谓,不行就 755 ,反正必须可执行)

  脚本的意思是 有一个文件 test.java ,获取其文件名 test 做参数, test.class 存在就将其删掉重新编译,编译成功就执行。(注意不要乱删空格)

  然后注销计算机,重新登录,在终端输入 runJava.sh 命令是否存在( 其实只要系统能找到这个文件放哪都行,放 jdk 只是因为 jdk 安装后都会配置其环境,比较省事儿)

  之后就修改 JavaC.sublime-build 文件,将第一行改成:

"shell_cmd": "runJava.sh \"$file_base_name\"",

  把 javac 换成新加的命令,后面文件名, $file 代表 test.java,$file_base_name 代表 test,明显,我们的命令需要后者为输入。

  修改后保存,重启 Sublime-Text ,让其重新加载修改后的工具包。打开文件, ctrl + B 即可看到输出。

[Sublime-Text] Linux下用Sublime-Text3编译输出Java文件的更多相关文章

  1. Sublime Text 3下C/C++开发环境搭建

    Sublime Text 3下C/C++开发环境搭建 之前在Linux Mint 17一周使用体验中简单介绍过Sublime Text. 1.Sublime Text 3安装 Ubuntu.Linux ...

  2. Sublime Text 2下搭建Python环境常见错误

    Sublime Text 2下搭建Python环境时,最容易出的错误就是Python环境配置错误,导致build(Ctrl+B)后没有任何反应. 关于Python编程环境的配置,网上很容易搜索到.先默 ...

  3. 【转】sublime text 2 下的Markdown写作

    sublime text 2 下的Markdown写作   作为Windows/Mac/Linux下强大的文本编辑器,st提供了对Markdown语言的支持.通过设置可实现markdown预览和转换功 ...

  4. 在 Sublime Text 2 下开启 Vim 模式

    緣由 由於在 Sublime Text 2 下操作時會想起 Vim 下的鍵盤操作.一時興起在網絡上找了下,發現 Sublime Text 2 是支持類似 Vim 的鍵盤操作的.在此分享下配置過程. 打 ...

  5. Win7环境下Sublime Text 3下安装NodeJS插件

    1.首先下载安装Node.JS,配置好环境变量(安装好Node.JS默认是配置好了环境变量的). 2.Sublime Text 3下安装NodeJS插件. 参考的两篇文章:http://www.cnb ...

  6. sublime text 3插件改造之添加从模版新增文件到指定目录

    简介:以前使用ST2里面的Sublime NFFT插件比较顺手,最近安装了ST3,但是Sublime NFFT插件不支持ST3,就下载了SublimeTmpl从模版新建文件插件.在使用时,习惯在侧边栏 ...

  7. [转]Caffe在Linux下的安装,编译,实验

    Caffe在Linux下的安装,编译,实验  原文地址:http://www.cnblogs.com/evansyang/p/6150118.html 第一部分:Caffe 简介 caffe是有伯克利 ...

  8. Linux下librdkafka客户端的编译运行

    Linux下librdkafka客户端的编译运行 librdkafka是一个开源的Kafka客户端C/C++实现,提供了Kafka生产者.消费者接口. 由于项目需要,我要将Kafka生产者接口封装起来 ...

  9. 在linux下用命令行编译 java的eclipse项目

    由于jdk的版本问题导致在windows上编译打包好的jar包放在linux服务器上运行的时候出现一点小异常,所以决定在linux上进行一次项目编译,这有两个选择1.在相同的linux环境下安装lin ...

随机推荐

  1. Bash数组

    1. 数组申明 declare -a array 2. 数组赋值 #法1 array=(var1 var2 var3 ... varN) #法2 array=([]=var1 []=var2 []=v ...

  2. 深入理解Spring的ImportSelector接口

    ImportSelector接口是至spring中导入外部配置的核心接口,在SpringBoot的自动化配置和@EnableXXX(功能性注解)都有它的存在,关于SpringBoot的分析可以参考:深 ...

  3. Quarz.net 设置任务并行和任务串行

    如何设置Quarz.net某个任务完成后再继续执行该任务?  Quarz.net 的任务有并行和串行两种: 并行:一个定时任务,当执行时间到了的时候,立刻执行此任务,不管当前这个任务是否在执行中: 串 ...

  4. JAVA框架之Hibernate【配置文件详解】

    Hibernate配置文件主要功能是配置数据库连接和Hibernate运行时所需的各种属性,配置文件应该位于JAVA应用或者JAVA Web应用的类文件中,刚开始接触Hibernate的时候,感觉Hi ...

  5. CompoundScope说明

    A class scope adds capabilities to keep track of changes in relatedclass scopes - this allows client ...

  6. list string 互转

    List转字符串,用逗号隔开 List<string> list = new List<string>();list.Add("a");list.Add(& ...

  7. Silverlight中使用MVVM(2)-(提高)

    在第一篇文章中的示例中,我们已经简单的了解了应用MVVM模式的流程,我的本意是你已经了解了一点MVVM的概念,然后又没有一个较好的例子学习,可以跟着我一起学习MVVM模式,所以这个部分,都是没有理论知 ...

  8. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(八):MyBatis分页功能实现

    使用Mybatis时,最头痛的就是写分页,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,会发现真不想花双倍的时间写 count 和 select,幸 ...

  9. How to correctly handle ThreadLocal.get() returning null

    Java's ThreadLocals make certain things easy, but special care must be taken to make sure they are r ...

  10. gitlab的md文件内使用锚点

    markdown中使用锚点的格式: [要显示的内容](#锚点的链接) 如: [工具](#tool) 又因为再markdown中每一个标题都默认是锚点,所以事情就简单了 # test ## conten ...