gpt4 book ai didi

java - 通过命令行从 python 调用 java 程序的奇怪错误

转载 作者:行者123 更新时间:2023-11-30 11:52:55 26 4
gpt4 key购买 nike

作为我基于 python 的程序的一部分,我必须调用一个 Java 程序 - 使用 os.system() 完美地解决了这个问题。它运行良好,直到我将整个内容从一个目录移动到另一个目录。我更改了 python 代码中的所有文件路径,而 java 程序——据我所知,我不太了解 java——依赖于相对文件路径,这些路径在移动过程中没有改变。但是现在,java程序打不开。命令行出现然后几乎立即消失,所以我知道 os.system() 正在工作。这一定与我在 os.system 中使用的文件路径有关,因为当我将其更改回原始文件路径时,它又可以正常工作了。代码如下:

os.system("java -jar C:\\Documents and Settings\\enginx_mgr.ISIS\\My Documents\\ISAProgramFiles\\JPivSource\\jpivc.jar %s"%fileNames)

其中 fileNames 是作为参数传递给 java 程序的变量,我很确定这不是问题所在。如果我直接从 cmd.exe 调用 python 程序,那么它会返回错误消息“无法访问 Jarfile C:\Documents”。我认为这可能与文件路径中的空格有关,所以我将下划线放在:

os.system("java -jar C:\\Documents_and_Settings\\enginx_mgr.ISIS\\My_Documents\\ISAProgramFiles\\JPivSource\\jpivc.jar %s"%fileNames)

它给了我同样的“无法访问 Jarfile”消息,但这次是完整的文件路径。在文件路径上尝试 os.path.exists() 返回 true,因此 python 知道它是一个真实的文件路径;我想这一定是命令行不同意,但我不知道为什么。有什么想法吗?

编辑:原始文件路径(如果有兴趣的话)是 C:\Inetpub\ftproot\JPivSource\jpivc.jar

编辑 2:它几乎肯定不是文件路径,根据下面的答案以及它们都不起作用的事实(并且原始文件路径起作用)。凭直觉检查了安全选项,我可以完全控制 .jar 文件,系统也是如此,所以并不是出于安全原因它无法访问它。仍处于零平方。

最佳答案

不是直接的回答,而是......

我认为调用.bat 文件比使用许多命令行选项直接调用java 更好。这样您就不需要更改 Python 程序来添加一些其他选项(例如 -Xms2048m-Dfile.encoding=utf8)。

这样的.bat文件也更容易调试。

关于java - 通过命令行从 python 调用 java 程序的奇怪错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6596049/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com