[問題] Eclipse換用command line編譯 執行

看板java作者 (毛毛)時間9年前 (2014/12/08 16:35), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/1
因為一些因素從eclipse轉為使用command line來編譯執行程式 遇到了一些設定上的問題 想請教JAVA版的各位 OS為Linux Suse 安裝的jdk 為 1.7.0_71 以下是我 /etc/profile中的設定 export JAVA_HOME="/usr/java/jdk1.7.0_71" export PATH=/usr/java/jdk1.7.0_71/bin:$PATH export CLASSPATH=.:$CLASSPATH:/usr/java/jdk1.7.0_71 程式碼的路徑為/user/test/HelloWorld.java 並將所需的jar放置在test資料夾中 import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import net.sf.ehcache.Element; public class HelloWorld { public static void main(final String[] args) { final CacheManager cacheManager = new CacheManager(); final Cache dataStore = cacheManager.getCache("hello-world"); final String key = "greeting"; final Element putGreeting = new Element(key, "Hello, World!"); dataStore.put(putGreeting); final Element getGreeting = dataStore.get(key); System.out.println(getGreeting.getObjectValue()); } } 程式碼的部分有在eclipse執行過確認沒有問題 原本在eclipse執行時可加入external jar 使用javac 編譯時用 javac -cp ehcache-ee-2.9.0.jar HelloWorld.java 可編譯成功 用 java -cp . HelloWorld 出現以下錯誤 Exception in thread "main" java.lang.NoClassDefFoundError: net/sf/ehcache/CacheManager at HelloWorld.main(HelloWorld.java:10) 參考過精華區的path jar那篇M文 有嘗試把所需的jar檔放置 jdk1.7.0_71/jre/lib/ext中 可直接使用javac HelloWorld.java編譯成功 使用java -cp . HelloWorld 出現以下錯誤 Exception in thread "main" java.lang.NullPointerException at HelloWorld.main(HelloWorld.java:22) 想請教JAVA版的各位 在CLASSPATH的部分是否設定有誤 另假如我想要在任一資料夾中編寫程式 ex file.java 並直接在該資料夾使用 javac file.java 編譯 並用 java file直接執行 這樣file.java中所使用到的第三方jar檔 是要放置在jdk1.7.0_71/jre/lib/ext中 或者是放置在特定資料夾 在將該資料夾的路徑設定在CLASSPATH中 懇請各位指點 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.164.122.25 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1418027718.A.6DA.html

12/08 19:32, , 1F
用到的jar檔要個別設定...
12/08 19:32, 1F

12/09 01:08, , 2F
你的jar 沒加到class path 下
12/09 01:08, 2F

12/09 04:31, , 3F
用ant/maven會簡單一點 不然你的java會長的一大串
12/09 04:31, 3F

12/09 04:31, , 4F
或者可以參考一下gradle
12/09 04:31, 4F
文章代碼(AID): #1KXMB6RQ (java)