Java開發(fā)環(huán)境搭建

目錄頁:我的algs4之旅

參照教程:書籍官網(wǎng)在Linux環(huán)境下搭建Java開發(fā)環(huán)境 HELLO WORLD JAVA ON LINUX

安裝Java

我打開樹莓派嘗試在命令行上輸入 java -version 之后,欣喜地發(fā)現(xiàn)樹莓派已經(jīng)提前預裝了Java(JDK1.8),直接跳過教程第0步,省了我好一番事。

安裝開發(fā)環(huán)境

依據(jù)教程中的步驟,完成開發(fā)環(huán)境的安裝。

文件 最后所在目錄 作用
algs4.jar /usr/local/algs4 書中所用的庫
javac-algs4 /usr/local/bin 腳本,通過shell編譯.java文件時,指明執(zhí)行javac程序所需的一些信息并執(zhí)行
java-algs4 /usr/local/bin 腳本,通過shell編譯.class文件時,指明執(zhí)行java程序所需的一些信息并執(zhí)行
文件 最后所在目錄 作用
drjava.jar /usr/local/algs4 drjava運行所需的庫
drjava /usr/local/bin 腳本,指明執(zhí)行DrJava程序所需的一些信息并執(zhí)行
.drjava ~ DrJava的配置文件
文件 最后所在目錄 作用
checkstyle.zip /usr/local/algs4 壓縮文件,解壓后得到checkstyle-7.4可執(zhí)行文件
checkstyle-algs4.xml /usr/local/algs4 配置文件
checkstyle-suppressions.xml /usr/local/algs4 配置文件
checkstyle-algs4 /usr/local/bin 腳本,指明執(zhí)行checkstyle-7.4程序所需的一些信息并執(zhí)行
文件 最后所在目錄 作用
findbugs.zip /usr/local/algs4 壓縮文件,解壓后得到findbugs-3.0.1可執(zhí)行文件
findbugs.xml /usr/local/algs4 配置文件
findbugs-algs4 /usr/local/bin 腳本,指明執(zhí)行findbugs-3.0.1程序所需的一些信息并執(zhí)行

過程中遇到個小問題,完成教程所示步驟后,我運行
pi@raspberrypi:/usr/local/algs4 $ drjava
然而出現(xiàn)了...

Exception in thread "main" java.lang.ExceptionInInitializerError
    at sun.misc.Unsafe.ensureClassInitialized(Native Method)
    at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43)
    at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:142)
    at java.lang.reflect.Field.acquireFieldAccessor(Field.java:1088)
    at java.lang.reflect.Field.getFieldAccessor(Field.java:1069)
    at java.lang.reflect.Field.get(Field.java:393)
    at edu.rice.cs.drjava.config.OptionMapLoader.<clinit>(OptionMapLoader.java:59)
    at edu.rice.cs.drjava.config.SavableConfiguration.loadConfiguration(SavableConfiguration.java:58)
    at edu.rice.cs.drjava.config.FileConfiguration.loadConfiguration(FileConfiguration.java:65)
    at edu.rice.cs.drjava.DrJava._initConfig(DrJava.java:523)
    at edu.rice.cs.drjava.DrJava.handleCommandLineArgs(DrJava.java:452)
    at edu.rice.cs.drjava.DrJava.main(DrJava.java:242)
Caused by: java.awt.HeadlessException: 
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
    at sun.awt.HeadlessToolkit.getMenuShortcutKeyMask(HeadlessToolkit.java:236)
    at edu.rice.cs.drjava.config.OptionConstants.<clinit>(OptionConstants.java:388)
    ... 12 more

顯示:X11 DISPLAY變量沒有設置,但該程序需要它(No X11 DISPLAY variable was set, but this program performed an operation which requires it.)

X11 DISPLAY變量是圖形界面所需要的一個變量,我猜這可能是我是Xshell上通過ssh連接樹莓派所致,于是改用VNC,果然,運行成功。

通過vnc成功打開drjava

到這里,開發(fā)環(huán)境就算是搭建完了

但我能不能在Xshell那邊弄出這個界面呢?

Windows下通過ssh連接樹莓派(Linux)運行圖形界面程序

參考教程:

發(fā)現(xiàn)在Windows下通過ssh想打開圖形界面的話,還需要Xming軟件,下載地址:

兩個步驟:

  • 下載并安裝Xming
    Xming安裝過程中會提示你是否選擇安裝PuTTY,我因為有了Xshell,就沒有勾選安裝此項。
  • 設置Xshell的屬性
