1. 下载

1.1 JDK

http://www.oracle.com/technetwork/java/javase/downloads/index.html
选择“Windows x64 180.51 MB jdk-8u51-windows-x64.exe”下载。

1.2 Eclipse

http://www.eclipse.org/downloads/
选择下载“Eclipse IDE for Java EE Developers”64位版(要与JDK的一致,JDK也是64位版)

2. 安装JDK

1. 默认安装路径是“C:\Program Files\Java\jdk1.8.0_51\”,有人说安装目录不能带空格,否则会出问题(不知是否为真),将其改为“C:\Java\jdk1.8.0_51\”。
注意安装JDK后,弹出安装JRE的路径,默认为“C:\Program Files\Java\jre1.8.0_51\”,我们在java目录新建一个文件夹jre1.8.0_51,将其改为“C:\Java\jre1.8.0_51\”。

2. 设置环境变量:开始->计算机->属性->高级系统设置->环境变量,设置如下:

JAVA_HOME(在System Variables下新建) C:\Java\jdk1.8.0_51
CLASSPATH(在System Variables下新建) .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
PATH ;%JAVA_HOME%\bin

注意:如果要使用第三方的jre包,在CLASSPATH中务必要将路径详细到.jar,而不能使用目录(如C:\java\jar\)来代表jar目录中所有的jar包。

3. 测试javac

为测试Java编译器(Java compiler)是否正常安装,在cmd中输入"javac -version"看是否正确输出。

4. 测试java

为测试Java解释器(Java interpreter)是否正常安装,在cmd中输入"java -version"看是否正确输出。

5. 测试HelloWOrld

写一个HelloWorld.java程序,编译并运行,有可能会报下面的错误:

D:\TestJava>java HelloWorld
Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'
has value '1.8', but '1.6' is required.
Error: could not find java.dll
Error: could not find Java SE Runtime Environment.

原因是我以前安装过JRE1.6。环境变量在找java.exe时,找到了以前JRE的环境变量去了。从“HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment”中可以看到1.8和1.6共存。

解决的方法一是可以将环境变量配置“%JAVA_HOME%\bin”移到PATH的最前面,这样首先找到的java.exe将是JDK1.8的。

二是可以在控制面板中将JRE1.6删除(不用重启)。

3. 安装Eclipse

将Eclipse解压。运行eclipse.exe即可。

3.1 设置插入tab转换为space【1】

1. 打开菜单window->preference,选择 General->Editors->Text Editors,选中右侧的 insert space for tabs,保存。

2. 打开菜单window->preference,选择 java(或C++)->code style ->formatter,点击右侧的Edit...

3. 选则左侧 tab policy的值为spaces only,点击“Apply”应用即可:

4. 如果出现“Apply”应用按钮为灰色的情况,需要回到上一步,点击“new”按钮,根据当前的样式(Eclipse[built-in])重新生成一个新的样式(命名为EclipseTab)并保存。

5. 然后对“EclipseTab” profile 点击“Edit...”,编辑该样式,选则左侧 tab policy的值为spaces only,点击“Apply”应用即可。

6. 回到Formatter界面后,点击“Apply”,应用此“EclipseTab”样式。

4. 配置算法(第4版)的编译环境

官网提供的algs4.exe会下载并安装Java, DrJava, Checkstyle, Findbugs, and the textbook libraries。下载、安装、配置一键完成。如果不想使用algs4.exe默认下载的JDK和DrJava IDE,我们可以如上面那样手动安装并配置好JDK和Eclipse,然后按以下的方法编译程序。

注意:不使用algs4.exe的话,我们需要导入的包为stdlib-package.jar和algs4-package.jar,而不应该使用stdlib.jar和algs4.jar。原因见【2】的QA。

Q. If I use a named package to structure my code, the compiler can no longer access the libraries in stdlib.jar or algs4.jar. Why not?
A. The libraries in stdlib.jar and algs4.jar are in the "default" package. In Java, you can't access classes in the default package from a named package. If you need to use our libraries with a named package, you can use these package versions: stdlib-package.jar and algs4-package.jar.

4.1 使用Eclipse编译运行代码

1. 我们使用BinarySearch.java进行测试,BinarySearch中使用了StdIn,StdOut等stdlib的类,因此我们需要在源码中import导入这些库。

