如题;
java 如何指这用户调用 exe;
我调用exe的方式如下:
可指定其它的exe 直接经路径就行,但是运行的EXE程序怎么指定系统用户?在server2003里是以system执行的,怎么指定为Administrator.
用runas 该怎么写?
cmd = new String[]{"notepad"};
Runtime rn = Runtime.getRuntime();
Process p = null;
try {
p = rn.exec(cmd);
InputStream in = p.getInputStream(); StringBuilder sb = new StringBuilder();
String readline = "";
BufferedReader br = new BufferedReader(new InputStreamReader(in));
while (br.ready()) {
readline = br.readLine();
sb.append(readline);
}
br.close();
System.out.println("返回值:" + sb.toString());JavaEXEjava调用EXErunas命令提示符

解决方案 »

  1.   

    java 如何指定用户调用 exe;
      

  2.   


    public static void main(String[] args) throws Exception
    {
    Runtime rt = Runtime.getRuntime();
    rt.exec("notepad.exe");
    }
      

  3.   

    windows系统用runas,linux系统用sudo,可以实现的啊。
      

  4.   


    有runas 的例子没。上网搜一下runas命令怎么用不就知道了。
      

  5.   

    http://blog.csdn.net/yankaiwei120/article/details/8957900看看这篇文章
      

  6.   

    尝试runas方式:
    public static void main(String[] args) {
    String cmd = "runas /env /user:mymachine\\administrator \"notepad \\\"d:\\runas.txt\"\"";
    String[] str = new String[]{cmd};
    execExe(str);
    System.out.println(System.getProperty("user.name"));
    }

    public static void execExe(String[] cmd) {
    System.out.println("参数:"+Arrays.asList(cmd));
    Runtime rn = Runtime.getRuntime();
    Process process = null;
    try {
    process = rn.exec(cmd); // 此处报错。。
    // 密码输入             
    OutputStreamWriter os = new OutputStreamWriter(process.getOutputStream());
    BufferedWriter bw = new BufferedWriter(os);
    bw.write(" * " + "\n");

    InputStream in = process.getInputStream();
    StringBuilder sb = new StringBuilder();
    String readline = "";
    BufferedReader br = new BufferedReader(new InputStreamReader(in));
    while (br.ready()) {
    readline = br.readLine();
    sb.append(readline);
    }
    br.close();
    System.out.println("返回值:" + sb.toString()); } catch (IOException e) {
    e.printStackTrace();
    }
    }
    输出及错误信息:
    参数:[runas /env /user:mymachine\administrator "notepad \"d:\runas.txt""]
    Administrator
    java.io.IOException: CreateProcess: "runas \env \user:mymachine\administrator "notepad \"d:\runas.txt""" error=2
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
    at java.lang.ProcessImpl.start(ProcessImpl.java:30)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)
    at java.lang.Runtime.exec(Runtime.java:591)
    at java.lang.Runtime.exec(Runtime.java:464)
    at com.TestExe.execExe(TestExe.java:27)
    at com.TestExe.main(TestExe.java:17)runas /env /user:mymachine\administrator "notepad \"d:\runas.txt"" 在命令行里可以执行;
    帮忙看下是哪的问题?
      

  7.   

    使用sysiternals提供的psexec:
    new ProcessBuilder("""d:\Sysinternals\PsExec.exe""", "-u", "thinkbeta", "-p", "better", """E:\PortableApps\CubicExplorerPort
    able\CubicExplorerPortable.exe""").start();
      

  8.   

    runas /user:administrator java.exe ......别忘了给分