我写了一个很简单的GUI程序,但是发现内存占用高达18MB,而且多启动几个的话,每个程序的内存占用都是18MB,请问能不能使这些GUI程序使用同一个虚拟机,以节省内存占用。

解决方案 »

  1.   

    写到同一个主函数中,比如多线程实现。public static void main(String[] args){
       GUIThread[] threads = new GUITgread[10]
       for(int i =0 ; i< 10; i++){
           threads[i] = new GUIThread
       }
        
       for(int i =0 ; i< 10; i++){
           threads[i].start();
       }}
      

  2.   

    你说的这个方法肯定可行,但是我需要的是任意多个java程序同时使用一个java虚拟机,而不是一个虚拟机同时执行几个线程!
      

  3.   

    不懂你的意思,建议你看看inside JVM。呵呵
      

  4.   

    一个JVM执行多个进程?似乎没有这样的方法?线程的话很正确!学习
      

  5.   

    大家好,我是个学生,刚刚接触JAVA.
    我把java sdk1.4.2安装在F:\j2sdk1.4.2下,我想知道.我怎么才能正确的编译一个java程序.比如说我编写的程序如下:
      import java.awt.*;
    class myframe extends Frame {
        static int x=0,y=120;
    static int i=0;
    static int horizScroll=1; Font fb = new Font ("TimesRoman",Font.BOLD,36);
    String msg[]={"Java","Portable","Secure","Easy"};
    Color color[]={Color.blue,Color.yellow,Color.green,Color.red}; public void paint (Graphics g) {
    g.setFont(fb);
    g.setColor(color[i]);
    g.drawString(msg[i],x,y);
    }
    static public void main (String s[]) throws Exception {
    myframe mf = new myframe();
    mf.setSize(200,200);
    int pixelsPerLine=200,totalLine=4;
    mf.setVisible(ture);
    for (int j=0;j<pixelsPerLine*totalLines;j++){
    Thread.sleep(25);
    mf.repaint();
    if (horizScroll==1){
    if((x+=3)<200)continue;
    i=++i%4;
    x=50;y=0horizScroll=0;
    }else{
    if((y+=3)<200)continue;
    i=++i%4;
    x=0;y=120;horizScroll=1;
    }
    }
    System.exit(0);
    }
    }我在DOS提示符中输入javac myframe.java 命令
    可是,提示说
    'javac' 不是内部或外部命令,也不是可运行的程序
    或批处理文件。
    请问我怎么才能正确的编译这个程序??
    我怎么才能PATH什么的??
    你能告诉我吗?谢谢!
      

  6.   

    好象多个Java程序是共享一个JVM的吧
      

  7.   

    人家要把所有的Java 的API Lib都要读到内存中,自然需要比较大了。
    而Windows程序则是使用得Windows自身的API,这些API虽然占内存,不过不会表现在应用程序所占的内存中,而是在操作系统所占的内存中了
      

  8.   

    那个要问设置路径的可以去www.chinajavaworld.com的初级版看看,很清楚