无法从XUL / JavaScript访问Java代码

时间:2011-05-11 07:46:57

标签: java javascript xul

这是我的java文件:

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; 
}

说明: 我正在尝试将java的ouptput字符串放入我的JS中。我可以使用XUL Firefox中的Live connect连接JAVA和JS。 现在的问题是,如何在我的JS文件中显示java的输出。

谢谢你们。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,var Files = myObj.String;应该返回Java程序的输出?!

我对LiveConnect的了解不多,但我更期望ListFiles类有一个返回列表的方法。目前它只读入一个局部变量(并且无论如何都不会在LiveConnect设置中自动调用main()。)

那么如下:

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;