我似乎遇到了使用<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文件位于同一个目录中。我可能在这里做错了吗?谢谢!
答案 0 :(得分:0)
一个问题是该类没有从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
答案 1 :(得分:0)
就Java代码而言。这没有大问题。它可以作为一个独立的程序运行良好。但是,问题是关于 Applet
根据W3C,applet标记已经过折旧(Check Here For More Info)
以前版本的HTML允许作者包含图像(通过IMG) 和小程序(通过APPLET)。这些元素有几个局限性:
他们未能解决如何包含新的和更新的更普遍的问题 未来的媒体类型。 APPLET元素仅适用于基于Java的 小程序。不推荐使用此元素以支持OBJECT。他们摆姿势 无障碍问题。
虽然有可能的替代方案,如Deployment Tool Kit for DeployJava.js,可能会让您做你想要的。
此外,我会建议您在发布之前进行搜索,以获得有关您所寻找内容的更多信息。