Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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应用程序运行windows命令promt?_Java_User Interface_Cmd_Swig_Processbuilder - Fatal编程技术网

如何从java应用程序运行windows命令promt?

如何从java应用程序运行windows命令promt?,java,user-interface,cmd,swig,processbuilder,Java,User Interface,Cmd,Swig,Processbuilder,目前,我正在尝试用GUI制作应用程序。此应用程序必须使用一些命令运行cmd。我正试着去做。我想实现操作(当我按下按钮“搜索”-命令promt打开时)。我尝试使用ProcessBuilder实现目标,但没有结果。正如您在下面看到的,我尝试使用“dir”命令运行cmd。我试着不运行一些命令,但CMD没有运行。因此,我们在任务管理器中看不到窗口和进程。 这是我的代码: package sys.tool; import java.awt.*; import java.awt.event.*;

目前,我正在尝试用GUI制作应用程序。此应用程序必须使用一些命令运行cmd。我正试着去做。我想实现操作(当我按下按钮“搜索”-命令promt打开时)。我尝试使用ProcessBuilder实现目标,但没有结果。正如您在下面看到的,我尝试使用“dir”命令运行cmd。我试着不运行一些命令,但CMD没有运行。因此,我们在任务管理器中看不到窗口和进程。 这是我的代码:

    package sys.tool;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//Создаем поля

public class MainWindow extends JFrame{
    private JLabel lcn = new JLabel("Enter computer name:");
    private JTextField icn = new JTextField("", 5);
    private JButton search = new JButton("Search");
    private JLabel lun = new JLabel("Enter user name:");
    private  JTextField iun = new JTextField("", 5);
    private JLabel empty = new JLabel("");


public MainWindow (){
    super("SysAdminTool");
    this.setBounds(100, 100, 700 , 90);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setResizable(false);

    Container container = this.getContentPane();
    container.setLayout(new GridLayout(3, 2 , 1, 1));
    container.add(lcn);
    container.add(icn);

    container.add(lun);
    container.add(iun);

    container.add(empty);
    search.addActionListener(new SearchEventListener());
    container.add(search); //this is button
}

class  SearchEventListener implements ActionListener{
    public void actionPerformed (ActionEvent e){
       ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C", "dir C:\\Users"); \\here I try to run cmd with command "dir"
    }
}


}
在操作系统上运行命令

String command = "command of the operating system";
Process process = Runtime.getRuntime().exec(command);
在操作系统上运行命令

String command = "command of the operating system";
Process process = Runtime.getRuntime().exec(command);

此代码将dir命令的结果输出到控制台:

导入java.io.BufferedReader;
导入java.io.InputStreamReader;
公营班长{
私有静态最终字符串CHAR\u SET\u NAME\u WINDOWS=“WINDOWS-1251”;
私有静态最终字符串CHAR\u SET\u UTF=“utf8”;
私有静态最终字符串CHAR\u SET\u CP=“cp866”;
私有静态最终字符串命令=“cmd.exe/c dir”;
公共静态void main(字符串[]args){
runCommand(命令、字符集、名称、窗口);
}
私有静态void runCommand(String命令,String charsetName){
试一试{
Process Process=Runtime.getRuntime().exec(命令);
//获取输入流
BufferedReader stdInput=新的BufferedReader(新的InputStreamReader(process.getInputStream(),charsetName));
BufferedReader stdError=新的BufferedReader(新的InputStreamReader(process.getErrorStream(),charsetName));
//读取命令标准输出
字符串s;
System.out.println(“标准输出:”);
而((s=stdInput.readLine())!=null){
系统输出打印项次;
}
//读取命令错误
System.out.println(“标准错误:”);
而((s=stdError.readLine())!=null){
系统输出打印项次;
}
}捕获(例外e){
e、 printStackTrace(System.err);
}
}
}

我希望这会有所帮助。

此代码将dir命令的结果输出到控制台:

导入java.io.BufferedReader;
导入java.io.InputStreamReader;
公营班长{
私有静态最终字符串CHAR\u SET\u NAME\u WINDOWS=“WINDOWS-1251”;
私有静态最终字符串CHAR\u SET\u UTF=“utf8”;
私有静态最终字符串CHAR\u SET\u CP=“cp866”;
私有静态最终字符串命令=“cmd.exe/c dir”;
公共静态void main(字符串[]args){
runCommand(命令、字符集、名称、窗口);
}
私有静态void runCommand(String命令,String charsetName){
试一试{
Process Process=Runtime.getRuntime().exec(命令);
//获取输入流
BufferedReader stdInput=新的BufferedReader(新的InputStreamReader(process.getInputStream(),charsetName));
BufferedReader stdError=新的BufferedReader(新的InputStreamReader(process.getErrorStream(),charsetName));
//读取命令标准输出
字符串s;
System.out.println(“标准输出:”);
而((s=stdInput.readLine())!=null){
系统输出打印项次;
}
//读取命令错误
System.out.println(“标准错误:”);
而((s=stdError.readLine())!=null){
系统输出打印项次;
}
}捕获(例外e){
e、 printStackTrace(System.err);
}
}
}

我希望这会有所帮助。

我之前做过,但当我尝试构建项目时,command exec突出显示红色,出现了此错误:“错误:(38,55)java:unreported exception java.io.IOException;必须捕获或声明要抛出”。我将此代码放在SearchEventListener类中:
class SearchEventListener实现ActionListener{public void actionPerformed(ActionEvent e){String command=“cmd.exe”;Process Process=Runtime.getRuntime().exec(command)
“错误:(38,55)java:unreported exception java.io.IOException;必须捕获或声明为抛出”。我将此代码放在类SearchEventListener:
class SearchEventListener实现ActionListener{public void actionPerformed(ActionEvent e){String command=“cmd.exe”;进程=Runtime.getRuntime().exec(command)