ここから本文です

Jar実行時にクラスが見つからない!

eit********さん

2014/3/1709:42:11

Jar実行時にクラスが見つからない!

Jarの実行時についての質問です。

Windows上のEclipseで作成したJavaプロジェクトを、Jarファイルでエクスポートし、Linuxで実行しようとしています。

しかし、Jarファイルを実行しようとすると外部ライブラリが読み込めていなためか以下のようなエラーが出力されます。

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/syndication/io/XmlReader
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2531)
at java.lang.Class.getMethod0(Class.java:2774)
at java.lang.Class.getMethod(Class.java:1663)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
Caused by: java.lang.ClassNotFoundException: com.sun.syndication.io.XmlReader
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 6 more

実行コマンドは java -jar rss_collector.jar

ちなみにjarファイルを解凍するとxmlreaderクラスが含まれているrome1.0という外部クラスは含まれています。

念の為クラスパスをjre/libに通し、そこにrome1.0というクラスファイルも配置してみましたが結果は同じでした。

原因と解決策がわかる方がいらっしゃればご教授頂ければ幸いです。

是非宜しくお願い致します。

【環境情報】

Eclipseでの作成環境
Windows8 64bix
java 1.7.0_51

実行環境
Amazon Linux(RHEL 6.4)64bit
java 1.7.0_51

閲覧数:
6,482
回答数:
1
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

xia********さん

2014/3/1709:57:38

エクスポート時にライブラリの扱いの選択手があると思います。
jar の中にライブラリを入れる選択だとうまく動かないライブラリがあります。
ライブラリをクラスパスから読み込む場合はそこでフォルダーにコピーを選択。
そして作成した jar とライブラリの入ったフォルダ(同じ場所に出来ます)を
コピーすれば動くかもしれません。

質問した人からのコメント

2014/3/17 10:48:56

降参 丁寧なご説明をありがとうございます。

説明頂いたやり方で行ったところ動かすことができました。

誠にありがとうございます!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる