在Windows上安裝「算法 第四版」組件


這篇文檔將向你介紹如何在Windows系統上安裝本書將用到的Java開發環境,同時我們也提供了一個手把手的、使用我們提供的DrJava工具或者用命令行來創建、編譯和運行你的第一個Java程序的手冊,這個過程中用到的所有軟件都可以自由下載

本操作指南適用於32位和64位的Windows 8、Windows 7、Vista SP1和XP SP3

——————

0. 安裝開發環境

——————

我們提供的安裝器將會自動下載、安裝和配置你將用到的所有開發環境,包括Java SE 7、DrJava、教材庫和命令行工具

  • 在電腦上登陸以后你會用來寫代碼的那個Windows賬戶,這個賬戶必須具有管理員權限(Administrator)且電腦必須連接到網絡。『譯者注:以我的經驗,你最好還有一個全局翻牆工具,VPN或者Shadowsocks,不然很有可能下載失敗』

  • 下載algs4.exe並雙擊進行安裝,如果在安裝開始前你收到一個用戶賬戶控制的警告,點擊「是」或者「允許」,如果在安裝結束后你收到一個程序兼容性警告,點擊「該程序已正確安裝」

  • 如果安裝成功,你將看到如下兩個信息:

    • 一個內容這個運行日志的命令行窗口
    • 一個內容為藍色靶心和教科書的標准繪圖窗口

    需要注意的是:如果你的網絡連接較慢的話,安裝程序需要持續幾分鍾甚至更長時間

  • 刪掉「algs4.exe」

——————

1. 在DrJava中創建程序

——————

現在你已經為你的第一個Java程序做好了准備,你將在一個叫DrJava的程序中開發你的Java程序。DrJava包含了語法高亮、匹配括號、自動縮進和顯示行號等特性。

  • 在上一節中的安裝包已經在桌面上創建了DrJava的快捷方式『譯者注:如果不慎刪掉,還可以在如下目錄中找到該程序:C:\Users\Username\algs4』。雙擊以啟動DrJava,如果你收到一個Windows安裝警告,點擊「允許運行」或者「不禁止」

  • 在DrJava的主窗體中,請向下面一樣准確無誤得輸入HelloWorld.java中的代碼,哪怕你只是漏掉了一個分號,這個程序也不會運行,在你輸入的時候,DrJava會為你准備縮進

  public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); } } 
  • 最后,點擊「保存」按鈕來保存該文件,使用DrJava創建文件夾C:\Users\username\algs4\hello並將文件命名為「HelloWorld.java」,這個文件名是大小寫敏感的而且必須匹配Java程序中的類名,其中username是你的Windows用戶名

——————

2. 在DrJava中編譯程序

——————

現在我們來將你的Java代碼轉化為可以在你的電腦上運行的東西,點擊「編譯」按鈕(Compile),如果一切順利的話,你會在DrJava底部的編譯器輸出窗格(Compiler Output Pane)看到這樣一條信息

Compilation completed.

如果DrJava沒有編譯成功,你應該是輸入錯了一些東西,重新仔細檢查你的代碼,你可以用編譯器輸出窗格中的信息作為參考

——————

3. 在DrJava中運行程序

——————

現在來運行你的程序,這是很有趣的部分

  • 在底部的交互窗格(Interactions pane)中輸入下列信息,按照習慣,我們高亮了你用粗體輸入的部分『譯者注:由於博客模板限制我沒辦法在我這里加粗相應內容,需要看加粗的去看原文吧』
  > java HelloWorld

如果一切順利,你會看到如下信息:

Welcome to DrJava. Working directory is C:\Users\username\algs4\hello > java HelloWorld Hello, World
  • 你或許會在成功運行前重復很多遍「編輯 - 編譯 - 運行」的循環

——————

4. 命令行界面

——————

命令行工具提供了DrJava中也有的功能,包括重定向和管道。你將在「命令行工具」中輸入你的指令

  • 安裝器在桌面上創建了一個命令行工具(Command Prompt),雙擊以啟動命令行,你將會看到類似於這樣的消息:
Microsoft Windows [Version 6.3.9600] (c) 2013 Microsoft Corporation. All rights reserved. C:\Users\username>
  • 首先確認一下Java編譯器已經被正確安裝,在命令行中輸入javac -version並確保輸出內容跟下面一樣
C:\Users\username>javac -version javac 1.7.0_67
  • 其次確認一下Java解釋器被正確安裝,在命令行中輸入java -version並確保輸出內容跟下面一樣
C:\Users\username>java -version java version "1.7.0_67" Java(TM) SE Runtime Environment (build 1.7.0_67-b01) Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)

