比如我写一个java类
class A{
   public static void main(String[] args){
      System.out.println("1");
      Thread.sleep(5000);
      System.out.println("2");
      Thread.sleep(5000);
   }
}
一个很简单的类,打印“1”,停五秒,打印“2”,停五秒,结束
现在我把这个类打在一个jar包里(jar只有这一个文件),然后把jar的.MF文件,中main指向这个类的main函数然后我双击这个可运行的jar文件,没有任何反映我希望是这样的效果,我双击这个文件,然后弹出cmd窗口,打印“1”,“2”,10秒后随java进程自动关闭,如果在打印中途
点击了窗口上的小叉子,也可以强行结束执行了一半的java进程可能直接点击jar文件不可行,也许需要写一个.bat脚本来实现,但是这个脚本不知道怎么写这是实验是这个意思,模拟tomcat的catalina.bat运行bootStart.java文件中的main函数,然后程序输出都打印到窗口

解决方案 »

  1.   

    catalina.bat 里面的echo命令是用来在命令行上面回显的
    System.out.println("test");输出的结果在标准输出上,也就是我们说的控制台上
    如果换成echo估计就可以了,具体实现我在想想
    换个小程序试试,直接可以在桌面上显示出来
    ---TestFrame.java-----
    import java.awt.*;public class TestFrame {
    public static void main(String[] args) {
    new _test().launcher();
    }}class _test extends Frame {
    String str1 = "111111111111111"; public void launcher() {
    setBounds(200, 200, 400, 400);
    setVisible(true);
    } public void paint(Graphics g) {
    g.drawString(str1, 230, 300);
    }
    }
      

  2.   


    非也非也,用GUI做是多大的工作量啊,如果做一个类似tomcat的工具,根本没必要把输出在GUI上打印出来,因为没必要,TOMCAT又不是针对用户群的,系统维护人员一人用就够了,所以简单的println,简单的cmd窗口打印即可,如果用GUI这里解决了,相关联的一大堆可能出现的需求就没边了。。
      

  3.   

    考虑用 echo
    不过我还没有实现
      

  4.   

    echo是回显的没错,但是echo打印的是在.bat文件里写的静态语句,并不是由程序本身print出来的,其实System.out.println()中,后台有个FileDescriber还是什么的屏蔽底层System.out的输出差异,比如说java platform默认打印到cmd console,applet打印到小程序窗口,和IDE集成的jdk打印到IDE的console里,所以从IDE里开发的java类,拿到platform上运行是可以打印到cmd console里的,但是现在就是怎么留住cmd console不消失的问题
      

  5.   

    问题解决了 
    其实我走了弯路,哎,不说了 直接给答案
    ---------
    保证在同一个目录下面建立一个.bat文件,内容为
    java -cp test.jar Test:END
    其中test.jar是你要运行的jar文件,Test是指定定MainClass,不指定MainClass是会报错的
    然后直接运行就可以了
    .bat文件就是将命令行上的命令做成一个包,然后一直执行