Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java执行python_Java_Python_Cmd - Fatal编程技术网

从java执行python

从java执行python,java,python,cmd,Java,Python,Cmd,我知道有很多类似的问题,但都没有解决我的问题 所以,我想使用ProcessBuilder从java执行python脚本 以下是我编写的一个方法,但它不起作用: public void stemPosts(String scriptPath, String inputFile, String outputFile) throws IOException { ProcessBuilder process = new ProcessBuilder("python", scrip

我知道有很多类似的问题,但都没有解决我的问题

所以,我想使用ProcessBuilder从java执行python脚本

以下是我编写的一个方法,但它不起作用:

public void stemPosts(String scriptPath, String inputFile, String outputFile)
        throws IOException {
    ProcessBuilder process = new ProcessBuilder("python", scriptPath,
            inputFile, outputFile);
    process.start();
}
下面是方法调用(
仅用于隐藏个人信息):

dataManager.stemPosts(
“D://stemmer/Croatian_stemmer.py”,
“D://stemmer/posts.txt”,
“D://stemmer/stemmedPosts.txt”);
第一个参数是脚本,第二个参数是第一个脚本参数(inputFile),第三个参数是第二个脚本参数(outputFile)

cmd中的执行很简单:
python cratian_stemmer.py posts.txt stemmedPosts.txt
,这很有效

上面的代码只创建输出文件,但它不填充数据


我尝试更改文件分隔符,但没有任何帮助…

对于初学者,我将通过重定向ProcessBuilder输出(如下所述),查看脚本执行过程中看到的输出


我的直觉是,这可能与PYTHONPATH有关,或者脚本中有错误,但是如果看不到脚本或执行的输出,就不可能知道。

因此,我按照您的建议重定向了它,但没有打印出来;接下来,正确设置python路径;这里是原始形式的脚本:我想我看到了-您的python脚本假设“rules.txt”和“transformations.txt”在当前工作目录中。如果您从终端运行脚本,而不是从词干分析器目录运行脚本,您可能会看到相同的问题。当JVM运行脚本时,它的工作目录不会在词干分析器中。让您的python脚本计算出自己的绝对路径,并在此基础上引用rules.txt和transformations.txt-请参阅另一个说明您也可以使用sys.argv[0]谢谢您注意到当前的工作目录问题。。。这是我错过的东西…因为我对python不是很在行(这不是我的脚本),所以我通过将
ProcessBuilder#目录设置为工作目录来解决Java中的问题,现在一切都正常了:)谢谢你的帮助:)酷!很乐意帮忙。请随意核对/投票支持我的答案。:)
dataManager.stemPosts(
            "D:/<user_path>/stemmer/Croatian_stemmer.py",
            "D:/<user_path>/stemmer/posts.txt",
            "D:/<user_path>/stemmer/stemmedPosts.txt");