在我自己的计算机上成功安装 jython 2.7.0 并编写了一些使用它的代码后,我尝试将它安装在运行 Ubuntu 14.04.2 LTS 的服务器上。我的java版本是:
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)
我在安装过程中的错误是:
Generating start scripts ...
Installing pip and setuptools
90 %
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/python/util/jython : Unsupported major.minor version 51.0
有趣的是,如果我以超级用户身份运行安装,然后还以超级用户身份运行bin
目录中的 jython 可执行文件,它可以工作:
jython-2.7.0/bin$ sudo ./jython
Jython 2.7.0 (default:9987c746f838, Apr 29 2015, 02:25:11)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.8.0_51
Type "help", "copyright", "credits" or "license" for more information.
但是,如果我尝试以普通用户身份运行 jython 可执行文件(在以超级用户或普通用户身份安装之后),那么我会得到相同的结果UnsupportedClassVersionError
:
jython-2.7.0/bin$ ./jython
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/python/util/jython : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: org.python.util.jython. Program will exit.
我检查了超级用户和普通用户的java版本,它完全一样。关于这里的问题有什么想法吗?