Python更改Java Executab的输出文件夹

2024-05-15 04:23:32 发布

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

所以我正在编写一个基本的多用途脚本,它允许您在python中运行minecraft server.jar文件。以下是我当前的代码:

def run_command(command):
    p = subprocess.Popen(command,
                     stdout=subprocess.PIPE,
                     stderr=subprocess.STDOUT)
    return iter(p.stdout.readline, b'')

for output_line in run_command('java -jar jar\\minecraft.jar'):
    print(output_line)

下面是我当前的文件布局:

^{pr2}$

所以你可以看到它在运行jar文件,但问题是,当jar文件运行时,它会为所有服务器创建所有这些文件和文件夹,但是所有的文件都作为运行它的脚本在主目录中创建,但是我希望它们在jar文件夹或我选择的另一个文件夹中创建,那么我该怎么做呢?我找遍了,找不到与我的问题相符的东西。在


Tags: 文件run代码脚本文件夹outputserverdef
2条回答

指定用户目录属性(default working directory):

run_command('java -Duser.dir=/your_path_here -jar jar\\minecraft.jar'):

您可以使用对任何可执行文件有效的cwd参数:

#!/usr/bin/env python3
import subprocess

def run_command(command, **kwargs):
    with subprocess.Popen(command,
                          stdout=subprocess.PIPE,
                          stderr=subprocess.STDOUT,
                          bufsize=1,
                          **kwargs) as p:
        yield from p.stdout
    # close p.stdout, call p.wait() automatically

for line in run_command(r'java -jar c:\jar\minecraft.jar',
                        cwd=r'D:\working directory',
                        universal_newlines=True):
    print(line, end='')

相关问题 更多 >

    热门问题