如何用Java执行程序 : UNIX-Win32 « 开发相关类 « Java

En
Java
1. 图形用户界面
2. 三维图形动画
3. 高级图形
4. 蚂蚁编译
5. Apache类库
6. 统计图
7. 
8. 集合数据结构
9. 数据类型
10. 数据库JDBC
11. 设计模式
12. 开发相关类
13. EJB3
14. 电子邮件
15. 事件
16. 文件输入输出
17. 游戏
18. 泛型
19. GWT
20. Hibernate
21. 本地化
22. J2EE平台
23. 基于J2ME
24. JDK-6
25. JNDI的LDAP
26. JPA
27. JSP技术
28. JSTL
29. 语言基础知识
30. 网络协议
31. PDF格式RTF格式
32. 映射
33. 常规表达式
34. 脚本
35. 安全
36. Servlets
37. Spring
38. Swing组件
39. 图形用户界面
40. SWT-JFace-Eclipse
41. 线程
42. 应用程序
43. Velocity
44. Web服务SOA
45. 可扩展标记语言
Java 教程
Java » 开发相关类 » UNIX-Win32屏幕截图 
如何用Java执行程序

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
import java.util.*;

/**
 * ExecDemoNS shows how to execute a program from within Java.
 */
public class ExecDemoNS extends JFrame {
  /** The name of the help file. */
  protected final static String HELPFILE = "./help/index.html";

  /** A stack of process objects; each entry tracks one external running process */
  Stack<Process> pStack = new Stack<Process>();

  /** main - instantiate and run */
  public static void main(String av[]) throws Exception {
    String program = av.length == "netscape" : av[0];
    new ExecDemoNS(program).setVisible(true);
  }

  /** The path to the binary executable that we will run */
  protected static String program;

  /** Constructor - set up strings and things. */
  public ExecDemoNS(String prog) {
    super("ExecDemo: " + prog);
    String osname = System.getProperty("os.name");
    if (osname == null)
      throw new IllegalArgumentException("no os.name");
    if (prog.equals("netscape"))
      program = // Windows or UNIX only for now, sorry Mac fans
        (osname.toLowerCase().indexOf("windows")!=-1?
        "c:/program files/netscape/communicator/program/netscape.exe" :
        "/usr/local/netscape/netscape";
    else
      program = prog;

    Container cp = getContentPane();
    cp.setLayout(new FlowLayout());
    JButton b;
    cp.add(b=new JButton("Exec"));
    b.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        runProg();
      }
    });
    cp.add(b=new JButton("Wait"));
    b.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        doWait();
      }
    });
    cp.add(b=new JButton("Exit"));
    b.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        System.exit(0);
      }
    });
    pack();
  }

  /** Start the help, in its own Thread. */
  public void runProg() {

    new Thread() {
      public void run() {

        try {
          // Get the URL for the Help File
          URL helpURL = this.getClass().getClassLoader().
            getResource(HELPFILE);

          // Start Netscape from the Java Application.

          pStack.push(Runtime.getRuntime().exec(program + " " + helpURL));

        catch (Exception ex) {
          JOptionPane.showMessageDialog(ExecDemoNS.this,
            "Error" + ex, "Error",
            JOptionPane.ERROR_MESSAGE);
        }
      }
    }.start();

  }

  public void doWait() {
    if (pStack.size() == 0return;
    try {
      pStack.peek().waitFor();
        // wait for process to complete (does not work as expected for Windows programs)
    catch (Exception ex) {
      JOptionPane.showMessageDialog(this,
        "Error" + ex, "Error",
        JOptionPane.ERROR_MESSAGE);
    }
    pStack.pop();
  }
}
           
       
Related examples in the same category
1. Java 1.5 (5.0) Changes to the API: ProcessBuilder.
2. How to execute an external program How to execute an external program
3. 查看如何使用复杂的外部程序参数
4. ExecDemo显示如何执行外部程式2
5. ExecDemo显示如何执行外部程序
6. Execute an external program read its output, and print its exit status
7. Create some temp files, ls them, and rm them
8. ExecDemoHelp显示了如何使用Win32启动命令
9. ExecDemo shows how to execute an external program and read its output
10. ExecDemo shows how to execute an external program and read its output 3
11. JVM调用测试
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.