Xshell屬性選項
Xshell屬性設置

成功在我的Windows機子上運行樹莓派的圖形界面程序drjava...

Windows上運行樹莓派中的drjava

解釋一下:

這里的原因在于,樹莓派(Linux)本身是沒有圖形界面的,它的圖形界面都是基于X11實現(xiàn)的,而在Windows上并沒有這個X11。

P.S. Linux的圖形界面運行機制在實驗樓的Linux基礎入門(新版)的基本概念及操作中講得挺清楚的,有興趣的朋友可以點過去看看。

通過ssh連接樹莓派運行樹莓派的圖形界面程序,實際上叫樹莓派把運行圖形界面所需的信息通過ssh傳送過來,然后我在Windows這邊依據(jù)這些信息重新搭建出需要的圖形界面程序。

問題就在于Windows上并沒有上面提到的運行樹莓派的圖形界面程序所需的X11,于是,就有了上面的那個報錯信息。

如果我是用一個Linux的系統(tǒng),那連接樹莓派運行圖形界面時,樹莓派通過ssh傳過來的構建圖形界面的信息,我的Linux系統(tǒng)可以接受,直接就可以重新構建出所需的圖形界面。在上面的兩個步驟中,我只要設置Xshell的屬性就可以了。

但我是Windows的環(huán)境,我需要提供一個運行Linux圖形界面的基礎,所以,我需要下載Xming,讓Xming來提供這些東西。

在DrJava上創(chuàng)建一個程序

其實在安裝Java這一步進行好之后,你就可以在你的計算機上編寫、編譯并運行你自己寫的Java程序了,但那樣的話,在一些操作上會比較麻煩(比如沒有語法高亮、括號匹配、自動縮進、行號等)。所以我們選擇在安裝一個集成開發(fā)環(huán)境,就是上面那個步驟中的DrJava了,類似于eclipse、visual studio 2015這些。

所以現(xiàn)在,在DrJava安裝好了之后,我們就要在DrJava這個程序上編寫我們的Java程序了。

這里有一個小問題,如果你是按照algs4官方教程操作,到這里你會發(fā)現(xiàn)你輸入的文字顯示不出來,只有選中一下才能看到自己輸入了什么,就像這樣:

在圖片箭頭所指之處我是輸入了一些字符的 紅框所示,左側文件欄中的狀態(tài)也是已更改未保存狀態(tài)
選中文字后證明我確實有輸入字符

這里的原因是因為剛才前面安裝DrJava時,下載了一個.drjava的文件,并將它剪切在了我自己的文件夾下,這個文件是DrJava的配置文件,在.drjava中對DrJava做了一些設置,比如顯示行號等,但同時,它設置了一些字體顏色,其中就有把輸入字體設置為白色的設定。

在自己的文件夾下通過vim查看一下.drjava文件
pi@raspberrypi:~ $ vim .drjava

.drjava中的一些顏色設定

而DrJava默認的界面外觀(look and feel)的輸入框背景色是白色,所以輸入內容就看不清了。

我的解決方法是更改DrJava的界面外觀,步驟如下:

進入DrJava設置頁
下拉框選擇喜歡的界面外觀并點擊下方按鈕應用

重啟后即可應用新的界面外觀

完成效果圖

如上圖的完成效果圖所示,在文本框中輸入你的Java代碼。

點擊Save按鈕選擇合適的文件夾保存為HelloWorld.java文件

通過DrJava編譯程序

點擊Compile按鈕并在編譯輸出面板看到成功編譯的輸出信息

編譯成功

通過DrJava執(zhí)行程序

編譯成功后,切換到交互面板(Interactions),在>提示符后輸入java HelloWorld,不要理我圖中的第一個輸入,那是一個錯誤的示范...

執(zhí)行成功

成功執(zhí)行,輸出信息(綠色)Hello, World

到這里,如何在DrJava上編譯運行Java程序已介紹完畢。下面兩點是如何在Shell上編譯運行Java程序(略,自行查看教程);再之后是關于用Checkstyle查看寫的Java代碼風格是否符合代碼編寫規(guī)范,以及Findbugs查找Java代碼中的bug;最后的Troubleshooting(解決問題)是作者回答一些常見的問題(略,自行查看教程)。

Checkstyle和Findbugs

Checkstyle

顯示algs4.jar的頭部格式不正確,此處不清楚原因

Findbugs

未出現(xiàn)錯誤信息

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容