... 或 Intelj 的IDE 都能正常的編譯與執行,但如果你想使用 javac 手動編譯JAVA 檔案時出現 javac' 不是內部或外部命令、可執行的程式或批次檔。 ... <看更多>
「javac不是內部或外部命令可執行的程式或批次檔」的推薦目錄:
javac不是內部或外部命令可執行的程式或批次檔 在 JavaSE6Tutorial/CH02.md at master - GitHub 的推薦與評價
程式 碼中某些部份打錯了,最常發生的原因可能是沒有注意到字母大小寫。 'javac' 不是內部或外部命令、可執行的程式或批次檔。 Path 設定有誤或沒有在Path 中加入JDK ... ... <看更多>
javac不是內部或外部命令可執行的程式或批次檔 在 Re: [問題] CLASSPATH設了沒用... - 看板java - 批踢踢實業坊 的推薦與評價
※ 引述《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的資料。
一般來講我們至少會認為,我A class使用B class的物件,
要編譯的時候只要把B class放在 A class所在的資料夾下就可以了吧?
答案是:錯!
這是在 classpath有設定包含 "." (當前目錄) 的前提下才成立。
這真的是萬年月經題了,我看到沒有上百次也有幾十次
NoClassDefFoundError是這樣來的,
而且都會認為之前都可以操作,突然間就不行。
(通常不是之前是在已經設定好的環境下使用,是用預設 classpath為.的IDE.)
而且老是把被引用的B class搬來搬去也很麻煩吧?
所以我們就會把一些常用的套件放在 JDK的 lib資料夾下,
設定classpath的路徑到lib資料夾,
萬一我們有需要引用到那些class就很方便了.
另外除了環境變數以外,我們一般也可以透過 -cp 參數
手動在執行的時候設定classpath.
--
▄▅▆▇███▇▆▅▄▃ ╰┼╯─╮ ╮
◥███████████◣ ╰┼╯=│=│
◥██████───────◣ *. ╯ ╯ ╯ の 物 語 .*
◥███████──────◣ ~ ◢◣ ◢◣
◥██████───────◤ ◥◤* 空白的世界.翼 *◥◤
◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂~telnet://tony1223.no-ip.info
--
※ 發信站: 批踢踢實業坊(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)
... <看更多>