请问classpath路径前面的“.”具体有什么意思? 书上和大多数资料注释说的是“当前目录”,意思是否是寻找.class文件的路径之一就是class所在的当前目录呢?把“.;”加在其他目录前面的意思是先从“当前目录”找,然后再找“;”后面的目录?
但是我不加的话在cmd命令下进入当前目录(class文件所在目录)也可以java成功。??这是为什么恩? 请搞懂的朋友帮忙说下这个不加的问题之所在,和为什么一定要加呢? 怎么样才能体现出他的重要性? (*^__^*) 嘻嘻…… 谢谢咯
自己搞的不是很懂,请高人解答下
但是如果你设置了,虚拟机就会用该环境变量,如果你不设置当前目录的话,会报java.lang.NoClassDefFoundError
但是,我就算没加点,只要dos在当前目录下就没问题的。
(C) 版权所有 1985-2001 Microsoft Corp.C:\Documents and Settings\Administrator>echo %classpath%
E:\Java\jdk1.6.0_07\lib;C:\Documents and Settings\Administrator>
1: 不要设置在系统环境变量中
2: java -classpath "" 选项的作用是在指定路径寻找class文件,路径可以是文件夹名称也可以是jar包名称;
3: 如果在class文件所在目录执行java 包含main函数类名,且没有使用jar包或其他位置的class,则无需添加classpath选项;
4: 如果在在class文件所在目录执行java 包含main函数类名 使用-classpath选项,请注意加上[.],这个在dos或unix命令行中表示当前目录;或者加上所在目录完整路径(没有必要)
C:\>java -classpath "E:\MyJava" HelloWorld 有没有[.]无所谓如果在E:\MyJava 下执行HelloWorld 如下
E:\MyJava>java HelloWorld
无需设置如果你的HelloWorld用了jdbc驱动,比如mysql的(mysql.jdbc.jar),那么执行时必须是
E:\MyJava>java -classpath "E:\MyJava\mysql.jdbc.jar;." HelloWorld
必须指定jar文件,同时必须有[.],没有的话就找不到HelloWorld.class自己了(虽然在目录下执行)
如果你在 DOC 下执行 java 命令,如果指定了 classpath 参数,那么就使用这个指定的 classpath 。如果没有指定 classpath 参数。那么 JVM 就会使用环境变量中的 CLASSPATH 了。且如果环境变量中没有 Classpath 或为空,那么 JVM 才会到当前目录找 class 文件。环境变量中的 Classpath 中 . 表式当前路径。
不知道你是如何测试的。需要注意的是,你每次在外部(不是在 DOS 中更改 classpth)了环境变量后,需要重新打开一个 DOC 。那些在修改前打开的 DOC 中所记录的 classpath 仍旧是原来的值。
大家在cmd里面用的classpath就是在java命令之后?跟-classpath然后写出要执行的class文件,是吗?目的在于告诉路径? 对吗?
弱弱一下,大家说的这个-cp 命令,是classpath的缩写还是另外的一个命令?
那么如果把所有自己写的类都放在一个新文件夹下,然后给环境变量classpath中加了这个路径就是说,调用完别人的后根据环境变量的指引找到这个类,是不是就不用写"."了? 嘿嘿 这样写路径的话是不是很罗嗦呢?那个"."是别人想出来的简单法子?
这个“.”和".."在dos和unix下面都是表示目录自身和上级目录
cd .
cd ..如果把所有自己写的类都放在一个新文件夹下,然后给环境变量classpath中加了这个路径就是说,调用完别人的后根据环境变量的指引找到这个类,是不是就不用写"."了? 如果在环境变量classpath中加了这个路径,就不用写"."了
这个是java.exe所需要的重要参数
恩,我现在不加也能跑,但就是简单的HelloWorld,还没测试调用其他类呢,那我就加上吧。
对了,这个加前面和加后面有区别吗? 就是说(.;路径)和 ( 路径.; )还有(路径;.)这仨有区别么?
1: 不要设置在系统环境变量中
2: java -classpath "" 选项的作用是在指定路径寻找class文件,路径可以是文件夹名称也可以是jar包名称;
环境变量无法覆盖你所需要的全部jar和文件夹,如果不用IDE,手工启动程序,且所需的包和class文件夹比较多的话,写一个bat文件即可写入环境变量则在测试的时候总是会出些小问题。 要理解classpath的根本作用,就不会觉得太多神奇或者迷惑了 -cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
A ; separated list of directories, JAR archives,
and ZIP archives to search for class files.