簡體   English   中英

如何在HTML中嵌入jar

[英]How to embed jar in HTML

這已經有很多資源,但我似乎無法讓它發揮作用。 我究竟做錯了什么? jar文件位於:

http://www.alexandertechniqueatlantic.ca/multimedia/AT-web-presentation-imp.jar

我用來嵌入的代碼是:

<APPLET ARCHIVE="multimedia/AT-web-presentation-imp.jar" 
        CODE="ImpViewer.class" 
        WIDTH=100% 
        HEIGHT=100%>
</APPLET>

我正在使用的測試頁面位於:

http://www.alexandertechniqueatlantic.ca/test.php

當我下載jar它運行正常,所以我確定問題只有html嵌入。 請幫助!

另外,我收到以下錯誤:

java.lang.ClassCastException:無法將ImpViewer強制轉換為java.applet.Applet

java.lang.ClassCastException: ImpViewer cannot be cast to java.applet.Applet

'applet' 不是 applet。

BTW - 很棒的用戶界面。 就像紅色飛濺進入“歡迎入門工作坊”頁面一樣。 很順利。

使用Java Web Start從鏈接啟動它(請不要嘗試將如此漂亮的UI填充到網頁中)。


如果客戶端堅持要將GUI塞進網站然后(為我拍打它們)嘗試這個黑客攻擊。

/*
<APPLET 
    ARCHIVE="AT-web-presentation-imp.jar" 
    CODE="ImpViewerApplet" 
    WIDTH=720 
    HEIGHT=564>
</APPLET>
*/
import java.awt.*;
import java.applet.*;
import java.util.*;

public class ImpViewerApplet extends Applet {

    public void init() {
        setLayout(new BorderLayout());
        Window[] all = Window.getWindows();
        ArrayList<Window> allList = new ArrayList<Window>();
        for (Window window : all) {
            allList.add(window);
        }
        String[] args = {};
        ImpViewer iv = new ImpViewer(); 
        iv.main(args);

        all = Window.getWindows();
        for (Window window : all) {
            if (!allList.contains(window) && window.isVisible()) {
                if (window instanceof Frame) {
                    Frame f = (Frame)window;
                    Component[] allComp = f.getComponents();
                    Component c = f.getComponents()[0];
                    f.remove(c);
                    f.setVisible(false);
                    add(c);
                    validate();
                }
            }
        }
    }
}

重點是“黑客”這個詞。

  1. Frame會在消失之前閃爍到屏幕上。
  2. 它只能在720x564像素下工作,不像java.awt.Frame可以調整到任何大小。 但是,無論如何,你的'100%'寬度/高度有點樂觀。 有些瀏覽器會尊重這些限制,有些則不會。

需要花費一些精力,但您的ImpViewer類具有以下定義:

public class ImpViewer extends ImWindow
  implements Printable, Runnable
{
   [...]

ImpViewer不是一個像它需要的Applet ,而是一個ImWindow 它應該從AppletImApplet繼承。

無論哪種速度,安德魯斯使用Java Web Start的想法都是合法的。 您擁有的應用程序看起來更像桌面應用程序。

Applet是一個Java組件,它處理顯示嵌入在網頁中的正確調用。 您擁有的產品(JAR文件)包含運行程序所需的一切; 但是,它沒有正確的界面(小程序)來運行嵌入在網頁中的程序。

與產品的作者交談(如果該作者不可用,請查找文檔)並查看applet接口是否可用。 也許這只是使用不同類名的問題。 如果看起來這樣的界面不可用,那么沒有人做過必要的工作來使其“嵌入”在網頁中。 如果不更詳細地了解您的產品,就很難確定在產品中創建Applet界面的努力是否容易。

如果您沒有源代碼,那么開發Applet接口所需的工作量甚至大於源代碼所需的未知工作量。

有一些產品允許從Web瀏覽器查看和控制應用程序,即使有問題的應用程序未設計為嵌入網頁中。 這些產品往往價格昂貴且專有; 但是,如果它真的是關鍵任務(並且如果它賺足夠的錢)那么費用和努力可能是可以承受的。 有了這樣的解決方案,Web瀏覽器實際上打開一個窗口,進入配置的“應用程序服務器”,每次建立連接時都以全屏模式啟動應用程序。 是的,這是一個奇怪的架構; 然而,這種奇怪的體系結構是有目的地存在的,因為當應用程序無法在其他環境中運行時,這是實現某些事情的唯一方法。

在您可以負擔得起的情況下,請向思傑尋求這樣的解決方案(請記住,還有額外的Windows許可證),您可以容忍它的性能和怪癖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM