python - 如何加载放置在不同位置的 jar 文件和支持文件

标签 python jar

我正在创建一个运行 jar 文件的 python 程序。 jar 文件和一些支持文件放置在与 python 程序目录不同的位置。我尝试将 jar 文件路径添加到 sys.path 但它无法从那里访问文件,但是路径已正确添加到 sys.path。我怎样才能让它工作?

jar 文件位置:E:\data

python 文件位置:C:\Users\user\Desktop

我正在使用 subprocess 调用 jar 文件,代码如下:

import os
import sys
import subprocess as sp

class abc():
    def __init__(self):
        sys.path.append(r'E:\data')

    def run(self):
        print sys.path
        env = dict(os.environ)
        env['JAVA_OPTS'] = '-Xms256m -Xmx256m -Xss1024k'
        sp.call(['java', '-jar', 'file.jar'], env=env)

if __name__ == '__main__':
    o = abc()
    o.run()

运行上面的代码后,我收到一条错误消息:

错误:无法访问 jarfile file.jar

最佳答案

如果你只是改变你的工作目录会怎么样:

import os
cwd = os.getcwd() #current directory
os.chdir('path/to/jar')
... # run file
...
os.chdir(cwd)

关于python - 如何加载放置在不同位置的 jar 文件和支持文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27352233/

相关文章:

python - "MEIPASS"代表什么?

java - 从 Maven 阴影 .jar 执行时库路径错误

java - 如何从另一个文件夹执行jar文件

java - 将外部 JAR 添加到 Eclipse

java - 将文件夹中的所有文件保存在 jar 中

python - 根据第二个数组在一个数组中查找项目

python - "for-in loop"的学习索引

python - 漂亮的 Soup Looping 元素,只有在当前元素及其父元素存在时才获取当前元素的文本

java - 添加外部 jar 时出错

python - 如何通过 simple_salesforce 进行 Salesforce 批量 API 调用?