关于提示unrecognized class file version的原因

本文分享了一位开发者在使用java-jar运行jar包时遇到的问题及解决方案,包括因JDK版本过低导致的ClassFormatError错误,以及如何通过重新安装JDK和调整sudoers文件中的JAVA_HOME环境变量来解决管理员权限下运行失败的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在发布一个网站的时候,发现用java - jar 可以运行jar包,但是运行到一半会卡住如下图所示

但是我在idea里却可以完美的运行,于是我去查了一下资料,然后改了几个配置,最后发现还是没有用。

但是我发现了一个问题,当我用sudo java -jar的时候显示 Exception in thread "main" java.lang.ClassFormatError: SystemInfo (unrecognized class file version)(这个问题的原因,根据网上的回答应该是jdk版本过低,只需要更新jdk就ok了)

而当我不用管理员权限的时候依旧可以运行jar包但是却不能运行成功。这时候我想到了解决的办法,重装jdk,于是我花了半个小时重装了1.8版本的jdk(注:之前也是1.8),配置完环境变量之后我就就可以使用java -jar运行jar包了,但是用管理员权限的时候还是显示jdk版本过低,这时候可以用命令 sudo java -version查看自己jdk的版本。

于是我又去查资料,终于找到了原因

通过sudo执行命令,读的环境变量路径和其他用户读的环境变量是不一样的: 

解决:

vi /etc/sudoers
# 把路径加入java路径
test    ALL=(ALL:ALL) ALL
Defaults        secure_path="/usr/local/sbin:/usr/java/jdk1.8.0_80/bin"
(:/usr/java/jdk1.8.0_80/bin是新增的,这是你安装的jdk的路径,注意改成你自己的路径)

用这个方法似乎还是没有解决我的问题,可能是我脸太黑的原因。

另一个解决办法是

在环境配置文件里加一个alias

alias sudo='sudo env PATH=$PATH'

问题完美解决!!!

<think>好的,我现在需要解决用户提到的AD20中出现“unrecognized project file version”错误的问题。首先,用户提供的引用资料里有一些类似的错误案例,比如Android Studio版本不兼容、Java类文件版本问题,以及Altium Designer 10导入旧版本文件的步骤。这些可能对解决当前问题有帮助。 首先,我应该考虑这个错误是否与项目文件的版本兼容性有关。AD20可能无法打开由更高版本软件创建的项目文件,或者用户的项目文件可能来自旧版本,而AD20在读取时出现问题。例如,引用3中提到Altium Designer 10导入99SE的DDB文件需要导入向导,这说明旧版本文件可能需要特定步骤来转换。 接下来,可能的解决方法包括: 1. 检查项目文件来源:确认文件是否由更高版本的Altium Designer创建。如果是,可能需要升级AD20到对应版本,或者让文件创建者导出为兼容格式。 2. 使用导入向导:类似引用3中的步骤,AD20可能有类似的导入工具来处理旧版本文件。用户需要找到“Import Wizard”选项,将旧文件转换为当前版本支持的格式。 3. 更新软件版本:如果文件来自更高版本,用户可能需要升级AD20。但用户可能无法升级,这时需要寻找其他方法,比如导出为中间格式。 4. 检查文件完整性:项目文件可能损坏,尝试重新获取或从备份恢复。 5. 联系技术支持:如果以上方法无效,可能需要官方支持。 另外,用户提供的引用中提到Java版本问题导致的类文件版本错误,这可能与AD20内部使用的Java环境有关。如果AD20依赖特定Java版本,可能需要检查Java环境配置,如引用4和5中的解决方案,设置CLASSPATH或更新JDK。但不确定这是否直接相关,需要进一步确认。 总结可能的解决步骤:首先尝试使用导入向导转换旧文件,其次确认软件版本是否兼容,检查文件完整性,最后考虑环境配置问题。</think>关于Altium Designer 20(AD20)出现“unrecognized project file version”错误,通常由项目文件版本不兼容或文件损坏导致。以下是分步解决方案: 1. **检查项目文件来源** - 若文件来自更高版本(如AD21/22),需升级AD20至对应版本或要求发送方导出为ASCII格式(`.PrjPcbStructure`)[^3] - 若文件来自旧版本(如AD18/19),尝试通过**File > Import Wizard**导入文件(类似DDB文件处理流程)[^3] 2. **使用文件格式转换工具** ```plaintext File > Import Wizard > 选择"Altium Designer Project/Workspace"类型 > 指定文件路径 > 按向导完成转换 ``` 3. **强制版本回退操作** - 用文本编辑器打开`.PrjPcb`文件 - 查找`Version=XX`字段,将其改为当前AD20支持的版本号(需查询AD20的版本兼容表) 4. **修复安装环境** - 检查Java环境配置(AD部分功能依赖JRE) ```bash export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib/rt.jar # Linux/Mac[^4] ``` - Windows系统需确保JDK版本≥1.8(通过控制面板检查并更新)[^2][^5] 5. **创建新项目迁移数据** - 新建空白项目 - 手动复制原理图/PCB文件到新项目 - 重新链接库文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值