- 浏览: 612997 次
- 性别:
- 来自: 太原
文章分类
- 全部博客 (240)
- 程序员数学/线性代数(Linear Algebra) (2)
- 程序员数学/微积分(Calculus) (6)
- 机器学习(Machine Learning) (5)
- JAVA SE (63)
- JAVA EE (14)
- 数据库技术 (26)
- struts (4)
- 软件设计/设计模式 (0)
- ibatis (2)
- XML (4)
- 领域建模 (0)
- 数据资源共享 (1)
- 软件工程 (11)
- 技术以外 (6)
- 面向对象 (2)
- 科学数据共享 (1)
- 资源 (7)
- WEB2.0 (11)
- 电子商务 (10)
- 算法、数据结构、数学 (10)
- LAMP (1)
- 杂谈 (12)
- C语言 (7)
- 程序设计思想 (3)
- 读书和笔记 (1)
- 生活 健身 养生 (5)
- WEB UI (2)
- eclipse (2)
- 项目管理 (7)
- oracle (5)
- linux (1)
- webGIS (6)
最新评论
-
TimePower:
OK~终于明白了~~
参数(parameter)和属性(Attribute)的区别 -
OnTheRoad_lee:
不错,正式我想要的东西,一直不明白序列化是什么?有什么用?至此 ...
我对Java Serializable(序列化)的理解和总结 -
EchoZhouYou:
好久不上这,找这本书时发现这一篇,特意登录来赞一下
《程序设计语言——实践之路》读后感 -
yong7356:
学习一下Serializable
我对Java Serializable(序列化)的理解和总结 -
dengjm_2012:
写得不错!
我对Java Serializable(序列化)的理解和总结
1. 下载并安装JDK1.5.0,并按默认路径,安装到C:\Program Files\Java\jdk1.5.0中。
2. 用鼠标单击WindowsXP的“开始”->“运行”,在弹出的运行窗口中输入cmd,按确定或回车,打开一个命令行窗口。
3. 在命令行中输入:
java
有一列长长的洋文滚了出来,这是JDK告诉我们java这个命令的使用方法。其中隐含了一个重要信息,即JDK安装成功,可以在命令行中使用java此命令了。
4. 在命令行中输入
javac
屏幕显示:
javac 不是内部或外部命令,也不是可运行的程序或批处理文件。
这 是由于windows找不到javac这个命令的原因。这就不明白了,java与javac都是JDK在同一个子目录里面的两个文件,为什么可以 直接运行java而不能直接运行javac呢?原来,Sun公司为了方便大家在安装完JDK后马上就可以运行Java类文件,在后台悄悄地将java命令 加入了Path的搜索路径中,因此我们可以直接运行java命令(但我们是看不到它到底是在哪设置的,无论是在用户的Path或系统的Path设置中均找 不到这个java存放的路径)。但Sun所做的到此为止,其他JDK的命令,一概不管,需要由用户自己添加到搜索路径中。
5. 既然如此,那我们自己添加Path的搜索路径吧。对“我的电脑”按右键,选“属性”,在“系统属性”窗口中选“高级”标签,再按“环境变量”按钮,弹出一 个“环境变量”的窗口,在用户变量中新建一个变量,变量名为“Path”,变量值为"C:\Program Files\Java\jdk1.5.0\bin;%PATH%"。最后的%PATH%的意思是说,保留原有的Path设置,且将目前的Path设置新加 到其前面。一路按“确定”退出(共有3次)。关掉原来的命令行窗口,依照第2步,重新打开一个新的命令行窗口。在此窗口中输入
javac
长长的洋文又出现了,这回是介绍javac的用法。设置成功。
6. So far so good. 到目前为止,我们已经可以编程了。但是,这不是一个好办法。因为随着以后我们深入学习Java,我们就会用到JUnit、Ant或NetBeans等应用 工具,这些工具在安装时,都需要一个名为指向JDK路径的“JAVA_HOME”的环境变量,否则就安装不了。因此,我们需要改进第5步,为以后作好准 备。依照第5步,弹出“环境变量”的窗口,在用户变量中新建一个变量,变量名为“JAVA_HOME”,变量值为"C:\Program Files\Java\jdk1.5.0"。注意,这里的变量值只到jdk1.5.0,不能延伸到bin中。确定后,返回“环境变量”的窗口,双击我们原 先设定的Path变量,将其值修改为“%JAVA_HOME%\bin;%PATH%”。这种效果与第5步是完全一样的,只不过多了一个 JAVA_HOME的变量。这样,以后当我们需要指向JDK的路径时,只需要加入“%JAVA_HOME%”就行了。至此,Path路径全部设置完毕。一 路确定退出,打开新的命令行窗口,输入
javac
如果长长的洋文出现,Path已经设置正确,一切正常。如果不是,请仔细检查本步骤是否完全设置正确。
7. 开始编程。在C盘的根目录中新建一个子目录,名为“JavaTest”,以作为存放Java源代码的地方。打开XP中的记事本,先将其保存到 JavaTest文件夹中,在“文件名”文本框中输入"Hello.java"。注意,在文件名的前后各加上一个双引号,否则,记事本就会将其存为 "Hello.java.txt"的文本文件。然后输入以下代码:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, world");
}
}
再次保存文件。
8. 在命令行窗口中输入
cd C:\JavaTest
将当前路径转入JavaTest中。然后,输入
javac Hello.java
JDK 就在JavaTest文件夹中编译生成一个Hello.class的类文件。如果出现“1 error”或“XX errors”的字样,说明是源代码的输入有误,请根据出错提示,仔细地按第7步的代码找出并修正错误。请读者注意甄别代码输入有误的问题与 classpath设置有误的问题。因为本文是关于如何正确设置classpath及package的,因此,这里假设读者输入的代码准确无误。到目前为 此,由于我们是在源代码的当前路径下编译,因此,不会出现classpath设置有误的问题。
9. 在命令行窗口中输入
java Hello
屏幕出现了
Hello world
成功了,我们已经顺利地编译及运行了第一个Java程序。
但是,第8步及第9步是不完美的,因为我们是在JavaTest这个存放源码的文件夹中进行编译及运行的,因此,一些非常重要的问题并没有暴露出来。实际 上,第8步的“javac Hello.java”及第9步的“java Hello”涉及到两个问题,一是操作系统如何寻找“javac”及“java”等命令,二是操作系统如何寻找“Hello.java”及 “Hello.class”这些用户自己创建的文件。对于“javac”及“java”等命令,由于它们均是可执行文件,操作系统就会依据我们在第6步中 设置好的Path路径中去寻找。而对于“Hello.java”及“Hello.class”这些文件,Path的设置不起作用。由于我们是在当前工作路 径中工作,java及javac会在当前工作路径中寻找相应的java文件(class文件的寻找比较特殊,详见第11步),
因此一切正常。下面我们开始人为地将问题复杂化,在非当前工作路径中编译及运行,看看结果如何。
10. 在命令行窗口中输入
cd C:
转入到C盘根目录上,当前路径离开了存放源码的工作区。输入
javac Hello.java
屏幕出现:
error: cannot read: Hello.java
1 error
找不到Hello.java了。我们要给它指定一个路径,告诉它到C:\JavaTest去找Hello.java文件。输入
javac C:\JavaTest\Hello.java
OK,这回不报错了,编译成功。
11. 输入
java C:\JavaTest\Hello
这回屏幕出现:
Exception in thread "main" java.lang.NoClassDefFoundError: C:\JavaTest\Hello
意 思为在“C:\JavaTest\Hello”找不到类的定义。明明C:\JavaTest\Hello是一个.class文件,为什么就找不到 呢?原来,Java对待.java文件与.class文件是有区别的。对.java文件可以直接指定路径给它,而java命令所需的.class文件不能 出现扩展名,也不能指定额外的路径给它。
那么,如何指定路径呢?对于Java所需的.class文件,必须通过classpath来指定。
12. 依照第5步,弹出“环境变量”窗口,在用户变量中新建一个变量,变量名为“classpath”,变量值为"C:\JavaTest"。一路按“确定”退出。关闭原命令行窗口,打开新的命令行窗口,输入
java Hello
“Hello world”出来了。由此可见,在“环境变量”窗口中设置classpath的目的就是告诉JDK,到哪里去寻找.class文件。这种方法一旦设置好, 以后每次运行java或javac时,在需要调用.class文件时,JDK都会自动地来到这里寻找。因此,这是一个全局性的设置。
13. 除了这种在环境变量”窗口中设置classpath的方法之外,还有另一种方法,即在java命令后面加上一个选项classpath,紧跟着不带扩展名的class文件名。例如,
java -classpath C:\JavaTest Hello
JDK 遇到这种情况时,先根据命令行中的classpath选项中指定的路径去寻找.class文件,找不到时再到全局的classpath环境变 量中去寻找。这种情况下,即使是没有设置全局的classpath环境变量,由于已经在命令行中正确地指定类路径,也可以运行。
为了在下面的例子中更好地演示classpath的问题,我们先将全局的classpath环境变量删除,而在必要时代之以命令行选项-classpath。弹出“环境变量”窗口,选中“classpath”的变量名,按“删除”键。
此 外,java命令中还可以用cp,即classpath的缩写来代替classpath,如java -cp C:\JavaTest Hello。特别注意的是,JDK 1.5.0之前,javac命令不能用cp来代替classpath,而只能用classpath。而在JDK 1.5.0中,java及javac都可以使用cp及classpath。因此,为保持一致,建议一概使用classpath作为选项名称。
14. 我们再次人为地复杂化问题。关闭正在编辑Hello.java的记事本,然后将JavaTest文件夹名称改为带空格的“Java Test”。在命令行中输入
javac C:\Java Test\Hello.java
长长的洋文又出来了,但这回却是报错了:
javac: invalid flag: C:\Java
JDK将带有空格的C:\Java Test分隔为两部分"C:\Java"及"Test\Hello.java",并将C:\Java视作为一个无效的选项了。这种情况下,我们需要将整个路径都加上双引号,即
javac "C:\Java Test\Hello.java"
这回JDK知道,引号里面的是一个完整的路径,因此就不会报错了。同样,对java命令也需要如此,即
java -classpath "C:\Java Test" Hello
对于长文件名及中文的文件夹,XP下面可以不加双引号。但一般来说,加双引号不容易出错,也容易理解,因此,建议在classpath选项中使用双引号。
15. 我们再来看.java文件使用了其他类的情况。在C:\Java Test中新建一个Person.java文件,内容如下:
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
然后,修改Hello.java,内容如下:
public class Hello {
public static void main(String[] args) {
Person person = new Person("Mike");
System.out.println(person.getName());
}
}
在命令行输入
javac "C:\Java Test\Hello.java"
错误来了:
C:\Java Test\Hello.java:3: cannot find symbol
symbol: class Person
JDK 提示找不到Person类。为什么javac "C:\Java Test\Hello.java"在第14步中可行,而在这里却不行了呢?第14步中的Hello.java文件并没有用来其他类,因此,JDK不需要去 寻找其他类,而到了这里,我们修改了Hello.java,让其使用了一个Person类。根据第11步,我们需要告诉JDK,到哪里去找所用到的类,即 使这个被使用的类就与Hello.java一起,同在C:\Java Test下面!输入
javac -classpath "C:\Java Test" "C:\Java Test\Hello.java"
编 译通过,JDK在C:\Java Test文件夹下同时生成了Hello.class及Person.class两个文件。实际上,由于Hello.java使用了Person.java 类,JDK先编译生成了Person.class,然后再编译生成Hello.class。因此,不管Hello.java这个主类使用了多少个其他类, 只要编译这个类,JDK就会自动编译其他类,很方便。输入
java -classpath "C:\Java Test" Hello
屏幕出现了
Mike
成功。
16. 第15步说明了在Hello.java中如何使用一个我们自己创建的Person.java,而且这个类与Hello.java是同在一个文件夹下。在这一步中,我们将考查Person.java如果放在不同文件夹下面的情况。
先将C:\Java Test文件夹下的Person.class文件删除,然后在C:\Java Test文件夹下新建一个名为DF的文件夹,并将C:\Java Test文件夹下的Person.java移动到其下面。在命令行输入
javac -classpath "C:\Java Test\DF" "C:\Java Test\Hello.java"
编译通过。这时javac命令没有什么不同,只需将classpath改成C:\Java Test\DF就行了。
在命令行输入
java -classpath "C:\Java Test" Hello
这时由于Java需要找在不同文件夹下的两个.class文件,而命令行中只告诉JDK一个路径,即C:\Java Test,在此文件夹下,只能找到Hello.class,找不到Person.class文件,因此,错误是可以预料得到的:
Exception in thread "main" java.lang.NoClassDefFoundError: Person
at Hello.main(Hello.java:3)
果真找不到Person.class。在设置两个以上的classpath时,先将每个路径以双引号引起来,再将这些路径以“;”号隔开,并且每个路径与“;”之间不能带有空格。因此,我们在命令行重新输入:
java -classpath "C:\Java Test";"C:\Java Test\DF" Hello
编 译成功。但也暴露出一个问题,如果我们需要用到许多分处于不同文件夹下的类,那这个classpath的设置岂不是很长!有没有办法,对于一个文 件夹下的所有.class文件,只指定这个文件夹的classpath,然后让JDK自动搜索此文件夹下面所有相应的路径?有,只要使用package。
17. package简介。Java中引入package的概念,主要是为了解决命名冲突的问题。比如说,在我们的例子中,我们设计了一个很简单的Person 类,如果某人开发了一个类库,其中恰巧也有一个Person类,当我们使用这个类库时,两个Person类出现了命名冲突,JDK不知道我们到底要使用哪 个Person类。更有甚者,当我们也开发了一个很庞大的类库,无可避免地,我们的类库中与其他人开发的类库中命名冲突的情况就会越来越多。总不能为了避 免自己的类名与其他人开发的类名相同,而让每个编程人员都绞尽脑汁地将一个本应叫Writer的类强行改名为SarkuyaWriter, MikeWriter, SmithWriter吧?
现实生活中也是如此。假如你名叫张三,又假如与你同一单 位的人中有好几个都叫张三,那你的问题就来了。某天单位领导在会上宣布,张三被任命为办公室 主任,你简直不知道是该哭还是该笑。但如果你的单位中只有你叫张三,你才不会在乎全国叫张三的人有多少个,因为其他张三都分布在全国各地、其他城市,你看 不见他们,摸不着他们,自然不会担心。
Sun从这个“张三问题”受到了很大的启发,为解决命名冲突问题,就采 取了“眼不见心不烦”的策略:将每个类都归属到一个特定的区域中,在同一个区 域中的所有类,都不允许同名;而不同区域的类,由于相互看不到,则允许有同名的类存在。这样,就解决了命名冲突的问题,正如北京的张三与上海的张三毕竟不 是同一人。这个区域在Java中就叫package。由于package在Java中非常重要,如果你没有定义自己的package,JDK将会你的类都 归到一个默认的无名package中。
自定义package的名称可以由各个程序员自由创建。作为避免命名冲 突的手段,package的名称最好足以与其他程序员的区别开来。在互联网 上,每个域名都是唯一的,因此,Sun推荐将你自己的域名倒写后作为package的名称。如果你没有自己的域名,很可能只是因为囊中羞涩而不去申请罢 了,并不见得你假想的域名与其他域名发生冲突。例如,笔者假想的域名是sarkuya.com,目前就是唯一的,因此我的package就可以定名为 com.sarkuya。谢谢Java给了我们一个免费使用我们自己域名的机会,唯一的前提是倒着写。当然,每个package下面还可以带有不同的子 package,如com.sarkuya.util,com.sarkuya.swing,等等。
定义 package的方式是在相应的.java文件的第一行加上“package packagename;”的字样,而且每个.java文件只能有一个package。实际上,Java中的package的实现是与计算机文件系统相结 合的,即你有什么样的package,在硬盘上就有什么样的存放路径。例如,某个类的package名为com.sarkuya.util,那么,这个类 就应该必须存放在com/sarkuya/util的路径下面。至于这个com/sarkuya/util又是哪个文件夹的子路径,第18步会谈到。
package除了有避免命名冲突的问题外,还引申出一个保护当前package下所有类文件的功能,主要通过为类定义几种可视度不同的修饰符来实现:public, protected, private, 另外加上一个并不真实存在的friendly类型。
对于冠以public的类、类属变量及方法,包内及包外的任何类均可以访问;
protected的类、类属变量及方法,包内的任何类,及包外的那些继承了此类的子类才能访问;
private的类、类属变量及方法,包内包外的任何类均不能访问;
如果一个类、类属变量及方法不以这三种修饰符来修饰,它就是friendly类型的,那么包内的任何类都可以访问它,而包外的任何类都不能访问它(包括包 外继承了此类的子类),因此,这种类、类属变量及方法对包内的其他类是友好的,开放的,而对包外的其他类是关闭的。
前 面说过,package主要是为了解决命名冲突的问题,因此,处在不同的包里面的类根本不用担心与其他包的类名发生冲突,因为JDK在默认情况下 只使用本包下面的类,对于其他包,JDK一概视而不见:“眼不见心不烦”。如果要引用其他包的类,就必须通过import来引入其他包中相应的类。只有在 这时,JDK才会进行进一步的审查,即根据其他包中的这些类、类属变量及方法的可视度来审查是否符合使用要求。如果此审查通不过,编译就此卡住,直至你放 弃使用这些类、类属变量及方法,或者将被引入的类、类属变量及方法的修饰符改为符合要求为止。如果此审查通过,JDK最后进行命名是否冲突的审查。如果发 现命名冲突,你可以通过在代码中引用全名的方式来显式地引用相应的类,如使用
java.util.Date = new java.util.Date()
或是
java.sql.Date = new java.sql.Date()。
package的第三大作用是简化classpath的设置。还记得第16步中的障碍吗?这里重新引用其java命令:
java -classpath "C:\Java Test";"C:\Java Test\DF" Hello
我 们必须将所有的.class文件的路径一一告诉JDK,而不管DF其实就是C:\Java Test的子目录。如果要用到100个不同路径的.class文件,我们就得将classpath设置为一个特别长的字符串,很累。package的引 入,很好地解决了这个问题。package的与classpath相结合,通过import指令为中介,将原来必须由classpath完成的类路径搜索 功能,很巧妙地转移到import的身上,从而使classpath的设置简洁明了。我们先看下面的例子。
18. 先在Hello.java中导入DF.Person。代码修改如下:
import DF.Person;
public class Hello {
public static void main(String[] args) {
Person person = new Person("Mike");
System.out.println(person.getName());
}
}
再将DF子文件夹中的Person.java设置一个DF包。代码修改如下:
package DF;
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
好了,神奇的命令行出现了:
javac -classpath "C:\Java Test" "C:\Java Test\Hello.java"
java -classpath "C:\Java Test" Hello
尽管这次我们只设置了C:\Java Test的classpath,但编译及运行居然都通过了!事实上,Java在搜索.class文件时,共有三种方法:
一是全局性的设置,详见第12步,其优点是一次设置,每次使用;
二是在每次的javac及java命令行中自行设置classpath,这也是本文使用最多的一种方式,其优点是不加重系统环境变量的负担;
三是根据import指令,将其内容在后台转换为classpath。JDK将读取全局的环境变量classpath及命令行中的classpath选项 信息,然后将每条classpath与经过转换为路径形式的import的内容相合并,从而形成最终的classpath. 在我们的例子中,JDK读取全局的环境变量classpath及命令行中的classpath选项信息,得到C:\Java Test。接着,将import DF.Person中的内容,即DF.Person转换为DF\Person, 然后将C:\Java Test与其合并,成为C:\Java Test\DF\Person,这就是我们所需要的Person.class的路径。在Hello.java中有多少条import语句,就自动进行多少 次这样的转换。而我们在命令行中只需告诉JDK最顶层的classpath就行了,剩下的则由各个类中的import指令代为操劳了。这种移花接木的作法 为我们在命令行中手工地设置classpath提供了极大的便利。
应注意的一点是,import指令是与package配套使用的,只有在某类通过“package pacakgename;”设定了包名后,才能给其他类通过import指令导入。如果import试图导入一个尚未设置包的类,JVM就会报错。
19. 我们接下来看,当使用JDK类库时,classpath如何设置。
20. 修改Hello.java,内容如下:
import DF.Person;
import java.util.Date;
public class Hello {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date);
Person person = new Person("Mike");
System.out.println(person.getName());
}
}
21. JDK类库存放于C:\Program Files\Java\jdk1.5.0\jre\lib\rt.jar文件中。关于jar文件的介绍,已经超出了本文的范围,感兴趣的读者可以阅读Horstmann写的Core Java一书。
jar 文件可以用WinRar打开。用WinRar打开后,可以看到里面有一些文件夹,双击其中的java文件夹,再双击util的文件夹,可以在 看到Date.class文件就在其中。如果你看过Data.java或其他JDK类库的源码(在C:\Program Files\Java\jdk1.5.0\src.zip文件中),你就会发现,像java、util这些文件夹均是package。这也是 Hello.java第2行中使用了import指令的原因。
我们可以通过WinRar的查找功能来定位某个 类所在的包。在“查找文件”的窗口中的“要查找的文件名”文本框中输入Date.class,就会查 找出在rt.jar文件中存在两个Date.class文件,一个是java\sql\Date.class,另一个是java\util\ Date.class。其中,sql下面的Date.class文件与数据库有关,并非我们这里所需,java\util\Date.class才是我们 所要的。
rt.jar文件就像本文中的C:\Java Test中一样,是JDK类库的唯一入口。我们可以在命令行的classpath选项指定.jar文件。需要注意,.jar文件的classpath设置 有些特珠。在以前的例子中,我们设置classpath时都是设置了路径就行了,而对于.jar文件,我们必须将.jar文件名直接加到 classpath中。
22. 在命令行输入
javac -classpath "C:\Program Files\Java\jdk1.5.0\jre\lib\rt.jar";"C:\Java Test" "C:\Java Test\Hello.java"
java -classpath "C:\Program Files\Java\jdk1.5.0\jre\lib\rt.jar";"C:\Java Test" Hello
这样当然没有问题,因为我们指定了rt.jar文件及C:\Java Test两个classpath。但且慢,在命令行输入:
javac -classpath "C:\Java Test" "C:\Java Test\Hello.java"
java -classpath "C:\Java Test" Hello
不可思议的是,编译及运行成功了!令人惊讶的是在我们将classspath只设置为C:\Java Test的情况下,JDK如何得出java.util.Date的classpath?
原因在于,就像java的Path路径已经悄悄在后台设置好一样,rt.jar的classpath路径也悄悄地在后台设置了。因此,我们不必多此一举手工设置其classpath了。
23. 最后一点需要谈到的是,如果主类恰好也在一个package中(在大型的开发中,其实这才是一种最常见的现象),那么java命令行的类名前面就必须加上包名。
在C:\Java Test下面新建一个文件夹,名为NF。将C:\Java Test下面的Hello.class删除,将Hello.java移到NF文件夹下。打开NF文件夹下的Hello.java,为其设置package属性。
package NF;
import DF.Person;
import java.util.Date;
public class Hello {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date);
Person person = new Person("Mike");
System.out.println(person.getName());
}
}
编译与以前没啥区别,只不过是修正一下改过之后的路径。
javac -classpath "C:\Java Test" "C:\Java Test\NF\Hello.java"
而java命令行却有了变化
java -classpath "C:\Java Test" NF.Hello
上面命令行语句中,NF.Hello告诉JDK,Hello.class在NF的package下面。
至 此,本文有关classpath及package的问题的讨论已经全部结束。由此可见,Java的入门的确非常不易。如果初学Java的程序员一 见到Java的编译竟是如此的复杂,多半就会抽身而退。因此,笔者认为,Sun在J2SE的Tutorial中故意将编译的问题尽量简单化,以吸引更多的 Java初学者。一旦品尝了Java的香醇可口的美味后,就不用担心他们退出了,因为咖啡是非常容易让人上瘾的。发表评论
-
Drools JBPM区别
2011-03-21 18:02 1794参考资料: 1、http://www.simpleframew ... -
推荐web开发教材
2009-11-25 13:00 1414大家能否给推荐一本 用JAVA语言相关的WEB开发方面的教材。 ... -
JAVA 线程编程 ----两个线程程序
2009-11-20 13:08 2116Java的内置线程支持 关 ... -
JAVA 线程编程 ----什么时候多线程可能不好(When Multiple Threads Might Not Be Good)
2009-11-13 12:59 1243设计程序时候创建更多的线程不总是一个好主意。线程不是免费的;它 ... -
JAVA 线程编程 ----为什么要用多线程(Why Use Multiple Thread)
2009-11-11 15:51 3367许多情况下,在一个程 ... -
JAVA 线程编程 ----线程介绍
2009-11-10 14:59 1253概述 浏览网页时,当 ... -
DataSource data source JNDI之间的关系
2009-09-16 17:01 2367data source :所谓data source就 ... -
字符,字节和编码三者的关系
2009-06-03 23:17 0http://www.regexlab.com/zh/enco ... -
jasperreport
2009-05-04 14:17 0http://www.docstoc.com/docs/213 ... -
iReport设计报表以Excel格式导出时注意的问题
2009-04-23 15:08 7212刚开始使用iReport工具,没想到就遇到了问题: 在以Exc ... -
到主机 的 TCP/IP 连接失败,达到最大连接数
2009-04-23 14:35 4429问题描述: _______________ ... -
Acegi框架介绍
2009-03-30 23:57 1500转自:这里 灰色字体 ... -
对语言的一些理解
2008-05-06 17:54 1461语言的本质 包 ... -
HOW TO DESIGN PROGRAMS
2008-04-21 09:55 1701http://www.htdp.org ·前言 向儿童传 ... -
AOP 入门好文章
2008-04-18 18:42 1447http://dev.rdxx.com/Java/2005-0 ... -
Head First JSP &Servlet读后感------chapt01
2008-01-02 22:50 2047Web程序和普通的GUI程序 ... -
JNDI资料整理
2007-12-26 16:38 1308******************************* ... -
JDBC初级应用实例(二) 转
2007-12-25 09:35 1235转自:http://blog.csdn.net/axman/a ... -
JDBC初级应用实例(一) 转
2007-12-25 09:25 1440转自:http://blog.csdn.net/a ... -
JDBC基础(四)转
2007-12-25 09:07 1280转自:http://blog.csdn.net/axman/a ...
相关推荐
- 打开命令提示符,输入`java`命令,查看是否显示出JVM的相关信息。 - 输入`javac`命令,此时会提示命令未找到,这是因为JDK尚未被添加到系统环境变量中。 #### 四、配置 Java 环境变量 接下来,我们将逐步设置...
### Java Classpath 理解 #### 一、在命令行查看 Classpath 在 Java 开发环境中,了解如何查看当前环境下的 classpath 非常重要。这有助于开发者明确类库和其他依赖项的位置,从而更好地管理项目的运行环境。 1. ...
CLASSPATH="$CLASSPATH:""$jar" done windows : SETLOCAL ENABLEDELAYEDEXPANSION set LIB=xx set CLASSPATH=. FOR %%C IN (LIB\*.jar) DO set CLASSPATH=!CLASSPATH!;%%C echo %CLASSPATH%
在Java编程的学习与实践中,环境配置是入门的关键步骤之一,其中最为棘手的问题之一便是如何正确设置`classpath`。`classpath`不仅影响着程序能否正常编译和运行,还关系到开发者的调试效率与代码组织方式。本文将...
Java 环境配置与设置 JAVA_HOME, CLASSPATH, PATH 的目的 Java 环境配置是 Java 开发的基础,我们需要正确地配置 JAVA_HOME, CLASSPATH, PATH 等环境变量,以便正确地编译和运行 Java 程序。在本节中,我们将详细地...
Java命令行classpath(类路径)的设置是Java开发过程中的一项基础操作,对于理解和运行Java程序至关重要。类路径是指定Java虚拟机(JVM)在执行Java程序时查找类文件的位置。正确配置类路径能确保JVM能够找到并加载...
很多时候,程序在某个环境下可以正常运行,但换到另一个环境时却出现了问题,这往往与 `classpath` 设置不当有关。本文将详细介绍 `classpath` 的概念、作用及其设置方法,帮助读者彻底解决相关疑惑。 #### 什么是 ...
Java中的ClassPath和Package是Java开发中至关重要的概念,它们直接影响到Java程序的编译和运行。在这篇文章中,我们将详细探讨这两个主题。 首先,让我们理解什么是ClassPath。ClassPath是Java虚拟机(JVM)查找类...
### Java中的Path与Classpath设置详解 在Java开发过程中,正确配置环境变量是十分重要的一步。其中,`path`和`classpath`是最为关键的两个环境变量,它们直接影响到Java程序能否正常编译和运行。 #### 一、Path 的...
java classPath checker eclipse myeclipse
Java语言的classpath环境变量是Java开发和运行过程中不可或缺的一个配置项。它定义了Java虚拟机(JVM)在执行程序时查找类文件的路径,...合理设置和管理classpath有助于提高开发效率,避免因路径问题引发的诸多困扰。
### Java ClassLoader与ClassPath详解 #### 一、概述 在Java编程中,类加载机制是十分关键的一个环节。类加载器(`ClassLoader`)负责将编译后的`.class`文件加载到Java虚拟机(JVM)中执行,而类路径(`ClassPath...
- "源码"标签可能暗示了有关构建ClassPath的自定义代码,例如使用Java的`ClassLoader`或第三方库如Apache Maven或Gradle来管理依赖和ClassPath。 - "工具"可能指的是可以简化ClassPath管理的工具,比如IDEs...
这个文件可能是一个脚本(如.sh或.bat)或者一个包含相关Java代码的源文件。运行这个文件,你可以看到如何在实际环境中应用上述方法。 总结,理解并正确设置Java的类路径对于有效地运行Java应用程序至关重要。无论...
在配置过程中可能会遇到一些常见的问题,比如找不到类或无法执行程序等,这些问题通常是由于`classpath`或`path`设置不正确导致的。解决这些问题的方法包括检查环境变量是否设置正确、确认文件路径是否正确以及确保...
Java的classpath是每个Java开发者都必须了解的关键概念,它决定了JVM(Java虚拟机)在执行Java程序时如何查找和加载所需的类文件。...通过掌握上述知识,你将能够更自如地应对classpath相关的挑战。
path与classpath是Java开发中两个常见的概念,但它们之间的区别却经常被混淆。下面,我们将详细介绍path和classpath的作用、区别以及它们在Java开发中的应用。 path的作用 path是系统用来指定可执行文件的完整路径...
- 解决跨目录类文件的加载问题,使得Java命令可以找到并加载所需的`.class`文件。 #### 验证环境变量设置 完成以上步骤后,可以通过以下命令验证环境变量是否设置成功: 1. 打开命令提示符(cmd)。 2. 输入`java ...
在Java编程环境中,路径(Path)和类路径(Classpath)是两个至关重要的概念,它们对程序的编译和运行起着决定性的作用。本文将深入解析这两个概念,并结合源码和工具,帮助你理解它们的工作原理。 首先,让我们来...