Java 从按钮打开cmd文件时出错

Java 从按钮打开cmd文件时出错,java,Java,我创建了一个名为message.cmd的cmd文件,我想用一个按钮打开它,它的内容是: MSG * "this is a message" 我试着用这个密码打开它: Runtime.getRuntime().exec("cmd /c start lockComputer.bat"); 它向我显示了一个错误: “MSG”未被识别为内部或外部命令,可操作 程序或批处理文件 如果从项目文件夹中打开此文件,它将正常工作 此外,我尝试通过一个按钮在cmd文件中打开此代码,结果成功: rundll32.

我创建了一个名为message.cmd的cmd文件,我想用一个按钮打开它,它的内容是:

MSG * "this is a message"
我试着用这个密码打开它:

Runtime.getRuntime().exec("cmd /c start lockComputer.bat");
它向我显示了一个错误:

“MSG”未被识别为内部或外部命令,可操作 程序或批处理文件

如果从项目文件夹中打开此文件,它将正常工作

此外,我尝试通过一个按钮在cmd文件中打开此代码,结果成功:

rundll32.exe user32.dll , LockWorkStation

我能做什么?

我测试了它,它对我有效

package arash.blogger.example.thread;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

  /**
   * @param args
   * @throws IOException 
   */
  public static void main(String[] args) throws IOException {
    String sysRoot=System.getenv("WinDir");
    Process p=Runtime.getRuntime().exec("ping 127.0.0.1",new String[]{}, new File(sysRoot+"/System32"));
    BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));
    String s;
    while( (s=br.readLine())!=null ){
      System.out.println(s);
    }
  }

}

设置MSG命令的完整路径,例如c:/a/MSG*“Hello Buddy:D”:(它不工作。还有人吗?您所说的错误意味着找不到MSG应用程序,您需要在bat文件中设置完整路径(如我所说)或设置或添加消息根文件夹的默认路径。我试图写入完整路径,但它向我显示:“C:\Windows\System32\MSG”未被识别为内部或外部命令、可操作程序或批处理文件。您是否可以共享bat文件代码?如果您能向我解释是什么:System.getenv(“WinDir”);为什么要在运行时中输入许多值?System.getenv()用于返回OS全局变量,而在Win机器中,WinDir变量指安装OS的位置(如C:/Winnt50或d:/windows),因此,由于ping、ipconfig…位于WinDir/System32下,您需要指定要运行ping进程的文件夹(如果不指定,则系统会在不存在的应用程序路径中搜索ping),您能解决此问题吗?