【问题标题】:Failed to access Java code from XUL/JavaScript无法从 XUL/JavaScript 访问 Java 代码
【发布时间】:2011-05-12 19:10:48
【问题描述】:

这是我的 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 文件:

函数显示(){ el = document.getElementById("text"); el.addEventListener("oncommand", display, true); //加载加密类 //警报('hffffi'); var myClass = cl.loadClass('ListFiles'); // 使用与上面相同的加载器 var myObj = myClass.newInstance(); // 传递您需要的任何参数(考虑到 LiveConnect 转换规则,它们将自动转换为 Java 形式) var 文件 = myObj.String; alert('karthik 它有效'+Files); document.getElementById("text").value=Files; }

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

谢谢大家。

【问题讨论】:

  • 请更正您的格式,我们可以帮助您
  • 我添加了更多信息。

标签: java javascript xul


【解决方案1】:

如果我理解正确,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; 

【讨论】:

  • 嗨,当你在 JS 中这样写时; var 文件 = myObj.getFiles();它没有执行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-19
  • 1970-01-01
  • 2013-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多