我正在使用 java 小程序来选择一个 gml 文件并使用 xsd 方案对其进行验证。
String selectedPath;
FileDialog selectFileDialog;
private String ShowFileDialog(String title, String extension) {
selectFileDialog.setFile(extension);
selectFileDialog.setTitle(title);
selectFileDialog.setVisible(true);
if (selectFileDialog.getFile() == null)
return null;
return selectFileDialog.getDirectory() + selectFileDialog.getFile();
}
public void SelectFile(){
selectedPath = ShowFileDialog("Select file", "*.gml");
}
public void ProcessFile(){
InputStream inputStream = new FileInputStream(new File(selectedPath));
InputSource inputSource = new InputSource(inputStream);
//... sending file to sax parser
}
GUI 仅包含两个调用这些函数的 java.awt 按钮。
Manifest.MF 文件包括
权限:所有权限
由于权限问题,我还签署了 jar 文件。所以毫无疑问它正在工作。
但问题是,当我从 javascript 触发这些(公共)函数时,它会引发以下异常
//This functions is working properly, shows FileDialog and selecting file
document.applets[0].SelectFile();
//This function throws exception.
//Instead of clicking this button i can click java gui button and execute function properly
document.applets[0].ProcessFile();
access denied ("java.io.FilePermission" "blablafile.gml" "read")
我问这个是因为我不想使用 java gui 元素,我必须从纯 HTML 元素触发这些事件。