2015-09-24 305 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瞭解如何做你打算做的事情的基本知識。