问一个最基本的问题,再线等待!!! javac命令中的-classpath指的是为编译你的*.java文件所需要的类路径 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 -classpath 指的是类文件的位置就是.java的位置-sourcepath 是源文件的位置 -sourcepath没用过,一般编译大量的文件时我会用ant,或者ide工具. to:RAYLI(乔乔) -classpath 指的是类文件的位置就是.java的位置你是不是写错了? 比如要编译当前目录下的test.java,而该类中用到了在某folder下的类则java -classpath folder test.java这里的folder是文件夹路径(相对/绝对都可以) 大家可能没有看懂我的问题.如果照大家所言:classpath 的路径指的是*.java文件所在的路径,那么.我在CLASSPATH环境变量中设置的文件夹(我在里面放的是*.class),就不能用java *直接运行了. 可以直接运行啊,只有是CLASSPATH设置的路径! javac命令中的-classpath指的是为编译你的*.java文件所需要的类路径注意:这类是指已经编译好了的.class文件,而不是.java文件!!!-sourcepath这个参数用的不多(基本就没用过!!) 但是如果有一个testprogram.java用到一个包比如是Geometry包.那么我直接编译testprogram.java而不用编译包也行呀.不用预先编译包呀.何谈已经编译好的.class文件呢?还有,有没有办法给*.java设置一个路径,让javac 在任何地方访问到他.我现在只能做到让java命令在任何地方访问到*.class文件(即在 我大概清楚了.我已经实现了java命令在任何地方,直接访问某一个文件夹下的 *.class文件.(即在CLASSPATH中把放置*.class文件的文件夹包括进去)但是如何让javac 命令在任何地方,直接访问某一个文件夹下的 *.java文件. 但是如何让javac 命令在任何地方,直接访问某一个文件夹下的 *.java文件. 不是这个意,我说的不对,就是让javac访问"不是当前目录中的任何*.java"文件.呵呵. classpath是放*.java文件的地方,用javac编译时会到你指定的classpath下去找要编译的java文件!同时你编译好的*.class文件也会默认放到这个目录! 用java命令运行时,也是要找classpath中指定目录下的.class文件,你把.class移走他会报错的!其实设置classpath就是为了让你无论在什么地方只要敲入java/javac就能运行,不必每次都输入文件所在的路径!你想做到访问任何目录中的任何*.java,我还不会,如果可能你要是知道解决的通知我一声*^_^* 楼上所说不对吧,我觉得-classpath指的是为编译你的*.java文件所需要的类路径注意:这类是指已经编译好了的.class文件,而不是.java文件 现在想了想,刚才的回答也不妥.在用javac编译一个包时,-classpath指的是*.java所在的路径.但在用java时好像指的是-classpath指的是.class文件所在的路径.所以现在越来越糊涂了.zpwly第二次好象和我相同了. 結論1如果您的類別屬於某個package,那麼您就應該將它至於該package 所對應的相對路徑之下。舉例來說,如果您有個類別叫做C,屬於xyz.pqr.abc 套件,那麼您就必須建立一個三層的目錄xyz\pqr\abr,然後將C.java 或是C.class 放置到這個目錄下,才能讓javac.exe 或是java.exe 順利執行。 結論2當您使用javac.exe 編譯的時候,類別原始碼的位置一定要根據結論一所說來放置,如果該原始碼出現在不該出現的地方(如上述測試中B.java 同時存在d:\my 與d:\my\edu\nctu 之下),除了很容易造成混淆不清,而且有時候抓不出編譯為何發生錯誤,因為javac.exe 輸出的錯誤訊息根本無法改善問題。結論3編譯時,如果程式裡用到其他的類別,不需要該類別的原始碼也一樣能夠通過編譯。結論4當您使用javac.exe 編譯程式卻又沒有該類別的原始碼時,類別檔放置的位置應該根據結論一所說的方式放置。如果類別檔出現在不該出現的地方(如上述測試中B.class 同時存在d:\my 與d:\my\edu\nctu 之下),有很大的可能性會造成莫名其妙的編譯錯誤。 結論5結論一中我們提到,如果您有個類別叫做C,屬於xyz.pqr.abc套件,那麼您就必須建立一個三層的目錄xyz\pqr\abr,然後將C.java 或是C.class 放置到這個目錄下,才能讓javac.exe 或是java.exe 順利執行。但是這個新建的目錄應該從哪裡開始呢?答案是:“可以建立在任何地方”。但是您必須告訴java.exe 與javac.exe 到哪裡去找才行, 告訴的方式就是利用它們的-classpath 選項。為什麼javac.exe 用的是-classpathd:\,而java.exe 如果不用-classpath d:\;.而只用-classpath d:\卻無法執行呢?其實這不是什麼大問題,如果做更多的測試,您將可以發現對javac.exe 來說,不管-classpath 選項如何指定,“目前所在的目錄( 即”.” ) ” 一定會被包含在其中, 但是對java.exe 來說就不是如此了,java.exe 會忠實地使用您所指定的路徑,不會擅加路徑到-classpath 選項之中。如果您設定了環境變數CLASSPATH,而在使用java.exe 或javac.exe 的時候也使用了-classpath 選項,那麼環境變數將視為無效,而改為以了-classpath選項所指定的路徑為準。環境變數CLASSPATH 與-classpath 選項分別所指定的路徑並不會有加成效果。 結論6ZIP 檔的效力和單純的目錄是一樣的,如果您在-classpath 選項指定了目錄,就是告訴java.exe 和javac.exe 到該目錄尋找類別檔;如果您在-classpath 選項指定了ZIP 檔的檔名,那麼就是請java.exe 和javac.exe 到該壓所檔中尋找類別檔。即使是在壓縮檔中,但是該有的相對路徑還是要有,否則java.exe 和javac.exe 仍然無法找到他們所需要的類別檔。前面我們曾說過,對javac.exe 來說,不管-classpath 選項如何指定,“目前所在的目錄(即. )”一定會被包含在其中。從上述測試可以得知,這個預設的路徑一定是附加在我們額外指定的路徑或JAR 檔之後. 高分求教用SAX解析1G-10G左右的XML的问题! 有关JDialog重复出现的问题 这是什么问题呀? 请问各路高手:java的基础(j2me)包括那些方面,到什么程度才算学好基础了,可以转入j2ee的学习. 求救:用JAVA怎样获取MAC地址 oracle中如何定义整型字段? 大家帮我看一下这个语句好吗? 哪位AI高人能介绍一下Aglets的用法?或相关资料? 庆祝wjmmml-----有了自己的专栏呀。大家看看wjmmml长的帅不帅呀? 编译一个很简单的程序出错,大家帮忙看看,多谢了。 请教关于java的编辑工具UltraEdit的问题 文件读写问题,50分相赠..在线等
-sourcepath 是源文件的位置
-classpath 指的是类文件的位置就是.java的位置
你是不是写错了?
java -classpath folder test.java
这里的folder是文件夹路径(相对/绝对都可以)
如果照大家所言:classpath 的路径指的是*.java文件所在的路径,那么.我在CLASSPATH环境变量中设置的文件夹(我在里面放的是*.class),就不能用java *直接运行了.
注意:
这类是指已经编译好了的.class文件,而不是.java文件!!!
-sourcepath这个参数用的不多(基本就没用过!!)
那么我直接编译testprogram.java而不用编译包也行呀.不用预先编译包呀.
何谈已经编译好的.class文件呢?
还有,有没有办法给*.java设置一个路径,让javac 在任何地方访问到他.
我现在只能做到让java命令在任何地方访问到*.class文件(即在
我已经实现了java命令在任何地方,直接访问某一个文件夹下的 *.class文件.
(即在CLASSPATH中把放置*.class文件的文件夹包括进去)
但是如何让javac 命令在任何地方,直接访问某一个文件夹下的 *.java文件.
呵呵.
其实设置classpath就是为了让你无论在什么地方只要敲入java/javac就能运行,不必每次都输入文件所在的路径!
你想做到访问任何目录中的任何*.java,我还不会,如果可能你要是知道解决的通知我一声*^_^*
注意:
这类是指已经编译好了的.class文件,而不是.java文件
在用javac编译一个包时,-classpath指的是*.java所在的路径.
但在用java时好像指的是-classpath指的是.class文件所在的路径.
所以现在越来越糊涂了.
zpwly第二次好象和我相同了.
如果您的類別屬於某個package,那麼您就應該將它至於該
package 所對應的相對路徑之下。舉例來說,如果您有個類別叫
做C,屬於xyz.pqr.abc 套件,那麼您就必須建立一個三層的目
錄xyz\pqr\abr,然後將C.java 或是C.class 放置到這個目錄下,
才能讓javac.exe 或是java.exe 順利執行。 結論2
當您使用javac.exe 編譯的時候,類別原始碼的位置一定要根據
結論一所說來放置,如果該原始碼出現在不該出現的地方(如
上述測試中B.java 同時存在d:\my 與d:\my\edu\nctu 之下),除
了很容易造成混淆不清,而且有時候抓不出編譯為何發生錯
誤,因為javac.exe 輸出的錯誤訊息根本無法改善問題。結論3
編譯時,如果程式裡用到其他的類別,不需要該類別的原始碼
也一樣能夠通過編譯。結論4
當您使用javac.exe 編譯程式卻又沒有該類別的原始碼時,類別
檔放置的位置應該根據結論一所說的方式放置。如果類別檔出
現在不該出現的地方(如上述測試中B.class 同時存在d:\my 與
d:\my\edu\nctu 之下),有很大的可能性會造成莫名其妙的編譯
錯誤。
結論5
結論一中我們提到,如果您有個類別叫做C,屬於xyz.pqr.abc
套件,那麼您就必須建立一個三層的目錄xyz\pqr\abr,然後將
C.java 或是C.class 放置到這個目錄下,才能讓javac.exe 或是
java.exe 順利執行。但是這個新建的目錄應該從哪裡開始呢?答
案是:“可以建立在任何地方”。但是您必須告訴java.exe 與
javac.exe 到哪裡去找才行, 告訴的方式就是利用它們的-
classpath 選項。為什麼javac.exe 用的是-classpath
d:\,而java.exe 如果不用-classpath d:\;.而只用-classpath d:\卻無
法執行呢?其實這不是什麼大問題,如果做更多的測試,您將
可以發現對javac.exe 來說,不管-classpath 選項如何指定,“目
前所在的目錄( 即”.” ) ” 一定會被包含在其中, 但是對
java.exe 來說就不是如此了,java.exe 會忠實地使用您所指定的
路徑,不會擅加路徑到-classpath 選項之中。如果您設定了環境變數
CLASSPATH,而在使用java.exe 或javac.exe 的時候也使用了-
classpath 選項,那麼環境變數將視為無效,而改為以了-classpath
選項所指定的路徑為準。
環境變數CLASSPATH 與-classpath 選項分別所指定的路徑並不
會有加成效果。 結論6
ZIP 檔的效力和單純的目錄是一樣的,如果您在-classpath 選項
指定了目錄,就是告訴java.exe 和javac.exe 到該目錄尋找類別
檔;如果您在-classpath 選項指定了ZIP 檔的檔名,那麼就是請
java.exe 和javac.exe 到該壓所檔中尋找類別檔。
即使是在壓縮檔中,但是該有的相對路徑還是要有,否則
java.exe 和javac.exe 仍然無法找到他們所需要的類別檔。前面我們曾說過,對javac.exe 來說,不管-classpath 選項如
何指定,“目前所在的目錄(即. )”一定會被包含在其中。從上
述測試可以得知,這個預設的路徑一定是附加在我們額外指定的路
徑或JAR 檔之後.