2015-09-24 262 views
0

我似乎遇到了使用<applet>标记让我的Java程序在Web浏览器中运行的问题。如何将java嵌入HTML页面

这里是我的导入Java的.class代码:

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

出于某种原因,我不断收到写着 “NoClassDefFoundError的用户ID(错误的名称:用户名/用户ID)” 错误

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文件。我在这里可能做错了什么?谢谢!

+0

即使安装了Java插件,Applets也已经过时并且大部分被现代浏览器阻止。无论如何,这不是一个小程序。这是一个命令行程序。 – chrylis

+0

你的课不是一个小程序。 – user1929959

回答

0

一个问题是该类不是从java.applet.Applet类扩展而来的。要做到这一点,你需要 import java.applet.Applet,然后你的类定义修改为:

public class Userid extends Applet { 

然而,像什么之前所提到的,你的程序不写是一个小程序,它的写入与使用命令行,因此System.in和System.out流。我不会质疑你编写applet的决定,尽管(因为chrylis说)它们都已经过时了,因为它们是练习Java技能的好方法,尤其是在使用图形界面时。

这是一种资源来帮助您开始使用小程序:http://java.about.com/od/webapplications/ss/firstapplet.htm

0

至于你的Java代码而言。这没有什么大问题。它可以作为独立程序运行良好。但是,问题是关于Applet的

按照W3C标准,该applet标签现在已经贬值(Check Here For More Info

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

他们未能解决如何包括新的和未来的媒体类型的更普遍的问题。 APPLET元素仅适用于基于Java的 小程序。此元素已弃用,以支持OBJECT。他们构成 无障碍问题。

虽然有可能的替代品,如Deployment Tool Kit for DeployJava.js,这可能会让你做你正在寻找的东西。

此外,我会建议你在发布之前进行搜索,以获得更多关于你正在寻找的知识。

通过thisthis了解如何做你打算做的事情的基本知识。