[Sublime-Text] Linux下用Sublime-Text3编译输出Java文件

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

在 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 $1.class
for file in $1
do
  echo "-Compiling $file.java ..."
  javac $file.java
done


if [ -f "$1.class" ]
then
  echo "------Output------"
  java $1
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 即可看到输出。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

移植Windows自宿主WCF服务到Linux/Mono2.8

Windows服务是这些后台程序、后台服务的正规名词。Windows服务的运行可以在没有用户干预的情况下,在后台运行,没有任何界面。通过Windows服务管理器...

2138
来自专栏恰童鞋骚年

.NET Core微服务之基于App.Metrics+InfluxDB+Grafana实现统一性能监控

  App.Metrics是一款开源的支持.NET Core的监控插件,它还可以支持跑在.NET Framework上的应用程序(版本 >= 4.5.2)。官方...

2241
来自专栏韩东吉的Unity杂货铺

零基础入门 5: 自定义脚本内容和脚本ICON

Hello,这几天忙碌的不可开交,又有几天没更新了。这么久不见大家,今天来更新一发。

1212
来自专栏iOSDevLog

iOS打包framework - Swift完整项目打包Framework,嵌入OC项目使用

--------------------------------打包篇-------------------------------****

1884
来自专栏小俊博客

微软 Edge 浏览器爆高危漏洞,受控电脑可执行任意命令

10月12日,有安全研究人员发布了Windows Shell REC( CVE-2018-8495))漏洞概念验证代码,受影响软件为Windows 10内置的M...

1001
来自专栏Windows Community

New Windows 10 SDK - Multi-instance UWP apps

概述 前面一篇 About Windows 10 SDK Preview Build 17110 中,我们简单介绍了 Multi-instance UWP Ap...

3379
来自专栏程序员宝库

Linux进程基础

计算机实际上可以做的事情实质上非常简单,比如计算两个数的和,再比如在内存中寻找到某个地址等等。这些最基础的计算机动作被称为指令(instruction)。所谓的...

2484
来自专栏IMWeb前端团队

meteor 简介

本文作者:IMWeb helondeng 原文出处:IMWeb社区 未经同意,禁止转载 What “Meteor gives you a radica...

2299
来自专栏开源优测

[快学Python3]开发工具

Python有丰富的开发工具,本书不一一进行介绍,只推荐大家使用PyCharm,本书接下来章节的示例代码均基于PyCharm社区版进行演示。 下载 下载地址: ...

3327
来自专栏Vamei实验室

Linux进程基础

计算机实际上可以做的事情实质上非常简单,比如计算两个数的和,再比如在内存中寻找到某个地址等等。这些最基础的计算机动作被称为指令 (instruction)。所谓...

2275

扫码关注云+社区

领取腾讯云代金券