更改java中现有jar文件的编译版本

更改java中现有jar文件的编译版本,java,jar,jdk1.5,Java,Jar,Jdk1.5,我有bccapi-1.2.0.jar文件,我想在linux服务器上运行该文件,但由于其编译版本而无法运行 jar文件的编译版本是jdk1.7,我从URL下载: 服务器的jdk是jdk1.5。那么,如何使用jdk1.5环境重新编译现有的jar呢。 当我试图运行它时,它会给出这样的错误 java.lang.UnsupportedClassVersionError:.class中的版本号错误 文件(无法加载com.lambdaworks.crypto.SCryptUtil类) org.apache.c

我有bccapi-1.2.0.jar文件,我想在linux服务器上运行该文件,但由于其编译版本而无法运行

jar文件的编译版本是jdk1.7,我从URL下载:

服务器的jdk是jdk1.5。那么,如何使用jdk1.5环境重新编译现有的jar呢。 当我试图运行它时,它会给出这样的错误

java.lang.UnsupportedClassVersionError:.class中的版本号错误 文件(无法加载com.lambdaworks.crypto.SCryptUtil类) org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2858) org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) com.elitecore.activation.utilities.CryptUtilities.validateScryptPassword(CryptUtilities.java:135) inventory.Application.CUsers.getUserBeanByNameandPassword(CUsers.java:131) inventory.modes.ChkLogin.process(ChkLogin.java:55) inventory.servlet.UserServlet.doPost(UserServlet.java:62) javaservlet.http.HttpServlet.service(HttpServlet.java:643)

在服务器上执行jar文件时发生此错误


您应该尝试将项目环境更改为JDK1.7,以便使用jar文件

从这里下载源代码:
并尝试为Java 5编译库,也许您必须应用一些更改。

最后,我从中找到了所需的Java文件(com.lambdaworks,SCrypUtils.Java)源代码

所以我在Eclipse中打开了,只需将编译版本更改为Java1.5,就像右键单击project->properties->JavaCompiler->Changeto1.5一样


然后用jar导出这个项目。所以,我很高兴我不需要更改服务器配置并成功运行项目

是否不可能更新您的服务器,使其具有在过去十年中发布的JRE?如果您下载的jar是使用jdk1.7编译的,那么它可能使用jdk1.5中不存在的特定功能。很抱歉,您必须将服务器上的jre升级到1.7。谢谢您的回复,但现在不可能,因为整个项目及其依赖项都在那里。所以如果我愿意的话,可能会发生很多问题。是的,我知道。但我不能这样做,因为服务器上有多个项目,并且这些项目使用jdk1.5运行。所以我不敢做这个解决方案。所以我们不能用不同版本的java重新编译现有的jar文件。?@vimalsuthar很抱歉我的错误,我的意思是你可以将项目的环境设置为jdk1.7,并且应该能够在服务器上运行。为了我,我有多个项目同时在jdk1.7和1.5上运行,它们仍然能够在同一台服务器上运行。这很好@chit Khine,但我不能像我之前所说的那样用jdk1.5转换整个项目,所以我需要用兼容jdk1.5的jar重新编译,而且我不需要更改jar文件,只需要在jdk1.5中重新编译。如果如果您有足够的信心,您可以将服务器环境更改为1.7,但您担心它会给您带来问题。我不知道你如何运行需要1.7和1.5的jar谢谢你的回复。我需要lambdaworks.crypto.SCryptUtis.java,但没有提供源代码的版本。我不需要更改现有代码,只需要重新编译jar文件或jdk1.5.Java 1.5和1.7的代码,它们的字节码稍有不同,有些东西已经更改,如覆盖注释、打开字符串、菱形、,尝试使用资源等。尝试以下方法:-通过cfr反编译您的jar-创建新项目-将您的项目设置为Java 5项目-粘贴反编译代码-修复所有错误和警告-导出您自己的库。我不确定在这种情况下的许可证。