比如我一个程序叫做 csdn.jar
一般启动命令是
java -jar csdn.jar
可是我如果要关闭这个程序,有没有什么参数或者安全的关闭方法,最好不要杀进程之类的

解决方案 »

  1.   

    ctrl + c 就能停止执行吧,你试试看
      

  2.   

    桌面程序的话,点X就关掉了。
    DOS状态你得自已写代码退出,或CTRL C
      

  3.   

    参考一下tomcat的startup.sh和shutdown.sh
      

  4.   

    不好意思,忘了在引用代码里一敲回车就发送了
    BufferedReader reader = 
                new BufferedReader(
                        new InputStreamReader(System.in));
            
            while(true) {
                if(reader.readLine().equals("exit")) {
             System.out.println("battle cancel terminate...");
             break;
                } 
            }
      

  5.   


    首先,谢谢你的代码,这个csdn.jar 使用 java -jar 方法启动的,我是想知道有没有比如  java -stop csdn.jar  这类似的命令,
    你的意思是不是重新写个 stopcsdn.jar 之类的文件结束 csdn.jar 文件?
      

  6.   

    通常是这样:
    public static void main(String arg[]){
        if("start".equals(arg[0])){
            //启动
        }
        else if("stop".equals(arg[0])){
            //停止
             ....
            System.exit();
        }}然后编写bat或sh批命令,用于按参数执行操作
    if ""%1"" == ""start"" goto doStart
    if ""%1"" == ""stop"" goto doStop:doStart
    java -jar csdn.jar start:doStop
    java -jar csdn.jar stopsh语法和bat稍有不同这样,就可能通过bat或sh实现带参数式的启动或停止程序了。
    csdn.bat -start
    csdn.bat -stop
      

  7.   

    像 denghan 所说,TOMCAT的startup.bat和shutdown.bat都是调用%CATALINA_HOME%\bin\catalina.bat,只是有不同参数罢了.startup.bat
    set EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat
    call "%EXECUTABLE%" start %CMD_LINE_ARGS%shutdown.bat
    set EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat
    call "%EXECUTABLE%" stop %CMD_LINE_ARGS%
      

  8.   

    程序启动后,可以监听一个端口,当参数是STOP时向这个端口发送一个EXIT消息.
      

  9.   

    Linux下 Java应用程序启动 和 关闭脚本start.sh文件:#!/bin/bashCLASSPATH=/root/java/javalib/sms.jar:/root/java/javalib/oracle9.2i.jar:/root/java/javalib/activation.jar:/root/java/javalib/mail.jar:/root/java/javalib/log4j-1.2.8.jar:/root/java/javalib/joda-time-1.0.jar:/root/java/javalib/commons-logging-1.0.4.jar:/root/java/javalib/axis-ant.jar:/root/java/javalib/axis.jar:/root/java/javalib/commons-discovery-0.2.jar:/root/java/javalib/jaxrpc.jar:/root/java/javalib/saaj.jar:/root/java/javalib/ant.jar:/root/java/javalib/xmlsec-1.2.1.jar:/root/java/javalib/wsdl4j-1.5.1.jar:/root/java/javalib/commons-collections-3.1.jar:/root/java/javalib/commons-dbcp-1.2.1.jar:/root/java/javalib/commons-pool-1.2.jar:/root/java/javalib/unittest.jar:/root/java/javalib/asrt.jar:/root/java/javalib/junit.jar
    java -cp "$CLASSPATH" cn.com.sendSms > console.log & echo $! > sendSms.pid &stop.sh文件:#!/bin/bashcat sendSms.pid | xargs kill -9