签署一个导致问题的罐子

时间:2011-01-17 06:33:06

标签: java applet signed-applet

我在applet中有以下代码,基本上将一些数据写入作为参数传递给writeFile方法的文件()

public class appletToWrite extends Applet{
public int writeFile(String asPath, String asData, int aiOverwrite)
{
    int j = JOptionPane.showConfirmDialog(null,asPath+ "testing gng on", "data mil gaya!!!", 0);
    try {
        File localFile = new File(asPath);
        if (localFile.exists()) {
            if(aiOverwrite==1){
                localFile.delete();
                j =JOptionPane.showConfirmDialog(null,"overwrite = 1", "data mil gaya!!!", 0);
            }
            else{
                j = JOptionPane.showConfirmDialog(null, "overwrite = 0", "data mil gaya!!!", 0);
                return 0;
            }
        }
        j = JOptionPane.showConfirmDialog(null, "niche aa gaye", "data mil gaya!!!", 0);
        localFile.createNewFile();
        BufferedWriter localBufferedWriter = new BufferedWriter(new FileWriter(localFile, true));
        String str1;
        localBufferedWriter.write(asData);
        localBufferedWriter.close();
        return 1;
    }
    catch (Exception localException) {
        j = JOptionPane.showConfirmDialog(null, "catch mein aa gaya "+localException.getMessage(), "data nahi gaya!!!", 0);
        localException.printStackTrace();
        return 0;
    }
}
}

我使用以下命令自我签名了

javac appletToWrite.java
jar cvf AppletClass.jar *.class
keytool -genkey -validity 3650 -keystore pKeyStore -alias formBuilder
keytool -selfcert -keystore pKeyStore -alias formBuilder -validity 3650
jarsigner -keystore pKeyStore AppletClass.jar formBuilder

但仍然没有获得在本地计算机上写文件的所有权限我得到文件权限否认任何想法为什么?

3 个答案:

答案 0 :(得分:0)

问题可能是签名小程序不允许访问所有内容。取决于您的浏览器JRE设置。默认设置在JRE中定义(在JRE文件夹中搜索属性文件 - 其中一个定义它)。但浏览器可以覆盖它。

尝试在用户主文件夹中创建文件。

答案 1 :(得分:0)

如果以下两种情况都属实 - 我建议采用完全不同的方法。

  • 档案 服务(沙盒)演示 适用于您的用例。
  • 用户 可以预期运行Java 1.6.0_10 +(新一代插件)。

链接演示。 (由我编写)是沙盒,只有当用户打开文件时,JRE才会询问他们是否要给予许可。

没有必要对沙盒代码进行数字签名。

自新一代插件以来,演示中使用了JNLP API。可以通过嵌入在网页中的小程序访问。可以在GIFanim applet中看到一个例子。

答案 2 :(得分:0)

感谢回复 得到答案myslef实际上是在applet允许的权限只有来自外部世界的电话不让我获得权限。我正在使用javascript打电话,并希望获得权限