1. 打开控制台,看看 applet 运行时输出 log 情况,看看到底发生了什么;
2. applet 是不是没有权限读写文件?用 PrivilegedAction,这里有个小例子:
/**
 * added by Defonds
 * @param filesInfo
 * File Name1|File Flag Public1|File Document Language1|File Description1|File Operating System1|File Store1|File Title1|File Flag Exp1
 */
public void addFileInfomation(String filesInfo,String directoryInfo,String formatInfo){

System.out.println("the file info str gived to applet is:" + filesInfo);
String fileName = "",fileFlagPublic = "",fileDocomentLanguage = "",fileDescription = "",
fileOperatingSystem = "",fileStore = "",fileTitle = "",fileFlagExp = "";

String[] filesInfoArr = filesInfo.split("|");
if(filesInfoArr.length > 0){
fileName = filesInfoArr[0];
fileFlagPublic = filesInfoArr[1];
fileDocomentLanguage = filesInfoArr[2];
fileDescription = filesInfoArr[3];
fileOperatingSystem = filesInfoArr[4];
fileStore = filesInfoArr[5];
fileTitle = filesInfoArr[6];
fileFlagExp = filesInfoArr[7];
}

java.io.File checkinFile = new java.io.File(directoryInfo);
FileInfo file = new FileInfo(checkinFile);
file.setFileStore(fileStore);
file.setFormat(formatInfo);
file.setFileFlagPublic(fileFlagPublic);
file.setFileFlagEXP(fileFlagExp);
file.setFileDocumentLanguage(fileDocomentLanguage);
System.out.println("applet-filename=" + file.getFileName());

addFile(file);
System.out.println("a file added successfully!");
}

/**
 * @added by Defonds
 * @param directoryStr
 * D:/tmp/tmp/AppDevGuide1071.pdf@@@D:/tmp/tmp/AppDevGuide1072.pdf@@@...
 * @return
 * D:/tmp/tmp/AppDevGuide1071.pdf@@@D:/tmp/tmp/AppDevGuide1072.pdf...
 * @note
 * only return the directories which are valid
 */
public synchronized String directoryValid(String directoryStr){

System.out.println("the file directory info give to applet is:" + directoryStr);
_fileValidStr = directoryStr;

FileValidRunner runner = new FileValidRunner();
        AccessController.doPrivileged(runner);


System.out.println("applet return value is:" + _fileValidStrRe);
return _fileValidStrRe;
}

/**
 * @author defonds
 */
class FileValidRunner implements PrivilegedAction { public Object run() {
String[] direArrs = _fileValidStr.split("@@@");
if(direArrs.length > 0){
for(int i = 0;i < direArrs.length;i ++){
String tmpName = direArrs[i];
java.io.File tmpFile = new java.io.File(tmpName);
if(tmpFile.exists()){//only return the directories which are invalid
if(_fileValidStrRe.equals("")){//the first one
_fileValidStrRe = tmpName;
}else{//not the first one
_fileValidStrRe += "@@@" + tmpFile;
}
}
}
}
return null;
} FileValidRunner() {
}
}

解决方案 »

  1.   

    谢谢您的回答。 不好意思。我对java还不太了解。 请问您说的控制台是在eclipse里面吗?
      

  2.   

    Defonds 方便留一下QQ号码?
      

  3.   

    我现在也在弄applet 签名 你会吗 我了解java QQ1057138131
      

  4.   

    不是 Eclipse 控制台。是 applet 运行时的控制台。在 applet 运行的时候,会弹出 java 图标在 windows 桌面任务栏,单击任务栏,你可以看到运行时的输出信息。
    就在这里讨论吧,让大家都能看到你的问题,肯定可以遇见一个能帮到你的。
      

  5.   

    我现在创建了2个项目,第一个项目签名成功了。 在本地创建了一个txt文件,第二个项目是需要引用第三方的包。功能是读取注册表。 但是这个就签名不成功。 我签名的方式是一样的。 import java.applet.*;
    import java.awt.*;
    import com.ice.jni.registry.*;
    public class AppletCallJs extends Applet { public void paint(Graphics g) {
    g.drawString("ok1", 2, 20);
    try {
    RegistryKey software = Registry.HKEY_CURRENT_USER
    .openSubKey("Software");
    g.drawString("ok2", 2, 40);
    RegistryKey ConKey = software.openSubKey("Continuum Data Systems");
    g.drawString("ok3", 2, 60);
    RegistryKey IvoSystem = ConKey.openSubKey("IvoSystem");
    g.drawString("ok4", 2, 80);
    String subKey1Value = IvoSystem.getStringValue("key0");
    g.drawString("ok5", 2, 100);
    g.drawString(subKey1Value, 2, 120);
    g.drawString("ok6", 2, 140);
    IvoSystem.closeKey();
    } catch (NoSuchKeyException e) {
    g.drawString(e.getMessage(), 2, 160);
    e.printStackTrace();
    } catch (RegistryException e) {
    g.drawString(e.getMessage(), 2, 180);
    }
    } public String GetStr() {
    return "ok";
    }
    }
    这个是的代码。 
    4楼的朋友你有时间去看看http://www.cnblogs.com/tqsummer/archive/2011/01/19/1939013.html这个文章,我就是按照这个文章去学的。 里面的流程可以成功。 你试试。 要是有问题在说