2011-01-14 7 views
0

こんにちは 私はこのフォルダ内にjarファイルを作成しました: '/usr/local/bin/niidle.jar'はeclipseで作成しました。 そして/usr/local/bin/niidle.jarの中に別の瓶があります。 私のniidle.jarファイルには1つの 'lib'フォルダがあり、その 'lib'には フォルダがあり、別のjarファイル 'hector-0.6.0-17.jar'があります。次のように 私はMANIFEST.MFにこの 'ヘクター・0.6.0-17.jar' ファイルを追加しました:MANIFEST.MF issue

>>java -jar /usr/local/bin/niidle.jar arguments... 


Manifest-Version: 1.0 
Main-Class: com.ensarm.niidle.web.scraper.NiidleScrapeManager 
Class-Path: hector-0.6.0-17.jar 

をしかし、私は、この使用してコマンドを実行すると

Exception in thread "main" java.lang.NoClassDefFoundError: me/prettyprint/hector/api/Serializer 
    at com.ensarm.niidle.web.scraper.NiidleScrapeManager.main(NiidleScrapeManager.java:21) 
Caused by: java.lang.ClassNotFoundException: me.prettyprint.hector.api.Serializer 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252) 
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) 
    ... 1 more 
- : それが動作しない

... それはエラーメッセージが表示されます


問題は何ですか、...私に

+0

jarがあるディレクトリをcd(移動)すると動作しますか? cd/usr/local/bin java -jar niidle.jar引数... – Kennet

答えて

0

http://www.jdotsoft.com/JarClassLoader.phpをこの例外の解決策を教えてください、ページからリンクされている他のjarローダーが問題と解決策

+0

本当ですか?問題は、hector libが見つからないということです。参照ページにはヒントがありません。 –

+0

私はそう思います。多分私はあなたを誤解していますか? JarClassLoaderのようなものが必要な場合は、すべてのjarファイル(およびその他のもの)を含む単一のjarファイルが必要です。 – MJB

1

をまとめ、それは本当に動作するはずです! 両方 jarファイル(niidle.jarhector-0.6.0-17.jar同じフォルダにあることを、ダブルチェックしてくださいthe example on the official Java tutorialに続いて、それが実際に動作する必要があります。

/usr/ 
    local/ 
     bin/ 
     niidle.jar 
     hector-0.6.0-17.jar 

そうでない場合は、もう一度確認し、ヘクタージャーが非常にある場合日食の内部で使用されてきたものと同じ。あなたはコンパイルして実行するためのjarファイルの異なるバージョンを有していてもよく、それは非常に同じ問題につながる可能性がある。たぶん、不足しているクラスはヘクターlibに内側ではありません。


追加 - マニフェストファイルをテキストエディタで作成した場合、の最後の行が空行であることを確認してください! Class-Path属性行が最後の行で、CRまたはLFで終わらない場合は解析されません。また、hector jarはクラスパスに追加されません。

+0

くそー...これは覚えておいてほしいSTUPIDの詳細です(空行のこと)。なぜ彼らはこれを修正しないのですか?それはわずか5分かかります...私はいつも空の行を追加することを覚えています。なぜなら、それを忘れることがどれほど欲しいのか分かりません...しかし、2013年にこの問題を抱えているのは残念です... –

+0

または2017この "空の行為"の背後にある理由は何ですか? – Atcold