繁体   English   中英

如何将Java嵌入HTML页面

[英]How to embed java into HTML page

使用<applet>标签使Java程序在Web浏览器中运行时,似乎出现了问题。

这是我导入java .class的代码:

<applet code="Userid.class"width="740" height="400"></applet>

出于某种原因,我不断收到错误消息,提示“ NoClassDefFoundError Userid(错误的名称:userid / Userid)”

如果这是问题之一,则Java程序本身不是图形的。 以防万一,这是我的Java应用程序源代码:

package userid;
import java.util.Scanner;
import java.io.BufferedWriter;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.FileReader;
import java.io.Writer;
import java.io.File;
import java.io.IOException;

public class Userid {

public static void main(String[] args) {
    Scanner in = new Scanner (System.in);
    String userid = in.nextLine();
    try{
        File users = new File(userid+".txt");
        BufferedWriter output;
        output = new BufferedWriter(new FileWriter(users, true));
        output.newLine();
        output.append(userid);
        output.close();
        new File(userid).mkdirs();
        System.out.println("> New user " +userid+ " has been added.");
        System.out.println("> Please use this name everytime you use Oswald.");
    }
    catch (IOException e) {                
    }
}    
}

该程序可以在NetBeans中正常运行,并且.class与HTML文件位于相同的目录中。 我可能在这里做错了吗? 谢谢!

一个问题是该类没有从java.applet.Applet类扩展。 为此,您需要import java.applet.Applet ,然后将类定义更改为:

public class Userid extends Applet {

但是,就像前面提到的那样,您的程序不是编写为applet,而是编写为与命令行一起使用,因此是System.in和System.out流。 我不会质疑您决定编写applet的决定,即使它们(如chrylis所说)已经过时了,因为它们是练习Java技能的好方法,尤其是在使用图形界面时。

这是帮助您开始使用applet的资源: http : //java.about.com/od/webapplications/ss/firstapplet.htm

就您的Java代码而言。 那里没有大问题。 它可以作为独立程序正常运行。 但是,问题在于小程序

根据W3C,applet标签已过时( 请查看此处以获取更多信息

早期版本的HTML允许作者包括图像(通过IMG)和小程序(通过APPLET)。 这些元素有几个限制:

他们无法解决关于如何包括新的和将来的媒体类型的更普遍的问题。 APPLET元素仅适用于基于Java的小程序。 不推荐使用此元素,而推荐使用“对象”。 它们带来了可访问性问题。

尽管有其他替代方法,例如DeployJava.js的Deployment Tool Kit,它可能使您可以做自己想要的事情。

另外,我建议您在发布之前进行搜索,以获得更多关于所需内容的知识。

通过进入这个这个 ,了解如何做你打算做什么的基础知识。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM