JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java SE 討論區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 "在java中實作HotSwap的功能"這個話題的疑問...
hahawawa





發文: 50
積分: 0
於 2005-01-12 00:10 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
小弟我在 "在java中實作HotSwap的功能" 這篇話題看了HotSwap的程式之後自己動手測試,結果發現這個程式如果改成如下就不會重新載入了 :

新增了JOptionPane.showConfirmDialog(new JFrame(),"test");這一行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import java.net.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
import javax.swing.JOptionPane;
public class Main{
  File classpath; 
  long timestamp;
  Runnable task;
       
  public Main(File classpath){
    timestamp = 0;
    this.classpath = classpath;
    try{        
      while(true){       
                                JOptionPane.showConfirmDialog(new JFrame(),"hahawa");
        long lastModified = checkLastModified(classpath);
        System.out.println(new Date(lastModified));
        if(timestamp < lastModified){                    
          System.out.println("load class");
          ClassLoader loader = new URLClassLoader(new URL[]{classpath.toURL()});
          task = (Runnable)loader.loadClass("haha").newInstance();                    
          timestamp = System.currentTimeMillis();    
        }
        Thread.sleep(1000);
        task.run();
      }
    }catch(Exception e){
      e.printStackTrace();
    }        
  }
    
  private long checkLastModified(File file){        
    if(file.isFile()){
      return file.lastModified() ;
    }else if(file.isDirectory()){
      long last = file.lastModified();
      File[] files = file.listFiles();
      for(int i=0; i<files.length; i++){
        last = Math.max(last, checkLastModified(files[i]));
      }
      return last;
    }else{
      return 0;
    }
  }
    
  public static void main(String[] args) throws Exception{        
    File classpath = new File("hgh/");
    new Main(classpath);        
  }
}


請問為什麼加上對話框那一行的程式就不行了呢???Question


reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
1191 "在java中實作HotSwap的功能"這個話題的疑問... hahawawa 1645 2005-01-12 00:10
1039 Re:"在java中實作HotSwap的功能"這個話題的疑問... hahawawa 43 2005-01-12 00:56
» JWorld@TW »  Java SE 討論區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8