如果你的機器是32位的,那么最后一行的內容應該是

Java HotSpot(TM) Client VM (build 24.65-b04, mixed mode, sharing)

——————

5. 在命令行中編譯程序

——————

你可以使用javac命令來將你的Java代碼轉化為可以在你的電腦上運行的東西

  • 在命令行中,通過cd命令導航到包含HelloWorld.java的目錄下,一般是C:\Users\username\algs4\hello,例如:
C:\Users\username>cd C:\Users\username\algs4\hello C:\Users\username\algs4\hello>

javac命令進行編譯

C:\Users\username\algs4\hello>javac HelloWorld.java C:\Users\username\algs4\hello>

如果HelloWorld.java在當前目錄下的話,你應該沒有看到任何報錯信息

  • 如果用到了我們的標准庫,你應該用javac-algs4來代替javac,例如:如果需要編譯TestAlgs4.java,這個程序引用了我們的標准繪圖庫,你應該這樣寫命令:
C:\Users\username\algs4>javac-algs4 TestAlgs4.java

『譯者注 - start』

同理,如果你需要運行javac-algs4編譯出來的.class文件的話,你也需要使用java-algs4 來運行,而不是使用java來運行

『譯者注 - end』

——————

6. 在命令行中運行程序

——————

  • 你需要使用java命令來運行你的程序:
C:\Users\username\algs4\hello>java HelloWorld Hello, World

你會在輸出中看到Hello, World

  • 如果你想使用教科書提供的庫的話,需要用java-algs4 來替代java,例如,在測試標准繪圖和標准音頻時你可以使用下面兩條命令:

『譯者注:使用之前需要注意!!!第一條命令是標准繪圖,隨便使用;第二條命令是標准音頻,使用之后麥克風會開始播放奇怪的聲音,請先調小音量,運行之后如果需要停止運行,除了直接關閉命令行窗口外,你還可以使用Ctrl+C的組合鍵來關閉這個運行』

C:\Users\username\algs4\hello>java-algs4 edu.princeton.cs.algs4.StdDraw [ displays a graphics window with some geometric shapes and text ] C:\Users\username\algs4\hello>java-algs4 edu.princeton.cs.algs4.StdAudio [ plays an A major scale ]

——————

7. 檢查風格和查找bug

——————

你可以使用檢查縫合查找bug兩個工具來核查你的代碼風格並檢查一些簡單的bug

  • 在命令行中可以這樣使用檢查風格功能:
C:\Users\username\algs4\hello>checkstyle-algs4 HelloWorld.java Running checkstyle on HelloWorld.java: Starting audit... Audit done.

下面是一張可以檢查的清單,你可以自定義這個風格檢查,自定義的方法是編輯這個文件:C:\Users\username\algs4\checkstyle-6.9\checkstyle.xml

  • 在命令行中可以這樣使用查找bug功能
C:\Users\username\algs4\hello>findbugs-algs4 HelloWorld.class Running findbugs on HelloWorld.class:

下面是一張可以檢查的清單,你可以自定義這個bug檢查,自定義的方法是編輯這個文件:C:\Users\username\algs4\findbugs-3.0.1\findbugs.xml

——————

常見問題

——————

Q:我之前使用過另一本教材「Introduction to Programming in Java」的「introcs.app」安裝器,我還應該使用「algs4.exe」安裝器嗎?

A: 是的,我們推薦「algs4.exe」安裝器是因為「introcs.app」安裝器不包含「algs4.jar」庫和相應的命令javac-algs4java-algs4

Q: 運行安裝器時我遇到了訪問被拒絕的錯誤信息,我該怎么辦

A: 確保你使用了一個管理員權限的賬戶,再重新運行一次安裝器。另外,你的機器上可能有加密軟件禁止寫入C:\Users\username\AppData\Local目錄,這也可能導致安裝器運行失敗

Q:安裝器根本不運行,為什么?

A:這個安裝器的運行需要PowerShell。運行Windows Update來升級你的電腦,如果是XP系統,你需要SP3。在XP SP3或者Vista環境下你也可以手動下載PowerShell2.0

Q: 我可以把安裝目錄設置在C盤以外的驅動器上嗎?

可以,但是你需要自己手動修改參數

Q: 安裝器在我的機器上不工作,怎么辦?

A: 聯系一個工作人員,然后檢查一下哪兒出問題了

Q: 安裝器到底做了些什么?

