欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

【SmartJob】【隔离装置】WEB/统计程序和隔离程序共享服务器时的JAVA版本冲突问题

发布时间:2025/5/22 编程问答 46 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【SmartJob】【隔离装置】WEB/统计程序和隔离程序共享服务器时的JAVA版本冲突问题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

SmartJob、DmsWeb与SmartSys共享服务器容易引发Java版本冲突问题:
Java版本不正确
UnsupportedClassVersionError

Exception in thread “main” java.lang.UnsupportedClassVersionError: com/sf/smartjob/main/SmartJob : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
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.URLClassLoader1.run(URLClassLoader.java:355)atjava.security.AccessController.doPrivileged(NativeMethod)atjava.net.URLClassLoader.findClass(URLClassLoader.java:354)atjava.lang.ClassLoader.loadClass(ClassLoader.java:424)atsun.misc.Launcher 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:424) at sun.misc.Launcher1.run(URLClassLoader.java:355)atjava.security.AccessController.doPrivileged(NativeMethod)atjava.net.URLClassLoader.findClass(URLClassLoader.java:354)atjava.lang.ClassLoader.loadClass(ClassLoader.java:424)atsun.misc.LauncherAppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)


目前版本的麒麟、凝思操作系统自带的JAVA虚拟机版本大多是1.7。

[smart@client3-1 ~]$ type java java is hashed (/usr/bin/java) [smart@client3-1 ~]$ java -version java version "1.7.0_25" OpenJDK Runtime Environment (rhel-2.3.10.4.ky3-x86_64) OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode) [smart@client3-1 ~]$

各个隔离厂家的反向代理软件(发送端和接收端)大都是在JAVA1.7环境运行的。

SmartWeb和SmartJob则使用的是更新版本的JAVA1.8。所以如果WEB/统计服务和SCADA服务共享同一台服务器时,SmartWeb/SmartJob程序和隔离程序会发生版本冲突。

【解决方法】

  • 维持JAVA_HOME等相关环境变量指向1.7。
  • 修改smartjob.sh脚本中java改为指向java1.8的绝对路径(假定1.8的java所在目录为/home/smart/jdk1.8.0_181/bin/):

  • nohup java -Djava.net.preferIPv4Stack=true -cp $CLASSPATH com.sf.smartjob.main.SmartJob &
    改为
    nohup /home/smart/jdk1.8.0_181/bin/java -Djava.net.preferIPv4Stack=true -cp $CLASSPATH com.sf.smartjob.main.SmartJob &

  • 在配置文件conf/SmartJob.properties中增加下面第一行的内容,注意路径前后都要有斜杠。
  • javaPath=/home/smart/jdk1.8.0_181/bin/ group=chenth maxJobs=1 minJobs=1
  • 更新文件lib/SmartJob.jar至最新版本。

  • WEB启动脚本catalina.sh也需要添加java1.8的绝对路径。

  • 总结

    以上是生活随笔为你收集整理的【SmartJob】【隔离装置】WEB/统计程序和隔离程序共享服务器时的JAVA版本冲突问题的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。