import java.util.Arrays;
import edu.princeton.cs.introcs.In; // 导入stdlib库
import edu.princeton.cs.introcs.StdIn; // 导入stdlib库
import edu.princeton.cs.introcs.StdOut; // 导入stdlib库 public class BinarySearch { private BinarySearch() { } public static int rank(int key, int[] a) {
int lo = 0;
int hi = a.length - 1;
while (lo <= hi) {
// Key is in a[lo..hi] or not present.
int mid = lo + (hi - lo) / 2;
if (key < a[mid]) hi = mid - 1;
else if (key > a[mid]) lo = mid + 1;
else return mid;
}
return -1;
} public static void main(String[] args) { // read the integers from a file
In in = new In(args[0]);
int[] whitelist = in.readAllInts();
// sort the array
Arrays.sort(whitelist);
// read integer key from standard input; print if not in whitelist
while (!StdIn.isEmpty()) {
int key = StdIn.readInt();
if (rank(key, whitelist) == -1)
StdOut.println(key);
}
}
}

2. StdIn,StdOut等类存在于stdlib-package.jar包中,但在Eclipse中是找不到stdlib-package.jar包的,所以我们需要将jar包导入Eclipse工程中。【3】

在工程的Build Path下选择Add External Archives 然后找到stdlib-package.jar和algs4-package.jar,添加它们就可以了。

3. 在Eclipse编译完后,如何运行呢?因为书上有很多程序都是通过输入重定向来获得输入的,比如:

java BinarySearch tinyW.txt < tinyT.txt

在Eclipse中不方便使用重定向,【3】中的解决办法是:直接用Scanner类。不过我没试过。我采用的办法是在Eclipse编码并编译完成后,在命令行里运行。

4.2 在命令行下编译运行代码

1. 由于书上有很多程序都是通过输入重定向来获得输入的,因此使用命令行更容易操作。

2. 但是由于我们要使用stdlib-package.jar包中类,所以我们编译以及运行代码时,都要指定jar包的参数。

3. 对于带一个jar包的编译:【4】

编译:javac -cp C:\Java\jdk1.8.0_51\lib\stdlib-package.jar BinarySearch.java
运行1:java -cp C:\Java\jdk1.8.0_51\lib\stdlib-package.jar;%classpath% BinarySearch tinyW.txt < tinyT.txt
运行2:java -cp .;C:\Java\jdk1.8.0_51\lib\stdlib-package.jar BinarySearch tinyW.txt < tinyT.txt

若jar包在当前目录的话,则编译运行为:

编译:javac -cp .\stdlib-package.jar BinarySearch.java
运行:java -cp .\stdlib-package.jar;%classpath% BinarySearch

4. 对于带多个jar包(在当前目录的lib子目录下)的编译:【5】

(1)如果多个jar包文件在同一个子目录下:(a)可以指定子目录;(b)使用通配符

指定子目录:

编译:javac -Djava.ext.dirs=.\lib BinarySearch.java

运行:java -Djava.ext.dirs=.\lib BinarySearch tinyW.txt < tinyT.txt

使用通配符:

编译:javac .\lib\*.jar BinarySearch.java

运行:java .\lib\*.jar BinarySearch tinyW.txt < tinyT.txt

(2)如果多个jar包文件在不同的目录下:可以使用分号”;“分割

编译:javac -Djava.ext.dirs=C:\Java\jdk1.8.0_51\lib\stdlib-package.jar;C:\Java\jdk1.8.0_51\lib\algs4-package.jar BinarySearch.java

运行:javac -Djava.ext.dirs=C:\Java\jdk1.8.0_51\lib\stdlib-package.jar;C:\Java\jdk1.8.0_51\lib\algs4-package.jar BinarySearch tinyW.txt < tinyT.txt

参考资料

