簡體   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