Java 为什么';我的小程序工作中没有CSV文件吗?
我创建了一个小程序,它需要一个CSV文件作为信息。小程序的工作方式是,在一个文本字段中键入邮政编码,然后按下按钮。这会导致程序解析包含纬度和经度的CSV文件,然后在小程序中的Java 为什么';我的小程序工作中没有CSV文件吗?,java,html,csv,applet,Java,Html,Csv,Applet,我创建了一个小程序,它需要一个CSV文件作为信息。小程序的工作方式是,在一个文本字段中键入邮政编码,然后按下按钮。这会导致程序解析包含纬度和经度的CSV文件,然后在小程序中的JLabel上显示纬度和经度 当我创建它时,我调试并测试了它,所以我知道它在我的桌面上工作(在eclipse中运行时)。问题是当我在网络上输入时,它会显示但不能做任何事情,这意味着它只是一个带有文本字段和按钮的小程序,但当你按下按钮时,什么也不会发生。我知道它不是我的ActionListener,因为它在桌面上工作,但我肯定
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>
修订:
有人向我推荐的另一件事是创建一个php脚本来解析csv文件,然后让它向java小程序返回一个值。我对PHP ls的了解有限,因此我想知道是否有人可以告诉我如何进行这项工作,或者告诉我在哪里可以学习如何进行这项工作。
我的水晶球告诉我,CsvReader
假定字符串
表示一个文件
对象。它还可能有另一个接受URL
的构造函数
沙盒小程序无法访问文件
对象,受信任的小程序只能访问最终用户计算机上的文件
对象。这对这个小程序是无用的。如果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。一个不是由业余爱好者编写的程序。您正在检查Java控制台的输出吗?您正在尝试将ZIP作为ZIP文件加载吗?你有一个我们可以看到小程序失败的URL吗?CSV文件被加载到类中并打包到Jar文件中。它使用CsvReader产品=新CsvReader(“zips.csv”);为了加载它,问题1和3的答案是什么?我不想问两次。不幸的是,由于客户要求匿名,我无法给出创建网站的URL。您所说的java控制台是什么意思?如果你说的是eclipse中的一个,它工作得很好,但是正如你所说的,它在桌面上和在线上是不同的。“你说的java控制台是什么意思?如果你说的是eclipse中的一个,…”问问你自己——为什么我要在它工作的环境中提示你一个控制台?不,我指的是Java控制台,不是Eclipse控制台。1) 打开2)关闭缓存查看器3)转到高级选项卡4)展开“Java控制台”叶5)选择“显示控制台”6)刷新页面或重新启动浏览器。确定后,我在线程“AWT-EventQueue-14”Java.security.AccessControlException:access denied(Java.io.FilePermission zips.csv read)中遇到异常
我希望看到字符串
构造函数的ACE,但对于来自小程序运行时类路径上的资源的InputStream
或URL
它不会这样做。顺便说一句-很高兴你找到了(Java)控制台。IDE通常在没有安全管理器的情况下运行小程序,但一旦它进入浏览器,安全管理器将“免费”提供
URL url = this.getClass().getResource("zips.csv");
//CsvReader products = new CsvReader(url);
InputStream is = url.openStream();
CsvReader products = new CsvReader(is);