【问题标题】:Why doesn't the CSV file in my applet work?为什么我的小程序中的 CSV 文件不起作用?
【发布时间】:2011-11-11 12:53:37
【问题描述】:

我创建了一个需要 CSV 文件来获取信息的小程序。小程序的工作方式是有一个文本字段,您可以在其中输入邮政编码,然后按一个按钮。这会导致程序解析包含纬度和经度的 CSV 文件,然后在小程序中的 JLabel 上显示纬度和经度。

当我创建它时,我对其进行了调试和测试,所以我知道它可以在我的桌面上运行(在 eclipse 中运行时)。问题是当我在网络上输入时,它显示但不能做任何事情,这意味着它只是一个带有文本字段和按钮的小程序,但是当你按下按钮时,什么也没有发生。我知道这不是我的ActionListener,因为它可以在桌面上运行,但我一定是对它的 HTML 做错了。 CSV 文件的名称是zips.csv。主类名称为main.class(或main.java),动作监听器为myActionListener.class(或myActionListener.java)。

这是我现在使用的 HTML:

<applet archive="sites/default/files/myApplet.jar" code="main.class" width="500" height="200"> 
</applet>

修订:

其他人向我推荐的其他方法是创建一个解析 csv 文件的 php 脚本,然后让它返回一个值给 java 小程序。我对 PHP 的了解有限,所以我想知道是否有人可以告诉我如何才能做到这一点,或者告诉我在哪里可以学习如何做到这一点。

【问题讨论】:

  • 您是否正在检查 Java 控制台的输出?您是否尝试将 ZIP 作为 Zip 文件 加载?你有一个我们可以看到小程序失败的 URL 吗?
  • CSV 文件在类中加载并打包到 Jar 文件中。它使用 CsvReader products = new CsvReader("zips.csv");为了加载它
  • 问题 1 和 3 的答案如何?我不喜欢问两次。
  • 很遗憾,因为客户希望匿名,所以我无法提供创建网站的 URL。 java控制台是什么意思?如果您说的是eclipse中的那个,它可以完美运行,但是正如您所说,它在桌面上与在线上是不同的。
  • “你所说的 java 控制台是什么意思?如果你说的是 eclipse 中的那个,..” 问问自己——我为什么要提示你控制台在它工作的环境中?不,我的意思是 Java 控制台——不是 Eclipse 控制台。 1) 打开Java Control Panel 2) 关闭缓存查看器 3) 转到“高级”选项卡 4) 展开“Java 控制台”叶子 5) 选择“显示控制台” 6) 刷新页面或重新启动浏览器。

标签: java html csv applet


【解决方案1】:
CsvReader products = new CsvReader("zips.csv");

我的水晶球告诉我CsvReader 假定String 代表File 对象。它可能还有另一个接受URL 的构造函数。

沙盒小程序无法访问File 对象,受信任的小程序只能访问最终用户计算机上的File 对象。这对这个小程序毫无用处。如果 API 有一个接受 URL 的构造函数,那就是这里要使用的构造函数。比如:

URL url = this.getClass().getResource("zips.csv");
//CsvReader products = new CsvReader(url);
InputStream is = url.openStream();
CsvReader products = new CsvReader(is);

接受InputStream 的构造函数更加通用,而且只长了一行。

如果CsvReader 既不接受URL 也不接受InputStream,我建议你找另一个API。一本不是由业余爱好者编写的。

【讨论】:

  • 好的,我收到了Exception in thread "AWT-EventQueue-14" java.security.AccessControlException: access denied (java.io.FilePermission zips.csv read)
  • 我希望看到String 构造函数的ACE,但是对于来自applet 运行时类上的资源的InputStreamURL 不会这样做-小路。顺便说一句 - 很高兴你找到了(Java)控制台。 IDE 通常会在没有安全管理器的情况下运行小程序,但一旦它在浏览器中,安全管理器将“免费”提供。 ;)
猜你喜欢
  • 1970-01-01
  • 2020-09-15
  • 2012-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-17
  • 1970-01-01
  • 2018-01-29
相关资源
最近更新 更多