[英]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.