Java 使用process builder传递密码不适用于“net use”命令

Java 使用process builder传递密码不适用于“net use”命令,java,command-line,processbuilder,net-use,Java,Command Line,Processbuilder,Net Use,我试图通过使用process builder调用netuse命令来运行它。当我使用PrintWriter将密码传递到OutputStream时,密码失败,出现以下错误: 发生系统错误1219。 不允许同一用户使用多个用户名多次连接到服务器或共享资源。断开以前与服务器或共享资源的所有连接,然后重试 我已经通过手动运行来检查用户名、密码和命令。工作正常 代码片段: ProcessBuilder pb = new ProcessBuilder("net","use","\\\\<SERVERNA

我试图通过使用process builder调用netuse命令来运行它。当我使用PrintWriter将密码传递到OutputStream时,密码失败,出现以下错误: 发生系统错误1219。 不允许同一用户使用多个用户名多次连接到服务器或共享资源。断开以前与服务器或共享资源的所有连接,然后重试

我已经通过手动运行来检查用户名、密码和命令。工作正常

代码片段:

ProcessBuilder pb = new ProcessBuilder("net","use","\\\\<SERVERNAME>\\<SharedLocation>","/USER:<username>","*");
Process p = pb.start();
OutputStream out = p.getOutputStream();
PrintWriter writer = new PrintWriter(out);      
writer.println("<pwd>".toCharArray());
int exitCode = p.waitFor();     
System.out.println("Exit Code :"+ exitCode);

有几点建议:

在开始之前,首先运行net use*/delete/y删除所有连接。您也可以尝试删除特定的连接。 使用纯Java解决方案而不是net Use-请参阅
谢谢你的评论。我使用netuse*/delete/y删除了所有连接,这也删除了我尝试使用netuse的连接。现在它失败了,出现了另一个错误:系统错误86。指定的网络密码不正确。但是,当我从cmd运行命令时,使用的密码与它成功传递的密码相同。我传递密码的方式不正确吗?你的代码对我有用。您还可以尝试其他一些代码示例。您是否使用与我在代码中使用的相同的方式传递密码?因为我尝试从朋友的系统运行代码。我仍然收到相同的错误。