※ 引述《ericabab (ㄍㄠˊ)》之銘言:
: 喔喔所以是說 CLASSPATH 跟
: 用javac要編譯 xxxx.java檔根本沒關係的意思囉
: 原來是我誤會了...
: 謝謝所有幫我回答的大大
基本上不是沒有關係啦,
不過你的問題應該不是classpath的問題.
────────────────────────────────
一般來說新手要設定好的環境變數就是 Path classpath
(JAVA_HOME有些時候也會用到,最好也設定一下.)
設定Path是可以讓你在任何路徑下,
都能夠使用javac javadoc javaw等指令。
像你說在 JDK路徑以外打javac就無法使用,
如果錯誤訊息是
'javac' 不是內部或外部命令、
可執行的程式或批次檔。 (or bad command .... in dos)
很有可能就是Path沒設定好的關係。
那classpath用途是幹麻的?
因為我們一般來講專案或者資料都不只一個.java檔,
都是幾十個class湊在一起用的,這時候很有可能會再寫A class時
使用到B class的資料。
一般來講我們至少會認為,[1;31m我A class使用B class的物件,[m
[1;31m 要編譯的時候只要把B class放在 A class所在的資料夾下就可以了吧?[m
答案是:錯!
這是在 classpath有設定包含 "." (當前目錄) 的前提下才成立。
這真的是萬年月經題了,我看到沒有上百次也有幾十次
NoClassDefFoundError是這樣來的,
而且都會認為之前都可以操作,突然間就不行。
(通常不是之前是在已經設定好的環境下使用,是用預設 classpath為.的IDE.)
而且老是把被引用的B class搬來搬去也很麻煩吧?
所以我們就會把一些常用的套件放在 JDK的 lib資料夾下,
設定classpath的路徑到lib資料夾,
萬一我們有需要引用到那些class就很方便了.
另外除了環境變數以外,我們一般也可以透過 -cp 參數
手動在執行的時候設定classpath.
--
[m[36m ▄▅▆▇███▇▆▅▄▃[m [30;47m ╰┼╯─╮ ╮ [m
[36m◥███████████◣[m [30;47m ╰┼╯=│=│ [m
[36m◥██████[30;46m───────[36;40m◣[m [34;47m*. ╯ ╯ ╯ 物 語 .*[m
[36m ◥███████[30;46m──────[36;40m◣ ~ ◢◣ ◢◣[m
[36m ◥██████[30;46m───────[36;40m◤ ◥◤[1;30m*[m 空白的世界.翼 [1;30m*[;36;40m◥◤[m
[36m ◥██[37;46m▁▂▃▄▅▆▇███[m▆▅▄▃▂▂[36m~[1;30mtelnet://tony1223.no-ip.info[m
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.134.27.68
※ 編輯: TonyQ 來自: 220.134.27.68 (06/25 00:03)
※ 編輯: TonyQ 來自: 220.134.27.68 (06/25 00:06)