簡體   English   中英

嘗試在Debian Jessie上執行.jar時出現Java異常錯誤

[英]Java Exceptions error when trying to execute .jar on Debian Jessie

我的一位老師在2005年左右用Java創建了一個程序,他一直使用MacOS。 他將.jar發送給我和一個同學(都是Linux(我是Debian 8,他是Ubuntu)),我們無法執行該程序,因為它返回了很多異常。

起初我以為可能是因為該程序太舊了,但是我的老師可以在他1歲的更新版Mac中很好地運行它。

選中,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文件是

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

您必須下載JFreeChart.jar庫( http://www.java2s.com/Code/Jar/j/Downloadjfreechartjar.htm ),因為您的老師的jar文件中沒有包含外部類。

將JFreeChart.jar放入/ your_linux_path / jre / lib / ext文件夾中,然后它應該可以工作了。

PS與Jama.jar和jcommon.jar相同

確保所有lib版本的清單文件都下載到lib目錄中。 Lib目錄應與jar放在同一目錄中,依賴項jar的名稱應與清單中來自classpath的名稱完全相同。

因此,根據您的情況,它可能不適用於最新的JFreeChart版本。 您需要找到並下載1.0.6版

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM