2011-05-11 54 views
0

訪問Java代碼,這是我的java文件:無法從XUL/JavaScript的

import java.io.File; 
import java.lang.String; 
public class ListFiles { 
public static void main(String[] args) { 

    // Directory path here 
    String path = "D:/xmlfiles/"; 

    String files; 
    File folder = new File(path); 
    File[] listOfFiles = folder.listFiles(); 

    for (int i = 0; i < listOfFiles.length; i++) { 
    if (listOfFiles[i].isFile()) { 
     files = listOfFiles[i].getName(); 
     System.out.println(files); 

     } 
    } 
    } 
} 

這是我的JS文件:

 
function display(){ 

el = document.getElementById("text"); 
el.addEventListener("oncommand", display, true); 
//loading Encryption Class 

//alert('hffffi'); 

var myClass = cl.loadClass('ListFiles'); // use the same loader from above 

var myObj = myClass.newInstance(); 


// Pass whatever arguments you need (they'll be auto-converted to Java form, taking into account the LiveConnect conversion rules) 
var Files = myObj.String; 


alert('karthik it works'+Files); 

document.getElementById("text").value=Files; 
} 

說明: 我試圖讓ouptput串的Java到我的JS。我可以使用XUL Firefox中的實時連接將JAVA與JS連接起來。 現在的問題是,如何在我的JS文件中顯示java的輸出。

謝謝你們。

+0

請糾正您的格式,我們可以幫你 – Grooveek 2011-05-11 07:58:47

+0

我有增加了更多信息。 – user838691 2011-05-11 09:14:32

回答

0

如果我理解正確,var Files = myObj.String;應該返回Java程序的輸出?!

我不知道LiveConnect的那麼多,但我更期望ListFiles類有一個返回列表的方法。目前它只讀入本地變量(並且main()不會在LiveConnect設置中自動調用)。

因此,如何是這樣的:

public class ListFiles { 
    public: 
    String getFiles() { 
     String result = ""; 
     // [iterate over the files and add their names to result] 
     return result; 
    }  
} 

而在JS代碼:

var Files = myObj.getFiles(); 

,而不是

var Files = myObj.String; 
+0

嗨,當你把這樣的JS放在; var Files = myObj.getFiles();它沒有執行。 – user838691 2011-05-12 12:33:17