以前一直写web,现在要写一个后台程序. 然后自己写一个startup.bat(sh)来启动. 问题较多,请仔细看完1 startup.bat中写什么才能启动我的java程序,难道javac HelloWorld.java?
2 我的入口类是不是必须有main方法才行?网上有说run也可以,怎么实现?
3 后台程序是不是多用于定时任务?
4 以前也后台程序,都是在tomcat(比如)中加载的,比如多线程 quarts之类的. 独立的后台程序,木写过,给我思路或建议,什么都行
5 看公司前辈写的startup.bat的内容,最先运行的是哪个类?#!/bin/sh# -----------------------------------------------------------------------------
# Start Script for the Server# -----------------------------------------------------------------------------# resolve links - $0 may be a softlink
PRG="$0"while [ -h "$PRG" ] ; do
  ls=`ls -ld "$PRG"`
  link=`expr "$ls" : '.*-> \(.*\)$'`
  if expr "$link" : '/.*' > /dev/null; then
  PRG="$link"
  else
  PRG=`dirname "$PRG"`/"$link"
  fi
done
 
PRGDIR=`dirname "$PRG"`
EXECUTABLE=server# Check that target executable exists
if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then
  echo "Cannot find $PRGDIR/$EXECUTABLE"
  echo "This file is needed to run this program"
  exit 1
fi
exec "$PRGDIR"/"$EXECUTABLE" start "$@"

解决方案 »

  1.   

    最近我也在写一个后台同步刷新数据库的程序。我不会bat,就用jsp+ajax写了启动和停止的界面,控制后台的java线程。
      

  2.   

    放在webroot下自己建的包admin里,再用session弄个权限
      

  3.   

    昨天自己琢磨了一下,有点心得,共享如下.所谓非web程序,启动的入口不再浏览器中,在java xxx. 就像hello world程序一样.而这个方法,必然有main方法(网上还有人说run也可以,木有试过)而要把java命令卸载bat(sh)中,就可以当成应用发布了看看tomcat的启动main方法,运行这个main方法的命令当然在catalina.bat中.有兴趣搜索下Bootstrap类,反正bat的命令我是看不大太懂,sh的命令就更不懂了
    public static void main(String args[]) {  
            if (daemon == null) {  
                daemon = new Bootstrap();  
                try {  
                    daemon.init();  
                } catch (Throwable t) {  
                    t.printStackTrace();  
                    return;  
                }  
            }  
            try {  
                String command = "start";  
                if (args.length > 0) {  
                    command = args[args.length - 1];  
                }  
                if (command.equals("startd")) {  
                    args[0] = "start";  
                    daemon.load(args);  
                    daemon.start();  
                } else if (command.equals("stopd")) {  
                    args[0] = "stop";  
                    daemon.stop();  
                } else if (command.equals("start")) {  
                    daemon.setAwait(true);  
                    daemon.load(args);  
                    daemon.start();  
                } else if (command.equals("stop")) {  
                    daemon.stopServer(args);  
                } else {  
                    log.warn("Bootstrap: command /"" + command + "/" does not exist.");  
                }  
            } catch (Throwable t) {  
                t.printStackTrace();  
            }  
        }