[Sublime-Text] Linux下用Sublime-Text3編譯輸出Java檔案

來源:互聯網
上載者:User

標籤:

  因為現在在藉著經典的書籍鞏固一些基礎知識,所以會經常跑一些簡單的程式,可又不想開龐大的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 $1.classfor file in $1do  echo "-Compiling $file.java ..."  javac $file.javadoneif [ -f "$1.class" ]then  echo "------Output------"  java $1else  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檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.