java - jar 无法在 Linux 上运行 : ClassCastException/javax/cannot be cast to

标签 java executable-jar

我正在尝试在 64 位 Fedora 上运行 .jar,它在 Windows 上完美运行。

首先我尝试:

java -version  
java version "1.6.0_17"  
java -jar myprog_TABS_Dec30.jar

我得到了:

Exception in thread "main" java.lang.ClassCastException: javax.swing.tree.DefaultMutableTreeNode cannot be cast to myprog.view.tree.DataObject_Node

然后我检查了:

file Analyseries2011_TABS.class
Analyseries2011_TABS.class: compiled Java class data, version 49.0 (Java 1.5)

所以我安装了:jdk-1_5_0_22-linux-amd64-rpm.bin:

/usr/java/jdk1.5.0_22/bin/java -jar myprog_TABS_Dec30.jar

结果:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/swing/filechooser/FileNameExtensionFilter

最后我查看了 META-INF 目录中的 MANIFEST.MF :

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.7.0_01-b08 (Oracle Corporation)
Class-Path: 
X-COMMENT: Main-Class will be added automatically by build
Main-Class: myprog.core.main.myprog_TABS

好吧,让我们尝试一下:

/usr/java/jre1.7.0_01/bin/java -jar myprog_TABS_Dec30.jar

你猜怎么着...

Exception in thread "main" java.lang.ClassCastException: javax.swing.tree.DefaultMutableTreeNode cannot be cast to myprog.view.tree.DataObject_Node

我的想法已经用完了。

最佳答案

javax.swing.filechooser。 FileNameExtensionFilter是在 Java 6 中引入的,因此您无法使用 Java 5.0 编译代码也就不足为奇了。

由于您无权访问源代码,我们将不得不猜测发生了什么。 ClassCastException 意味着代码会执行以下操作:

DefaultMutableTreeNode object1 = doSomething();
DataObject_Node object2 = (DataObject_Node)object1;

但是 DataObject_Node 不是 DefaultMutableTreeNode 的子类,因此您会收到 ClassCastException,因为您不能这样做。所以,对我来说,它看起来像是代码中的错误。

关于java - jar 无法在 Linux 上运行 : ClassCastException/javax/cannot be cast to,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14583967/

相关文章:

android-studio - 从 Android Studio 将 Libgdx 游戏导出为可执行 Jar

java - 如何引用可执行 jar 和 Eclipse 中的属性文件?

java - 可执行 Jar 在类路径上找不到 typesafe/config application.conf

java - 仅包含 Maven 依赖项(如果存在)

java - 如何从 Java 程序运行 Linux 命令 “netstat”?

java - java中空格后取字符

Java-8:流还是更简单的解决方案?

java - 在 Universal Image Loader UIL 中设置 ViewPager 的 Image Wallaper

java - 带有打包依赖项的 Maven 构建 jar

java - 无法使用 maven-assembly-plugin 设置类路径