因为现在在借着经典的书籍巩固一些基础知识,所以会经常跑一些简单的程序,可又不想开庞大的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. (转)Python: super 没那么简单

    原文:https://mozillazg.com/2016/12/python-super-is-not-as-simple-as-you-thought.html python 约定¶ 单继承¶ 多 ...

  2. Zookeeper--0300--java操作Zookeeper,临时节点实现分布式锁原理

    删除Zookeeper的java客户端有  : 1,Zookeeper官方提供的原生API, 2,zkClient,在原生api上进行扩展的开源java客户端 3, 一.Zookeeper原生API ...

  3. Silverlight中使用MVVM(1)--基础

    Silverlight中使用MVVM(1)--基础 Silverlight中使用MVVM(2)—提高 Silverlight中使用MVVM(3)—进阶 Silverlight中使用MVVM(4)—演练 ...

  4. java EE第一周博客

    一,课程目标 能够完成javaee开发框架的深入学习,能够熟练的构建出基本开发框架,熟练掌握配置文件以及各种插件的应用.实现一个较为复杂的javaee项目 二.企业级应用与互联网应用的区别 企业级应用 ...

  5. MVC返回文件

    上一篇 介绍了Action 返回View, 顺便也看到了返回Json的处理, 这一篇并不看文件返回的源码, 此篇是为了应用. 1. Response返回文件 在MVC的项目中, 还是能看到很多同事, ...

  6. postgresql逻辑结构--视图(五)

    定义 一.创建视图 1.语法 create [or replace ]  [ temp |  temporary ]  view name [(column_name [,...])]  as que ...

  7. 数据库字典查询,从EF工具操作中提取的

    用户表: SELECT [Project1].[C1] AS [C1] , [Project1].[CatalogName] AS [CatalogName] , [Project1].[Schema ...

  8. PHP self this parent

    {一}PHP中this,self,parent的区别之一this篇 面向对象编程(OOP,Object OrientedProgramming)现已经成为编程人员的一项基本技能.利用OOP的思想进行P ...

  9. LVS+keepalived+nginx+tomcat部署实现

    拓扑如下所示 # 节点分布情况 LVS-dr-master eth0: 192.168.146.141 LVS-dr-slave eth0: 192.168.146.142 nginx1: eth0: ...

  10. 解决使用vue-cli生成项目后项目地址自动添加#号的问题

    vue-router官网https://router.vuejs.org/zh/guide/ vue的路由在默认的hash模式下,url会带有一个#,不美观,而且在微信分享,授权登录等都会有一些坑.所 ...