Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.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 运行powershell命令时出错_Java_Powershell_Process_Runtime.exec_Ioexception - Fatal编程技术网

Java 运行powershell命令时出错

Java 运行powershell命令时出错,java,powershell,process,runtime.exec,ioexception,Java,Powershell,Process,Runtime.exec,Ioexception,如何使用java调用powershell命令 try { ExecuteWatchdog watchdog = new ExecuteWatchdog(20000); Process powerShellProcess = Runtime.getRuntime().exec( "powershell.exe \"D:\\testscript.ps1\""); if (watchdog != null) {

如何使用java调用powershell命令

  try {
        ExecuteWatchdog watchdog = new ExecuteWatchdog(20000);
        Process powerShellProcess = Runtime.getRuntime().exec(
                "powershell.exe \"D:\\testscript.ps1\"");
        if (watchdog != null) {
            watchdog.start(powerShellProcess);
        }
        BufferedReader stdInput = new BufferedReader(new InputStreamReader(
                powerShellProcess.getInputStream()));
        String line;
        System.out.println("Output :");
        while ((line = stdInput.readLine()) != null) {
            System.out.println(line);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
注意:我映射了正确的路径

我尝试了上面的代码,但它给出了如下错误

java.io.IOException: Cannot run program "powershell.exe": CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
    at java.lang.Runtime.exec(Runtime.java:593)
    at java.lang.Runtime.exec(Runtime.java:431)
    at java.lang.Runtime.exec(Runtime.java:328)
    at com.powershell.PsJava.main(PsJava.java:17))

任何人都可以在这方面提供帮助。

环境变量并不总是向java编译器公开。堆栈错误只是告诉您它找不到powershell可执行文件,因为它不会自动知道如何查找$PSHOME变量

修复程序只是指定完整路径:

“powershell.exe”
更改为
“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe”

环境变量并不总是向java编译器公开。堆栈错误只是告诉您它找不到powershell可执行文件,因为它不会自动知道如何查找$PSHOME变量

修复程序只是指定完整路径:

“powershell.exe”
更改为
“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe”
您可以使用Java中的
ProcessBuilder
运行powershell命令

ProcessBuilder builder =
    new ProcessBuilder("powershell.exe", "/c", "Get-Process");
Process p = builder.start();

您可以使用Java中的
ProcessBuilder
运行PowerShell命令

ProcessBuilder builder =
    new ProcessBuilder("powershell.exe", "/c", "Get-Process");
Process p = builder.start();

如果powershell可执行文件在您的路径中,请确保您没有意外地在
生成环境
部分中选择了带有特定用户名密码凭据的
使用密文或文件
。我不知道为什么,但这似乎导致了这个问题时,我们的奴隶建设

如果powershell可执行文件在您的路径中,请确保您没有意外地在
生成环境
部分中选择了带有特定用户名密码凭据的
使用密文或文件
。我不知道为什么,但这似乎导致了这个问题时,我们的奴隶建设

是的,我们需要配置
Powershell.exe
的环境变量位于路径
C:\Windows\System32\WindowsPowerShell\v1.0
中,然后重新启动系统


然后,执行PowerShell命令或脚本。

是的,我们需要配置
PowerShell.exe
的环境变量位于路径
C:\Windows\System32\WindowsPowerShell\v1.0
中,然后重新启动系统


之后,执行PowerShell命令或脚本。

我测试了上面的所有答案,但没有成功 试试这个。。。
我有这个问题,它是如此痛苦:)我可以这样解决这个问题:首先我在Windows 10的环境变量中将C:\Windows\System32\WindowsPowerShell\v1.0添加到我的系统路径,然后重新启动我的电脑,重新启动后,我创建了一个新的scala sbt项目,但我选择了scala 11.10版和sbt 0.0.3x版,而不是1.x.x版,并且成功了,祝你一切顺利

我测试了上面的所有答案,但没有成功 试试这个。。。
我有这个问题,它是如此痛苦:)我可以这样解决这个问题:首先我在Windows 10的环境变量中将C:\Windows\System32\WindowsPowerShell\v1.0添加到我的系统路径,然后重新启动我的电脑,重新启动后,我创建了一个新的scala sbt项目,但我选择了scala 11.10版和sbt 0.0.3x版,而不是1.x.x版,并且成功了,祝你一切顺利

1)阅读(并实施)本报告的所有建议。这可能会解决问题。如果没有,它应该提供更多关于失败原因的信息。然后忽略它引用的
exec
,并使用
ProcessBuilder
构建
流程。还可以将
字符串arg
分解为
字符串[]args
,以说明本身包含空格的参数。2) 没有必要在标题中添加主标记。它只是找不到文件。将
“powershell.exe”
更改为
“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe”
谢谢您@Cole9350,问题已解决。1)阅读(并实施)的所有建议。这可能会解决问题。如果没有,它应该提供更多关于失败原因的信息。然后忽略它引用的
exec
,并使用
ProcessBuilder
构建
流程。还可以将
字符串arg
分解为
字符串[]args
,以说明本身包含空格的参数。2) 没有必要在标题中添加主标记。它只是找不到文件。将
“powershell.exe”
更改为
“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe”
谢谢您@Cole9350,问题已解决。