【1】设置Eclipse中的tab键为4个空格的完整方法(http://my.oschina.net/xunxun10/blog/110074)

【2】http://algs4.cs.princeton.edu/code/

【3】算法 第4版 eclipse下环境搭建(http://blog.csdn.net/ChongErxoxo/article/details/42017577)

【4】java带jar包的命令行运行(http://blog.sina.com.cn/s/blog_620b085d0100iwwt.html)

【5】java命令行编译带jar包(http://blog.csdn.net/ssergsw/article/details/9164699)

配置算法(第4版)的Java编译环境的更多相关文章

  1. 应用 EditPlus 配置 Java 编译环境

    此文全文摘抄自: http://jingyan.baidu.com/album/37bce2be3ceef61002f3a208.html?picindex=7,谢啦 应用成功: EditPlus(文 ...

  2. Editplus配置java编译环境

    EditPlus配置java编译环境 第一步:检测自己是否已经有jdk 1.win+r,输入cmd,打开控制台 2.控制台下输入javac出现类似的画面,代表jdk已经成功安装 第二步:打开Editp ...

  3. 配置 Windows 下的 nodejs C++ 模块编译环境 安装 node-gyp

    配置 Windows 下的 nodejs C++ 模块编译环境 根据 node-gyp 指示的 Windows 编译环境说明, 简单一句话就是 "Python + VC++ 编译环境&quo ...

  4. Java编译环境的搭建(eclipse)

    每用一种语言开发,要搭建其编译和开发环境,我们废话不说,立刻来看看Java开发环境的搭建. 1.安装JDK和JRE Windows环境下: a.去Oracle官网下载对应版本的JDK安装包,http: ...

  5. Linux本地yum源配置以及使用yum源安装gcc编译环境

    本文档是图文安装本地yum源的教程,以安装gcc编译环境为例. 适用范围:所有的cetos,红帽,fedroa版本 适用人群:有一点linux基础的小白 范例系统版本:CentOS Linux rel ...

  6. MinGW安装与环境变量配置和Sublime Text 2搭建C++编译环境

    MinGW安装与环境变量配置 从http://sourceforge.net/projects/mingw/下载MinGW,安装到D:\MinGW.工具集选择安装(之后还可以进行安装卸载):至少需要安 ...

  7. 配置 Windows 下的 nodejs C++ 模块编译环境

    根据 node-gyp 指示的 Windows 编译环境说明, 简单一句话就是 "Python + VC++ 编译环境". 所有需要的安装文件, 我都下载好放到百度云盘了: nod ...

  8. sublime配置java编译环境

    Windows下配置Sublime Text3的Java环境 字数507 阅读2301 评论2 喜欢2 Sublime Text3是一个比较好用的IDE.截图如下: java环境截图 下面就简单介绍下 ...

  9. Notepad++ 配置java编译环境

    仅限于学习java或小的java程序使用.正常写代码还是eclipse吧 ---------------------分割线----------------------------- 1.配置JDK环境 ...

随机推荐

  1. MVC中使用RazorPDF创建PDF

    这篇文章主要介绍使用Nuget package中的RazorPDF简单的创建PDF的方法. 关于RazorPDF 这个Nuget Package由Al Nyveldt创建.它内部使用ITextShar ...

  2. Dynamic CRM 2013学习笔记(三十五)自定义审批流6 - 审批通过后,再审批 - 二次审批

    最近有个特殊的需求,客户想做二次审批,就是审批通过后,再走一次审批流程.最开始一想,这还不简单,审批通过后,直接把状态改成draft就完了,后来一试,发现一堆问题,比如第一次审批完后,界面是不允许修改 ...

  3. js 调整排序

    <html> <head> <script type='text/javascript' src='jquery-1.8.2.min.js'></script ...

  4. 除非 Windows Activation Service (WAS)和万维网发布服务(W3SVC)均处于运行状态,否则无法启动网站。目前,这两项服务均处于停止状态。

    win7 IIS 所有网站都停止了,启动提示: 除非 Windows Activation Service (WAS)和万维网发布服务(W3SVC)均处于运行状态,否则无法启动网站.目前,这两项服务均 ...

  5. JPA oneToMany 级联更新

    oneToMany 使用: 示例:Employee与Phone为例. 1.类定义如下: package com.vrvwh.wh01.domain; import javax.persistence. ...

  6. ubuntu14.04中文楷体变默认字体

    使用ubuntu以来,最让人头疼的事情就是在英文系统里面使用中文,一般中文字体都很难看,要么有锯齿,要么就是楷体.经过网上搜索找到一堆方法.一个个尝试之后觉得以下方式是最简单有效的. 1.安装font ...

  7. [jQuery学习系列五 ]5-Jquery学习五-表单验证

    前言最近总是有一个感觉,虽然这些东西都自己学习并一个案例一个案例的去验证过了.但是总觉得不写成博客记录下来这些都不是自己的东西(心理作用,哈哈).所以每当学习或者复习相关的知识我都喜欢记录下来,下面开 ...

  8. gulp+Babel 搭建ES6环境

    Gulp是什么? Gulp是一个工作流的构建系统,开发者可以使用它在网站开发过程中自动执行常见任务.Gulp是基于Node.js构建的,因此Gulp源文件和你用来定义任务的Gulp文件都被写进了Jav ...

  9. 24单行插入与批量插入-insert(必学)-天轰穿sqlserver视频教程

    大纲:insert语句,简单插入数据与批量插入数据 为了冲优酷的访问量,所以这里只放优酷的地址了,其实其他网站还是都传了的哈. 代码下载http://www.cnthc.com/?/article/1 ...

  10. GO語言視頻教程

    第1课:https://github.com/Unknwon/go-fundamental-programming/blob/master/lectures/lecture1.md Go开发环境搭建h ...