繁体   English   中英

通过传递参数在运行Python脚本时出现Process Builder错误

[英]Process Builder error while running Python script by passing arguments

我有一个使用Java ProcessBuilder运行的Python脚本。 Python脚本需要2个参数。

Arg1:

H:\!eGIS.Dev_Workbench\eGIS.ArcGIS_Workbench\!eGIS.Network_Build\eGIS.CoE.Network_Clips\Network_ETLs\eGIS.CoE.Network_Clip\MOUNTAINWEST_AZ.gdb

Arg2:

 H:\!eGIS.Dev_Workbench\eGIS.ArcGIS_Workbench\!eGIS.Network_Build\Network_DS_ProBuild\Wp4\Network_Build_00_00_0000\WD_Mountainwest_AZ > H:\!eGIS.Dev_Workbench\eGIS.ArcGIS_Workbench\!eGIS.Network_Build\Network_DS_ProBuild\Wp4\Network_Build_00_00_0000\WD_Mountainwest_AZ\logs\BBB2_NB_Script1_AZ.txt

以下是我传递给ProcessBuilder执行的String数组

[C:\Pythion27\Python.exe,H:\!eGIS.Dev_Workbench\eGIS.ArcGIS_Workbench\!eGIS.Network_Build\Network_Build_Script.v.6.2_2017.12.08\Script.1-2_Trunk_20170609\Src\PY\ComcastNetworkProcessing\ComcastNetworkProcessing.py,H:\!eGIS.Dev_Workbench\eGIS.ArcGIS_Workbench\!eGIS.Network_Build\eGIS.CoE.Network_Clips\Network_ETLs\eGIS.CoE.Network_Clip\MOUNTAINWEST_AZ.gdb,H:\!eGIS.Dev_Workbench\eGIS.ArcGIS_Workbench\!eGIS.Network_Build\Network_DS_ProBuild\Wp4\Network_Build_00_00_0000\WD_Mountainwest_AZ > H:\!eGIS.Dev_Workbench\eGIS.ArcGIS_Workbench\!eGIS.Network_Build\Network_DS_ProBuild\Wp4\Network_Build_00_00_0000\WD_Mountainwest_AZ\logs\BBB2_NB_Script1_AZ.txt]

当我使用ProcessBuilder进行构建和运行时,我收到提示python.exe停止工作并在命令提示符下给出退出值1073741819的提示消息。 当我直接在命令提示符下运行相同命令时,它正在执行,没有任何错误。

任何人都可以帮助我,如何使用java ProcessBuilder运行它。

>在shell中仅具有特殊含义,例如cmd.exe。

当前,您正在将一个非常长的文件名传递给Python,该文件名包含空格和一个>

重定向ProcessBuilder输出的正确方法是使用其redirectOutput方法:

ProcessBuilder builder = new ProcessBuilder(
    "C:\\Pythion27\\Python.exe",
    "H:\\!eGIS.Dev_Workbench\\eGIS.ArcGIS_Workbench\\!eGIS.Network_Build\\Network_Build_Script.v.6.2_2017.12.08\\Script.1-2_Trunk_20170609\\Src\\PY\\ComcastNetworkProcessing\\ComcastNetworkProcessing.py",
    "H:\\!eGIS.Dev_Workbench\\eGIS.ArcGIS_Workbench\\!eGIS.Network_Build\\eGIS.CoE.Network_Clips\\Network_ETLs\\eGIS.CoE.Network_Clip\\MOUNTAINWEST_AZ.gdb",
    "H:\\!eGIS.Dev_Workbench\\eGIS.ArcGIS_Workbench\\!eGIS.Network_Build\\Network_DS_ProBuild\\Wp4\\Network_Build_00_00_0000\\WD_Mountainwest_AZ");

builder.redirectOutput(new File(
    "H:\\!eGIS.Dev_Workbench\\eGIS.ArcGIS_Workbench\\!eGIS.Network_Build\\Network_DS_ProBuild\\Wp4\\Network_Build_00_00_0000\\WD_Mountainwest_AZ\\logs\\BBB2_NB_Script1_AZ.txt"));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM