用线程实现,这是需要结束的线程
package info.bioz.samples;
/**
 * <p>File: TargetThread.java</p>
 * <p>Description: </p>
 * <p><a href="http://www.bioz.info/">BIOZ.info</a> Copyright (c) 2004</p>
 *
 * @author <a href="mailto:[email protected]">Chance</a>
 */
public class TargetThread extends Thread{
    boolean goToDie;
    public TargetThread(String threadName){
        super(threadName);
    }
    public synchronized void run(){
        int i=9;
       while(!goToDie){
           System.out.println(getName()+">>dying>>"+i);
           //do something here
           i--;
           if(i<0) { //如果条件合适,则设置标记为true,导致循环结束
               goToDie=true;
           }
       }
    }
}

解决方案 »

  1.   

    这个是管理的线程
    package info.bioz.samples;
    /**
     * <p>File: Killer.java</p>
     * <p>Description: </p>
     * <p><a href="http://www.bioz.info/">BIOZ.info</a> Copyright (c) 2004</p>
     *
     * @author <a href="mailto:[email protected]">Chance</a>
     */
    public class Killer {
        public static void main(String[] args) {
            int i=0;
            Thread t=new TargetThread("T"+i);
            t.start();
            while(t.isAlive()){ 
            try {
                t.join(); //等待t结束
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            i++;
            t=new TargetThread("T"+i);
            t.start();
            }
        }
    }
      

  2.   

    我的意思是运行java 1.class (持续运行),出现cmd窗口1;
    如何运行java 2.class,关闭掉窗口1,而2.class的运行窗口还继续存在;
    想讨论的是java程序的结束;
    你的方法是关于线程的结束,也很重要。线程类的结束也有很多种方式,但如何做到实时,或尽量少时间呢?
      

  3.   

    在windows中要对一个程序操作也要至少知道这个程序的句柄
    而你java2要想关掉java1,如果不考虑测试条件的话,至少也要检测到java1的线程
    可以考虑System.getSecurityManager().getThreadGroup(),
    不过不能保证能取得java1的控制权
      

  4.   

    试试这个行不行啊!
    import java.io.*;public class RunText
    {
        public static void main(String[]args)
        {
         if(args.length == 0)
         {
             System.out.println("请输入正确的文本文件路径!");
             return;
         }
         String path = args[0];
         try
         {
             Runtime.getRuntime().exec("cmd /c start dir");
         }
         catch(IOException e)
         {
             e.printStackTrace();
         }
        }
    }
      

  5.   

    在1.java里运行一个serversocket线程来监听某个端口,2.java里运行socket客户端线程,在客户端线程运行后发送一个命令到1.java的serversocket线程,1.java收到命令后中止1.java主程序,2.java也可以关闭socket客户端线程,但其主程序依然运行,不受影响。