我构建了这个处理文件的程序。因为我是为 friend 制作的,所以我将其制作成 Java Web Start 应用程序,并配有 JNLP 文件。
当我在没有 JNLP 的情况下通过 ANT (netbeans) 启动应用程序时,它工作得很好。但是,当通过 JNLP(甚至通过 netbeans)启动时,本应执行所需操作的按钮却什么也不做(它只是保持在“单击”模式,直到您将鼠标悬停在远离它的位置)。
我花了几个小时试图找出问题所在,但没有成功。
这是有问题的方法:
public void copy(String path1, String path2) 抛出 IOException {
File inputWorkbook = new File(inputFile);
Path in = Paths.get(path1);
Path out = Paths.get(path2);
Workbook w;
try {
w = Workbook.getWorkbook(inputWorkbook);
.
.
.
如果我不尝试对 inputWorkbook 文件执行任何操作,则一切正常。一旦我尝试对其执行任何类型的方法(例如 w = Workbook.getWorkbook(inputWorkbook),甚至 inputWorkbook.exsists();),就会出现问题。它甚至不会抛出异常,它只是不执行任何操作...同样,该问题仅在通过 JNLP 文件启动程序时出现。
我希望我能够解释这个问题......我是编程新手。
谢谢!!!
亚当
最佳答案
Webstart 应用程序在安全沙箱中运行,这会阻止访问文件系统。您需要对 har 进行数字签名才能访问文件系统,或者使用文件打开 api。请参阅http://download.oracle.com/javase/6/docs/technotes/guides/javaws/developersguide/faq.html#302和 http://download.oracle.com/javase/6/docs/technotes/guides/javaws/developersguide/examples.html#FileOpenService了解更多信息。
关于java - 文件操作在 Java Web Start 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7908783/