JDK的配置总是忘,记下来

JDK的安装应该说是比较容易的,从java的官方网站或者在baidu里面搜一下,很容易就会找到的,把官方的网站记下来吧:http://java.sun.com/j2se/1.4.2/download.html,呵呵,令人高兴的是该页面上也有了简体中文版的连接,在以前好像是没有的,方便多了。

 

现在的JDK最新版本是 1.4.2 ,并且和sun的开源的开发工具NetBean一起打包了,当然也可以不下载NetBean。可惜俺对除了Window的系统为的UnixLinux都不熟悉,每办法只能下载Window的版本了。等俺有机会一定要学学Linux或者Unix的。

 

下载之后的安装就不要再说了吧。安装完成之后的结果是:当然在安装位置多了一个文件夹(废话),这个文件夹里面的东西我是最近这一次安装才稍微明白了一些,就把我明白的记下来,不明白的以后再补充吧。

  1. bin目录:这里面就是那些常用的工具了,比如编译器javac.exe,还有java.exe(它该叫什么啊?),还有javadoc.exe好像是把源程序里面的注释什么的能够抽取出来形成文档(俺还不会用),打包的jar.exe(也还不会用),唉,不会用写这么多干吗。
  2. lib目录:据说这是java类库都是在这个文件夹里面,像源程序中的import语句引用的package和类主要都在这个文件夹里面。
  3. jre目录:java运行时环境。是SDK使用的,包括JVM、类库和其他的支持文件。
  4. demo目录:例子。
  5. src压缩文件:组成java2核心API的类的所有原代码,我第一次安装的时候还以为引用的类都是从这儿来的呢

除此之外,还在这儿安装了东西呢,以前不知道:C:/Program Files/Java/j2re 1.4.2 _04,这是java的运行时环境,我理解是程序开发部署之后要用的。

终于该写如何配置了,没想到前面就写了这么多!

如何配置JDK在网上简直太多了,随便搜一搜就有好多,一般就是这三个步骤:

  1. 在环境变量里面添加JDK所在的路径,俺这里是D:/j2sdk 1.4.2 /bin
  2. 设置环境变量classpath为:.;D:/j2sdk 1.4.2 /lib/dt.jar;D:/j2sdk1.4.2/lib/tools.jar,注意前面那个点儿;
  3. 嗯?没了,我记得是三个步骤啊,好像前两步作完就可以了

呵呵,每到这时我就兴致勃勃地赶紧写一个HelloWorld编译、运行,郁闷的事儿也就来了:一般javac的时候没事儿,可一用java就不行了,就是这个著名的错误:Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld,这是我就手足无措了。有时候在上网找一找就可能找到答案,改好了下回准忘,这次俺写下来看还忘不忘了!!!

上面的第一步好说,就是让javacjava等可执行文件所在的路径,是为了让window能够搜索到他们。

 

第二个设置classpath我到今天才明白。程序java.exe有一个参数也是classpath,这个参数是告诉java.exe到哪里去找运行的时候用到的类。

假如写的HelloWorld.java经过编译之后形成的HelloWorld.classD:/temp下,那么在运行时就可以写:java -classpath d:/temp HelloWorld,这样是不会有问题的(前提是没有在源程序中用package啊)。

 

嗯,如果这样的话每次运行的时候都这么写那岂不是很麻烦吗,所以设置环境变量classpath的效果也是一样的啊,就是告诉java.execlasspath指定的路径里面寻找相应的类,那个点儿(.)就是告诉java.exe在当前目录中寻找了。

 

因为运行cmd的时候默认路径一般是:c:/documents and Settings/username,而.class文件一般不是放在这个文件夹里面的,所以就总是出错了,如果在.class文件所在的目录中执行java,这是就能够在那个点儿(.)指定的目录(当前目录)中找到类当然就不会出错了。原来如此,我真是笨得可以。

 

另外就是源程序中有package的时候经常出现的问题了,也是让我郁闷的利害。如果源程序中没有package,那么按照上面的方法运行是没有问题的,假如在源程序中写了这样一个语句:

package Hello;

那么运行的时候就应该这样了:

java -classpath d:/temp Hello.HelloWorld

比较一下跟没有package时有什么不同:

java -classpath d:/temp HelloWorld

当然了,假如当前目录合适的话,-classpath d:/temp是可以省去不要的。

还有就是此时编译生成的.class文件必须放在./Hello目录下,不然的话还是如下的错误:Exception in thread "main" java.lang.NoClassDefFoundError: Hello/HelloWorld,郁闷啊

解决的方法是可以手动在当前目录下建立一个文件夹Hello,然后把.class文件拷到里面去,呵呵,好像比较笨。还好有另一种方法,那就是在编译的时候使用javac的参数-d指定要把类文件放在什么地方,这样写:

javac -d d:/temp d:/temp/HelloWorld(不要这样写:javac -d d:/temp/Hello d:/temp/HelloWorld,因为这时候Hello文件夹还不存在呢)

就可以在目录d:/temp中生成一个Hello文件夹,这时候运行要是在有问题我就彻底晕了!!

 

好了,后面这段好像够罗嗦的,但基本上就是这样了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值