2017-01-04 5 views
0

2005年頃にJavaのプログラムを作成した先生がMacOSを使用していました。彼は.jarを私とクラスメート、linux(私Debian 8と彼のUbuntu)の両方に送ったので、多くの例外を返すのでプログラムを実行できません。Debian Jessie上で.jarを実行しようとするとJava例外エラーが発生する

最初は、プログラムが古すぎたのかもしれないと思っていましたが、私の先生は1歳の更新されたMacで完璧に動作させることができたと思いました。

CheckedとDebianにはデフォルトでOpenJDKが付属しています。 Haventは何かをインストールしました。実行するためにインストールする必要がありますか?

PS:ダブルクリックすると.jarが表示されます。

例外は以下のとおりです。

Exception in thread "main" java.lang.NoClassDefFoundError: org/jfree/chart/ChartPanel 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:803) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    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) 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2625) 
    at java.lang.Class.getMethod0(Class.java:2866) 
    at java.lang.Class.getMethod(Class.java:1676) 
    at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494) 
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486) 
Caused by: java.lang.ClassNotFoundException: org.jfree.chart.ChartPanel 
    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) 
    ... 18 more 

私はあなたがすることができますようになどの基本的なことを試みることができますしてください場合は、Javaについては何も知りません。私はDebianを初めて使い慣れているので、デフォルトのインストールに欠けているパッケージがあるかどうかはわかりません。

編集:

MANIFEST.MFファイルには、あなたがあなたの先生が彼のjarファイルに外部のクラスが含まれていなかったので、JFreeChart.jarのlibary(http://www.java2s.com/Code/Jar/j/Downloadjfreechartjar.htm)をダウンロードする必要が

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.8.2 
Created-By: 1.6.0_24-b07-334-10M3326 (Apple Inc.) 
Class-Path: lib/Jama-1.0.2-ed.jar lib/jfreechart-1.0.6.jar lib/ant.jar 
lib/jcommon-1.0.10.jar 
X-COMMENT: Main-Class will be added automatically by build 
Main-Class: com.cmcweb.electronicstructure.CompleteDOSPlotter 
+1

どのJavaのバージョンをお持ちですか?このエラーは、クラスパスにjavaライブラリがないことを意味します。これは、JFreeChartを含むJARファイルがないことを意味します。 http://www.jfree.org/jfreechart/download.html – kulatamicuda

+0

このjarのマニフェストファイルを投稿してください。 winZipやzip拡張子をサポートする別のプログラムで開き、meta-inf/manifest.mfの下にあるファイルを探します。 –

+0

私のバージョンは 'javaバージョン1.7.0_111" OpenJDKランタイム環境(IcedTea 2.6.7)(7u111-2.6.7-2〜deb8u1) OpenJDK 64ビットサーバVM(ビルド24.111-b01、混合モード) '。 JFreeChartをインストールしてもまだ動作していないので、antをインストールしてからopenjdk-7-jdkをインストールしてインストールする必要がありました。 –

答えて

1

libディレクトリにダウンロードされたマニフェストファイルのバージョンのすべてのjarファイルがあることを確認してください。 Libディレクトリは、あなたのjarと同じディレクトリに置く必要があります。依存関係jarの名前は、manifestのclasspathの名前とまったく同じにする必要があります。

あなたのケースでは、最新のJFreeChartバージョンでは動作しないことがあります。あなたはバージョン1.0.6を見つけてダウンロードする必要があります

+0

これらのjarを '/ usr/lib'に置くべきでしょうか、それはあなたが言っていることですか?メイン・ジャーが/ usrディレクトリーにあり、yesの場合は –

+0

です。一般的に/ your_jar_location/libにあります。 –

+0

ありがとうございました。それは実行したいすべてのプログラムのためのそれですか?つまり、同じディレクトリにjarファイルが必要な場合、または別の場所に必要なディレクトリを追加して、同じフォルダに置く必要はありませんか? –

2

です。

JFreeChart.jarを/ your_linux_path/jre/lib/extフォルダに置き、その後は動作するはずです。

P.S. Jama.jarとjcommon.jarで同じことをしてください。

+0

すでにインストール済みです。あなたが手にしている道は何ですか? '/ usr/bin'にあるjavaと言ったものを見つけましたが、'/jre/'と書いたものを見つけられませんでした。私のlibディレクトリは '/ usr/lib'です。そこには' ext'フォルダはありません。 –

+0

あなたはextフォルダを持っていない可能性があります。それを作成する必要があります。 – Andrew

+0

JREのパスは/ usr/bin/java/jreですか? – Andrew

関連する問題