简体   繁体   English

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

[英]change compile version of existing jar file in java

I have bccapi-1.2.0.jar file which i want to run on linux server but it could not run because of its compile version. 我有bccapi-1.2.0.jar文件,我想在linux服务器上运行,但由于其编译版本而无法运行。

Compile version of jar file is jdk1.7 which i downloaded from URL: http://www.antepedia.com/detail/p/bccapi.html jar文件的编译版本是我从URL下载的jdk1.7: http ://www.antepedia.com/detail/p/bccapi.html

Server's jdk is jdk1.5. 服务器的jdk是jdk1.5。 So how can i recompile existing jar with jdk1.5 environment. 因此,如何使用jdk1.5环境重新编译现有的jar。 When i am trying to run that it give error like that 当我尝试运行它时,会给出这样的错误

java.lang.UnsupportedClassVersionError: Bad version number in .class file (unable to load 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) javax.servlet.http.HttpServlet.service(HttpServlet.java:643) 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)venture.Application.CUsers.getUserBeanByNameandPassword(CUsers.java:131)venture.modes.ChkLogin。进程(ChkLogin.java:55)ventory.servlet.UserServlet.doPost(UserServlet.java:62)javax.servlet.http.HttpServlet.service(HttpServlet.java:643)

This error occured when i am executing jar file on server. 我在服务器上执行jar文件时发生此错误。

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

Finally i found a required java file(com.lambdaworks,SCrypUtils.java) source code from https://github.com/wg/scrypt/blob/master/src/main/java/com/lambdaworks/crypto/SCryptUtil.java 最后,我从https://github.com/wg/scrypt/blob/master/src/main/java/com/lambdaworks/crypto/SCryptUtil.java找到了一个必需的java文件(com.lambdaworks,SCrypUtils.java)源代码。

So I opened in Eclipse and just change compile version to java 1.5 like right click on project -> properties -> java compiler -> change to 1.5 所以我在Eclipse中打开了,只是将编译版本更改为Java 1.5,就像右键单击项目->属性-> Java编译器->更改为1.5

Then exported this project with jar. 然后用jar导出该项目。 so i happy that i didn't require to change server configuration and run project successfully. 所以我很高兴我不需要更改服务器配置并成功运行项目。

您应该尝试将项目的环境更改为jdk 1.7,以便可以使用jar文件。

从此处下载源代码: https : //storage.googleapis.com/google-code-archive-source/v2/code.google.com/bccapi/source-archive.zip并尝试使用Java 5编译该库。 ,也许您将不得不进行一些更改。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM