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

但是,我确实用Java开发了一些代码来解密文件。

现在,我想从python代码中调用此jar文件,因为我可以找到使用os.system或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)


我没有打印结果的运气。

任何建议将不胜感激!

编辑:
我也试过下面的代码:

subprocess.call(['java', '-jar', 'abc.jar'])


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

 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.

最佳答案

在这里,您的第一个问题是编译代码的Java版本和运行代码的Java版本。

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

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

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

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

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

10-06 05:13
查看更多