从Python调用.jar文件

2024-07-08 12:40:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在解密一个PGP文件,我可以用Python完成,因为我绝对找不到它的资源/示例。我确实没有运气地提出这个问题!在

不过,我确实用Java开发了一些代码来解密文件。在

现在,我想从python代码中调用这个jar文件,因为我可以找到使用操作系统或者subprocess.call以类似的方式调用外部程序。在

下面是要执行此工作的示例代码:

 os.system("java -jar PGPEncryption.jar BC.csv.pgp X.csv <password>")

 x = subprocess.call(["java -jar PGPEncryption.jar BC.csv.pgp X.csv <password>"], shell=True)
 print(x)

我没有打印结果的运气。在

如有任何建议,我们将不胜感激!!在

编辑: 我还尝试了以下代码:

^{pr2}$

它不工作,并给出以下错误:

 Exception in thread "main" java.lang.UnsupportedClassVersionError: 
        pgpencryption/PGPExampleUtil : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(Unknown Source)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: pgpencryption.PGPExampleUtil. Program will exit.

Tags: 文件csv代码示例sourcelangnetjava
2条回答

这里的第一个问题是编译代码所用的java版本和运行代码所用的java版本。在

例如,如果您使用java版本8编译了代码,并且正在运行java版本7或6(低于已编译版本)的java应用程序,则会出现Unsupported major.minor version 52.0错误。因此,使用比服务器版本更低或相同的版本编译代码。在

检查服务器中的版本:java版本

检查开发工具中编译代码所用的版本

在下面的代码中,还提供jar文件的完整路径。在

os.system("java -jar \fullpath\PGPEncryption.jar BC.csv.pgp X.csv <password>")

如果要在python代码中使用JAR文件中的模块,则需要使用JYTHON运行py文件。在

java -jar jython.jar demo.py

Jython download

Check here for tutorial

带Popen的子流程

^{pr2}$

相关问题 更多 >

    热门问题