2011-09-23 28 views
5

これには多くのリソースがありますが、動作させることができません。私は間違って何をしていますか? jarファイルはである:jarをHTMLに埋め込む方法

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

そして、私は埋め込むために使用していたコードは次のとおりです。

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

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

私が使用していたテストページがですjarファイルをダウンロードするとうまく動作するので、問題はhtml埋め込みだけであると確信しています。喜んで助けてください!

はまた、私は次のエラーを取得する:

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

+0

ImpViewerは何から継承していますか?それはあなたのクラス定義を含めることができますか? – Sam

+0

こんにちはサム、私は知らない、私はソースコードなしで手渡された。それは確かにアプレットから継承していない!とにかくそれなしでウェブサイトにそれを詰め込むためにはありますか? – Bill

答えて

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

'アプレット' はないアプレットです。

BTW - 素晴らしいUIです。そのように、赤いスプラッシュは「Welcome Introductory Workshop」ページにフェードインします。とてもなめらか。

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. それだけで任意のサイズにリサイズ可能だったjava.awt.Frameとは異なり、720x564ピクセルで動作します。しかし、あなたの「100%」の幅/高さは、とにかく少し楽観的でした。いくつかのブラウザはそれらの制約を尊重し、他のブラウザはそうしないでしょう。
+0

こんにちはAndrew、補足ありがとう、私はUIを書いていない、それは私のクライアントによって私に渡された。そして彼はちょうどウェブサイトにそれを詰め込みたいので、いいえと言う私の場所ではありません。とにかくそれは可能ですか? – Bill

+0

更新を参照してください。 –

1

それは努力のビットを取ったが、あなたのImpViewerクラスの定義は、次のとおりです

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

ImpViewerは、それがあることが必要のようAppletではなく、ImWindowです。 AppletまたはおそらくImAppletのいずれかを継承する必要があります。

は、いずれかのレートでは、Java Web Startのを使用してのアンドリュースのアイデアは合法です。あなたが持っているアプリはデスクトップアプリのように見えます。

+0

Java Web Startの例は、私の古い学生のWebサイト[Sam's Tetris Page](http://students.cs.byu.edu/~samuelms/applets/tetris.php)で確認できます。 [Java WebStartを使用してテトリスアプレットを実行する](http://students.cs.byu.edu/~samuelms/applets/tetris/tetris.jnlp)リンクを参照してください。これは、ユーザーエクスペリエンスがどのようなものになるかの例を示すためだけです。 – Sam

+0

申し訳ありませんが、私はクライアントにJavaWSを使用するように伝えます。情報のおかげで。 – Bill

+0

上記の編集で 'アプレットのハックにそれを押し込む'ことにかかわらず、JWSのアプローチを強くお勧めします。 –

1

Appletは、Webページに埋め込まれて表示されるまで右の呼び出しを処理するJavaコンポーネントです。所有している製品(JARファイル)には、プログラムを実行するために必要なものがすべて含まれています。ただし、Webページに埋め込まれたプログラムを実行するための正しいインタフェース(アプレット)はありません。

製品の著者(その著者が利用できない場合は、ドキュメントを探してください)と会話し、アプレットインタフェースが利用可能かどうかを確認してください。多分それは別のクラス名を使用することの問題です。そのようなインターフェイスが利用できないように見える場合、誰もWebページに埋め込み可能にするために必要な作業をしていません。あなたの製品をもっと詳しく知ることなしに、アプレットインターフェースを製品に作成する努力が簡単かどうかを判断することは容易ではありません。

もしあなたがソースコードを持っていなければ、あなたが持っているものにアプレットインターフェースを開発しようとする努力は、未知の量のソースコードであったはずです。

問題のアプリケーションがWebページに埋め込まれるように設計されていない場合でも、Webブラウザからアプリケーションを表示および制御できる製品がいくつかあります。これらの製品は高価で独占的な傾向があります。本当にミッションクリティカルであれば(そしてそれが十分な金額になるならば)、費用と努力は耐えられるかもしれません。このようなソリューションでは、Webブラウザは実際には、接続が確立されるたびにフルスクリーンモードでアプリケーションを起動する、構成された「アプリケーションサーバー」にウィンドウを開きます。はい、それは奇妙な建築です。しかし、このような奇妙なアーキテクチャは意図的に存在します。なぜなら、アプリケーションが他の環境では実行できないときに、実際にはいくつかのことを実行できる唯一の方法だからです。

余分なWindowsライセンスがあることを覚えておいてください。そのようなソリューションについては、Citrix社にお尋ねください。

+0

+1これをユーザーに与えた人は誰でも、アプレットと互換性を持たせることができます。アプリケーションが "FACULTY-PC DAL"による "Impatica for PowerPoint 4.0"で作成されたようです。また、 'com.impatica.v402.ImPlayer.class'はアプレットを拡張しています。しかし、私はそれで何か起こることができませんでした。 :( – Sam

関連する問題