java - 关于 JSP 和 Signed applet

标签 java jsp applet signed-applet

这是 JSP 页面小程序标记:

<applet code="localfile" width=150 height=150>
  <param name="archive" value="localfile.jar">
</applet>

小程序代码是:

package locf;

import java.applet.*;
import java.util.*;
import java.lang.*;
import java.io.*;


public class localfile extends Applet
{

    @Override
    public void init() {}

    @Override
public void start(){

        String s,uno,des = null;
        try {

            Process p = Runtime.getRuntime().exec("ipconfig/all");
            BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
            File outputFile = new File("/home/elie-m/NetBeansProjects/CMMAC/web/output.txt");
            FileWriter outt= new FileWriter(outputFile);
            System.out.println("MAC ADDRESS:\n");
            while ((s = stdInput.readLine()) != null) {

        Scanner par = new Scanner(s).useDelimiter("      Link encap:Ethernet  HWaddr ");
        if(s.startsWith("eth0"))
        {
        while(par.hasNext()){
        uno=par.next();
            des=par.next();
                outt.write(des);
                    }
        par.close();
        }

            }
            System.exit(0);
        }
        catch (IOException e) {
            System.out.println("exception happened - here's what I know: ");
            e.printStackTrace();
            System.exit(-1);
        }
    }
    @Override
public void stop() {}

}

当我启动 jsp 页面时出现此错误:

Reading certificates from 1580 http://localhost:8080/CMMAC/localfile.jar|/home/elie-m/.java/deployment/cache/6.0/18/57db752-3f3326e8.idx   
java.lang.NoClassDefFoundError:  localfile (wrong name: locf/localfile)     at 
java.lang.ClassLoader.defineClass1(Native Method)       at 
java.lang.ClassLoader.defineClass(ClassLoader.java:621)     at 
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)     at 
java.net.URLClassLoader.defineClass(URLClassLoader.java:260)    at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at  
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at
java.lang.reflect.Method.invoke(Method.java:597)    at          
sun.plugin2.applet.Plugin2ClassLoader.defineClassHelper(Plugin2ClassLoader.java:694)  
        at  
sun.plugin2.applet.Plugin2ClassLoader.access$400(Plugin2ClassLoader.java:63)    at 
sun.plugin2.applet.Plugin2ClassLoader$2.run(Plugin2ClassLoader.java:671)    at 
java.security.AccessController.doPrivileged(Native Method)      at     
sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Plugin2ClassLoader.java:633)      at
sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:100)    at
java.lang.ClassLoader.loadClass(ClassLoader.java:307)       at 
java.lang.ClassLoader.loadClass(ClassLoader.java:252)       at 
sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:433)     at 
sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:2880)    at 
sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1397) at
java.lang.Thread.run(Thread.java:619)
Exception:java.lang.NoClassDefFoundError: localfile (wrong name: locf/localfile)

在我接受使用小程序的权限问题后出现此错误。

我不知道将 .jar 和 .class 文件放在哪里,以便客户端可以使用小程序进行读取,而且我什至在两周的搜索中都无法解决该错误。如果需要,我可以提供项目中的整个目录文件夹/文件结构。只需询问您需要什么,我会将其粘贴到此处。

jar 已签名并且类已编译,但它似乎找不到我需要运行的小程序的类。我将 jar 和类文件放入 WEB-INF/classes/locf/和 build/web/文件夹中。我也将它们放在另一个 Web 文件夹中,即与 build 位于同一目录中的文件夹。

操作系统是linux ubuntu 9.10。

最佳答案

我从未从 JSP 运行过 applet,但我看到您的 Applet 位于名为 locf 的包中。错误 java.lang.NoClassDefFoundError: localfile (wrong name: locf/localfile) 表明 JAR 应反射(reflect)该目录结构。引用tutorial ,我期望这样的事情:

<applet
  code="locf.localfile"
  archive="localfile.jar"
  width="150" height="150">
</applet>

查看 jar tf localfile.jar 的结果可能会有所帮助。

此外,类名通常使用 CamelCase ,例如本地文件

关于java - 关于 JSP 和 Signed applet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1990262/

相关文章:

Java - 无法从网站获取 HTML 纯文本

java - 如何在java中为多行输入n个空格?

java - Struts - 异常 - 找不到 Struts 调度程序

java - 如果同一平台上有两个或多个不同的 jre 实现,会发生什么情况?

html - 为嵌入在 HTML 中的小程序设置策略

java - 如何在最新版本的 Eclipse IDE 中用 Java 创建小程序?

java - 不同尺寸手机上的正交相机屏幕

java - SQLCODE -181 日期时间值的字符串表示不是有效的日期时间值

java - JSP usebean 中的异常

Spring Boot JSP 未找到