我對運行java程序的過程感到困惑,也許你可以提供幫助。雖然提供了jar文件,但未找到java類
我有幾個.java文件在~/working_dir/org/project/
有主要功能,我想打包它們在一個罐子裏運行它們。我做的:
cd ~/working_dir/org/projectname
javac -classpath $CLASSPATH *.java
cd ~/working_dir/
jar cf myjar.jar org/
然後嘗試做運行在罐子的一類: java -cp myjar.jar org.project.SomeClass
,並得到
Exception in thread "main" java.lang.NoClassDefFoundError: org/project/SomeClass
Could not find the main class: org.project.SomeClass
我該怎麼辦錯了嗎?這些類沒有任何錯誤編譯,並且jar tf myjar.jar
表明它們確實存在。據我所知,我不需要創建一個Manifest文件,因爲我提供了我希望在運行時運行main函數的類 - 或者我在這裏錯了嗎?
非常感謝!
貴org.project.SomeClass.java文件有'包org.project;在頂部'聲明? – nos 2010-06-26 20:21:00
嘗試列出'jar tf myjar.jar'的輸出。對於org.project。SomeClass被發現,org/project/SomeClass.class條目必須存在(具有這個名字) – 2010-06-26 21:00:02
是的,它有一個'package org.project;'語句和'jar tf myjar.jar'顯示它爲org /項目/ SomeClass – 2010-06-27 10:11:30