你的意思是不是判断你自己的程序吧?
而是判断在操作系统中是否有一个进程在运行这个恐怕要迫使你使用操作系统提供的命令
导致你的程序不能跨平台运行在windows下可以使用tlist命令,在linux下可以使用ps命令
然后在返回值中看是否有代表相关进程的字符windows下代码如下:
  private void runOnce() {
    String s;
    s = "javaw.exe";
    try {
      java.io.BufferedReader id = new java.io.BufferedReader(new java.io.
          FileReader(ID_FILENAME));
      String ss = id.readLine();
      if (ss != null)
        s = ss;
      id.close();
    }
    catch (Exception e) {
      //System.out.println(e);
    }
    try {
      int i = 0;
      java.lang.Process p = java.lang.Runtime.getRuntime().exec("Tlist -s");      InputStream[] inStreams =
          new InputStream[] {
          h.getInputStream(), h.getErrorStream()};
      ConsoleTextArea cta = new
          ConsoleTextArea(inStreams);
      System.out.println(cta.toString());      java.io.BufferedReader in = new java.io.BufferedReader(new java.io.
          InputStreamReader(p.getInputStream()));      String ss = "";      while ( (ss = in.readLine()) != null) {
        if (ss.indexOf(s) != -1) {
          i++;
        }
      }
      in.close();      if (i > 1) {
        javax.swing.JOptionPane.showMessageDialog(this, "程序已经运行!");
        System.exit(0);
      }
    }
    catch (Exception e) {
      javax.swing.JOptionPane.showMessageDialog(this, "未找到Tlist程序或I/O错误!");
    }
  }