Python Java-使用subprocess.Popen从Python脚本调用JAR时类文件版本错误
我有一个用jdk13编译的java程序,并在运行它的服务器上安装了jdk13。如果我从命令行运行该程序,就不会有问题,但是当我使用subprocess.Popen从python脚本调用它时,我在stderr中得到了这个错误消息Python Java-使用subprocess.Popen从Python脚本调用JAR时类文件版本错误,java,python,Java,Python,我有一个用jdk13编译的java程序,并在运行它的服务器上安装了jdk13。如果我从命令行运行该程序,就不会有问题,但是当我使用subprocess.Popen从python脚本调用它时,我在stderr中得到了这个错误消息 has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recogniz
has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recognizes class file versions up to 55.0
这怎么可能通过python脚本而不是在命令行中手动运行它时发生呢?您的python脚本可能使用了不同的环境,其中
java
的含义不同(id est,指向不同的可执行文件)
尝试直接调用,您可以在命令行中找到哪个java
如何通过python脚本实现这一点,而不是在命令行中手动运行它
基本上,与一起使用的java版本取决于:
- 您使用的完整路径名;e、 g.
或/usr/bin/java
环境变量(如果使用简单的命令名启动);e、 g.PATH
java
java
使用不同的完整路径名PATH
PATH
。请注意,shell初始化相当复杂,通常它会根据运行的init文件设置路径sudo
,则会覆盖PATH
路径设置可以“手动”设置
这只是一些更可能的可能性…在命令行中使用java-version会为我提供正确的版本13,正如Stephen在另一个答案中所建议的,还要检查
CLASSPATH
和java\u HOME
变量。同时检查您是否在正确的目录中。请共享整个错误消息。