尝试在Debian Jessie上执行.jar时出现Java Exceptions错误

时间:2017-01-04 20:34:36

标签: java linux debian

我的老师在2005年左右创建了一个java程序,他一直使用MacOS。他将.jar发送给我和同学,包括linux(我的Debian 8和他的Ubuntu),我们无法执行该程序,因为它返回了很多例外。

起初我以为可能是因为程序太旧了但我的老师可以在他1岁的更新mac中运行它完全没问题。

Checked和Debian默认配置OpenJDK。没有安装任何东西,我应该安装什么东西来运行它?

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

2 个答案:

答案 0 :(得分:2)

你必须下载JFreeChart.jar libary(http://www.java2s.com/Code/Jar/j/Downloadjfreechartjar.htm),因为你的老师没有在他的jar文件中包含外部类。

将JFreeChart.jar放入/ your_linux_path / jre / lib / ext文件夹中,之后它应该可以正常工作。

P.S。与Jama.jar和jcommon.jar

相同

答案 1 :(得分:1)

确保所有jar文件都包含lib目录中下载的清单文件中的版本。 Lib目录应该放在与jar相同的目录中,依赖jar的名称应该与manifest中的classpath完全相同。

因此,在您的情况下,它可能无法与最新的JFreeChart版本一起使用。您需要查找并下载1.0.6版本