仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 899|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA编程:classpath详解(谨献给那些找不到北的朋...

[复制链接]
蒙在股里 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:55:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
通过视频学习比传统的大课堂学习更适合成人化的学习规律。有人说大课堂气氛好,学习氛围浓,热闹,可以认识很多人。详解设置类路径
布局
可经由过程对JDK工具利用-classpath选项(首选办法)或设置CLASSPATH情况变量来设置类路径。
C:>jdkTool-classpathpath1;path2...
C:>setCLASSPATH=path1;path2...
每一个path以文件名或目次开头,该文件名或目次取决于将类路径设置成甚么:
关于包括.class文件的.zip或.jar文件,路径以.zip或.jar文件名开头。
关于未定名包中的.class文件,路径以包括.class文件的目次开头。
关于已定名包中的.class文件,路径以包括“root”包(完全包名中的第一个包)的目次开头。
用分号来分开多个项目。利用set命令时,必要省略等号双方的空格(=)。个中jdkTool能够为java、javac、javadoc,等等。有关具体列表,拜见JDK开辟工具。
申明
类路径告知Java使用程序往那里查找第三方和自界说类--即不是Java扩大或Java平台一部分的类。在JDK1.2中,JVM和其他JDK工具经由过程顺次搜刮平台库、库扩大和类路径来查找类(有关搜刮战略的具体信息,拜见怎样查找类)。
多半使用程序的类库城市充实使用扩大机制。因而,只要想要加载某个类库(a)未位于以后目次或其分枝包中且(b)未位于扩大机制所指定的地位时,才需设置类路径。

假如用户是从旧版本JDK晋级而来,则启动设置大概包含不再必要的CLASSPATH设置。这时候应当删除任何非使用程序特定的设置。有些利用Java假造机的第三方使用程序大概修正CLASSPATH情况变量以包含它们利用的类库。这类设置能够保存。

可经由过程在挪用JVM或其他JDK工具时利用Java工具的-classpath选项改动类路径(比方:java-classpath...)。这是改动类路径的首选办法。还可经由过程利用CLASSPATH情况变量改动类路径。

注重:JDK1.2缺省类路径是以后目次。设置CLASSPATH变量或利用-classpath命令行开关将掩盖缺省值,因此假如想要在搜刮路径中包含以后目次,则必需在新设置中包含“.”。
类能够存储在目次(文件夹)或回档文件(比方classes.zip或classes.jar)中。有关回档文件的具体信息和类路径的事情道理,拜见本文档最初的了解类路径和包名。

主要申明:JDK旧版本在缺省类路径中还包含<jdk-dir>/classes项。该目次仅供JDK利用,且不必于使用程序类。使用程序类应当安排在JDK内部的目次。如许,安装新JDK时不用必要从头安装使用程序库。为了与旧版本的兼容性,利用<jdk-dir>/classes目次作为类库的使用程序在以后版本中仍能运转,但不克不及包管在今后的版本中它们还能运转。
利用Java工具的-classpath选项
Java工具java、jdb、javac和javah具有-classpath选项,在工具运转时它将代替缺省类路径或由CLASSPATH情况变量所指定的类路径。这是改动类路径设置的保举办法,由于如许每一个使用程序可具有它所需的类路径而又不会搅扰其他使用程序。
运转时工具java和jdb还具有-cp选项。该选项是-classpath的缩写。

关于十分特别的情形,java和javac都具有开关,使得可改动它们利用的路径以查找它们本人的类库。可是,尽年夜多半用户历来都不会用到这些开关。

利用CLASSPATH情况变量
如前一节中所述,一样平常用户将想要利用-classpath命令行选项。本节将先容怎样设置CLASSPATH情况变量或扫除之前安装遗留下的设置。
设置CLASSPATH
在DOS提醒符下,可用set命令修正CLASSPATH情况变量。其格局为:
setCLASSPATH=path1;path2...
路径应当以指定驱动器的字母开首,比方C:...。如许,在偶尔切换到分歧驱动器时仍可找到类(比方,假如路径项以...开首,而且以后位于驱动器D:上,则所需的类将在D:而不是C:驱动器上找)。
扫除CLASSPATH
假如CLASSPATH情况变量被设置成不准确的值,或启动文件或剧本程序设置了不准确路径,则可经由过程利用以下命令扫除CLASSPATH:
C:>setCLASSPATH=
该命令仅扫除以后会话的CLASSPATH。要确保在今后的会话中具有准确的CLASSPATH设置,则应当删除或修正启动设置。
变动启动设置
假如在体系启动时设置CLASSPATH变量,则查找它的地位取决于所利用的操纵体系:
操纵体系办法
Windows98和
Windows95反省autoexec.bat文件中的set命令。
WindowsNT启动“把持面板”,选择“体系”,单击“情况”选项卡,并在“用户变量”部分中,反省CLASSPATH变量。

了解类路径和包名
Java类被构造成包,而这些包被映照到文件体系中的目次。可是与文件体系分歧的是,不管什么时候指定包名,都应指定完全包名--永久不要仅指定它的一部分。比方,java.awt.Button的包名老是应指定为java.awt。
比方,假定想要Java运转情况在包utility.myapp中查找名为Cool.class的类。假如该目次的路径为C:javaMyClassesutilitymyapp,则应当将类路径设置成包括C:javaMyClasses。

要运转该使用程序,可以使用下述JVM命令:

C:>java-classpathC:javaMyClassesutility.myapp.Cool
当该使用程序运转时,JVM利用类路径设置查找在utility.myapp包中界说的任何其他类。
注重:应在命令中指定完全包名。比方,设置类路径包括C:javaMyClassesutility并利用命令javamyapp.Cool是不成能的,由于这找不到该类。

(您大概想晓得用甚么界说类的包名。谜底是:包名是类的一部分,而且不克不及修正,除非从头编译该类。)

注重:包标准机制一个风趣的了局是,属于不异包的多个文件实践上可存在于分歧的目次中。关于每一个类,包名都是不异的,可是每一个文件的路径可从类路径中的分歧目次入手下手。
文件夹和回档文件
当类存储在目次(文件夹)中时,比方c:javaMyClassesutilitymyapp,则类路径项指向包括包名第一个元素的目次(在这里为C:javaMyClasses,由于包名是utility.myapp)。
可是当类存储在回档文件(.zip或.jar文件)中时,类路径项则是该.zip或.jar文件的路径。比方,要利用位于.jar文件中的类库,则命令应当相似下述情势:

java-classpathC:javaMyClassesmyclasses.jarutility.myapp.Cool
多重指定
要在目次C:javaMyClasses和C:javaOtherClasses中查找类文件,则可将类路径设置为:
java-classpathC:javaMyClasses;C:javaOtherClasses...
注重两个路径之间用分号分开。
指定序次
指定多个类路径项的序次是相称主要的。Java注释器将依照目次在类路径变量中的序次在各个目次中查找类。在上例中,Java注释器起首在目次C:javaMyClasses中查找必要的类。只要当它在该目次中没有找到该类时,注释器才干到C:javaOtherClasses目次中查找。
还有就是总有人问我到底该学习什么语言,什么语言有前途,那么我的回答是不论是C,C++,java,.net,ruby,asp或是其他语言都可以学,编程的关键不是语言,而是思想。
再现理想 该用户已被删除
沙发
发表于 2015-1-21 16:59:31 | 只看该作者
是一种突破用户端机器环境和CPU
谁可相欹 该用户已被删除
板凳
发表于 2015-1-25 08:48:59 | 只看该作者
是一种突破用户端机器环境和CPU
小女巫 该用户已被删除
地板
发表于 2015-1-28 05:18:30 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
深爱那片海 该用户已被删除
5#
发表于 2015-2-5 07:52:14 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
若天明 该用户已被删除
6#
发表于 2015-2-6 07:30:11 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
柔情似水 该用户已被删除
7#
发表于 2015-2-15 14:53:53 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
因胸联盟 该用户已被删除
8#
发表于 2015-2-26 18:29:02 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
只想知道 该用户已被删除
9#
发表于 2015-3-6 18:44:34 | 只看该作者
是一种为 Internet发展的计算机语言
金色的骷髅 该用户已被删除
10#
发表于 2015-3-6 20:56:59 | 只看该作者
是一种为 Internet发展的计算机语言
分手快乐 该用户已被删除
11#
发表于 2015-3-6 21:41:23 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
飘灵儿 该用户已被删除
12#
发表于 2015-3-13 21:41:13 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
冷月葬花魂 该用户已被删除
13#
发表于 2015-3-17 09:09:06 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
透明 该用户已被删除
14#
发表于 2015-3-24 04:34:08 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
飘飘悠悠 该用户已被删除
15#
发表于 2015-4-1 23:10:55 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
活着的死人 该用户已被删除
16#
发表于 2015-4-2 14:01:23 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
再见西城 该用户已被删除
17#
发表于 2015-4-4 03:41:45 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
第二个灵魂 该用户已被删除
18#
发表于 2015-4-11 10:17:32 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
精灵巫婆 该用户已被删除
19#
发表于 2015-4-11 20:50:16 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-26 21:16

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表