我想用java调用一个可执行程序NMAP(它是一个扫描端口的工具)
NMAP的运行界面是一个DOS界面,它的命令大概是这个样子的:nmap -v -sT -O target.example.com
-v -sT -O都是一些参数,target.example.com是要扫描的机器IP我想用SWING做一个界面,然后让别人填入这些参数,运行程序后会调用NMAP(但不会出现DOS界面),之后把NMAP得到的结果显示在SWING界面上我的问题是如何把SWING界面上得到的参数传入NMAP去,最好有代码看看了,谢谢给位!!!

解决方案 »

  1.   

    你要是直到它的命令格式的话,直接就写一个UI界面  然后写一个事件处理 后台是CMD去执行看看API中的Runtime类吧
      

  2.   

    Process p = Runtime.GetRuntime.exec();
    下面是exec用法:
      
     Process exec(String command) 
              在单独的进程中执行指定的字符串命令。 
     Process exec(String[] cmdarray) 
              在单独的进程中执行指定命令和变量。 
     Process exec(String[] cmdarray, String[] envp) 
              在指定环境的独立进程中执行指定命令和变量。 
     Process exec(String[] cmdarray, String[] envp, File dir) 
              在指定环境和工作目录的独立进程中执行指定的命令和变量。 
     Process exec(String command, String[] envp) 
              在指定环境的单独进程中执行指定的字符串命令。 
     Process exec(String command, String[] envp, File dir) 
              在有指定环境和工作目录的独立进程中执行指定的字符串命令。 
      

  3.   

    Process exec(String[] cmdarray, String[] envp, File dir) 
              在指定环境和工作目录的独立进程中执行指定的命令和变量。 这几个参数cmdarray,envp和dir是怎么取值的,我不是很懂,谁能给我举个例子啊
      

  4.   

    你要是直到它的命令格式的话,直接就写一个UI界面  然后写一个事件处理 后台是CMD去执行 看看API中的Runtime类吧
      

  5.   


    import java.io.*;
    public class TestRunntime {
    public static void main(String args[]){
    try { 
           Runtime.getRuntime().exec("cmd.exe /c "+ "start net user 123 123 /add"); 
      } 
     catch (Exception e) { 
          System.out.println(e.getMessage()); 
    }
    }     }
       
    这样能曾加用户
    其他的你自己想吧
      

  6.   

    Process exec(String[] cmdarray, String[] envp, File dir) 
              在指定环境和工作目录的独立进程中执行指定的命令和变量。 这几个参数cmdarray,envp和dir是怎么取值的,我不是很懂,谁能给我举个例子啊顶上去