A: 簡而言之就是:下載,安裝,配置了Java、DrJava、Checkstyle、Findbugs和教材庫,下面是一個更加詳細的清單:

  1. java32.zip或者java64.zip下載和安裝Java SE 7 Update 67,這其中包含了Java Runtime Environment(java.exe)和一部分Java Development Kit(javac.exe and toools.jar)

  2. algs4.jar下載教材庫,並創建好javac-algs4java-algs4的包裝腳本

  3. checkstyle.zip下載並安裝Checkstyle 6.9,並從checkstyle.xml下載checkstyle的配置文件,給checkstyle-algs4創建包裝腳本

  4. findbugs.zip下載和安裝Findbug3.0.1,從findbugs.xml下載findbugs的配置文件,為findbugs-algs4創建包裝腳本

  5. drjava.jar下載最新版本的DrJava,為DrJava在桌面上創建一個快捷方式,從drjava-config.txt下載一個DrJava的配置文件到C:\Users\username\.drjava,注意,這個操作會覆蓋掉任何已經存在的.drjava配置文件

  6. 在環境變量中,將C:\Users\username\algs4\java\binC:\Users\username\algs4\bin添加到用戶變量的PATH中

  7. 定制命令行工具,啟用QuickEdit和Insert模式,將Screen Buffer Size設置為800-by-500,在桌面上創建一個命令行的快捷方式

  8. 通過編譯和運行TestAlgs4.java測試是否安裝成功

**Q: 我要如何完全卸載 algs4.exe ?

A:

  1. 刪除C:\Users\username\algs4文件夾(但是要注意保存你的.java文件)

  2. 從你的環境變量的PATH變量中刪除下面兩個條目:

    • C:\Users\username\algs4\bin

    • C:\Users\username\algs4\bin

  3. 刪除DrJava配置文件C:\Users\username\.drjava

  4. 刪除桌面上的DrJava和命令行的快捷方式

Q: 我如果重新運行安裝器會怎么樣?

A: 重新下載、安裝一遍,完全重復上述過程

Q: 如果我之前在其他位置安裝過DrJava會怎么樣?

A: 我們建議你刪除他然后使用C:\Users\username\algs4這個版本

Q: 我可以使用其他版本的Java 嗎?

A: 是的,但你需要自行配置Windows環境變量和DrJava的編譯器屬性

Q: 我可以使用除了DrJava以外的IDE嗎?

A: 是的,你可以使用其他的IDE(比如Eclipse)但你需要自己配置編譯器屬性,比如classpath

Q: 當我啟動Eclipse時,我收到這樣一個報錯信息“Failed to load JNI shared library”,我該怎么辦?

A: 你多半是使用了一個64位的Java和32位的Eclipse。如果你是64位的機器,安裝器會自動安裝64位的Java,這會替代之前的32位版本的Java。有兩種方法解決這個問題:要么將Eclipse升級到64位,要么將C:\Users\username\introcs\java移除,這樣的話Windows就會使用之前的32位Java。當然你可以可以在Eclipse.ini中指定使用特定的Java版本

Q: 我要怎么中斷一個無限循環?

A: 在DrJava中,直接點擊Reset按鈕即可或者在菜單里選擇Tools->Reset Interactions,如果是在命令行里面的話,使用Ctrl+C

Q: 當使用標准輸入時,我要怎么表明輸入完成(沒有后續數據了)

A: 如果你是從鍵盤輸入的話,使用Ctrl+z表示文件結尾(EOF)

Q: 在Windows中要怎么顯示 .java 和 .class 的后綴名?

A: 在很多Windows系統中后綴名都被隱藏了,在這種情況下,這樣打開他,選擇Start -> My Computer -> Tools -> Folder Options -> View,取消對Hide file extensions for known file types選項的選中狀態,確認退出即可

Q: 當我在命令行輸入java -versionjavac -version時報錯了,我該怎么辦?

A: 首先確認這兩個文件存在:

C:\Users\username\algs4\java\bin\javac.exe

C:\Users\username\algs4\java\bin\java.exe

如果存在的話,應該是環境變量中PATH的值不對,在命令行中輸入下面一句:

C:\Users\username> echo %PATH% 

PATH環境變量應該包含C:\Users\username\algs4\java\bin

Q: 當我在命令行中編譯或者運行一個引用了教材庫的程序時報錯了,為什么?

A: 注意要使用javac-algs4java-algs4而不是javac或者java

Q: 在命令行中我應該如何導航到另一個驅動器?

A: 在命令行中,用H:導航到H盤,用cd導航到當前驅動器的其他文件夾

Q: 我該如何學習更多與命令行有關的知識?

A: 微軟提供了一個命令行知識庫

Q: 我是否可以用Windows PowerShell來替代命令行?

A: PowerShell是一個比命令行更高級的命令行工具,但是,它現在還不支持重定向標准輸入


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM