6

これは文字どおり、Java に関する初めての質問ですので、ご容赦ください。

このコードから、HelloWorldApp.class というばかげた単純なアプレット クラスを作成しました。

import java.applet.Applet;

class HelloWorldApp extends Applet
{
    static final long serialVersionUID = 6636669702238171717L;
    public String test()
    {
        return "Hello World!"; // Display the string.
    }
}

次に、上記のクラス ファイルから jar ファイルを作成しました。その後、ばかげた単純な JNLP ファイルを作成しました。

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="/Content/applets" href="/Content/applets/datadelivery.jnlp">
    <information>
        <title>Hello World</title>
        <vendor>Me</vendor>
    </information>
    <resources>
        <!-- Application Resources -->
        <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="HelloWorldApp.jar" main="true" />

    </resources>
    <applet-desc 
         name="Test Applet"
         main-class="HelloWorldApp"
         width="300"
         height="50">
     </applet-desc>
     <update check="background"/>
</jnlp>

ディレクトリ /Content/applets 内の 3 つの項目すべてを放り投げました。最後に、すべてをまとめるために、これを HTML ドキュメントの本文にドロップしました。

<script type="text/javascript">
    var attributes = {
        id:'deliveryApplet',
        code: 'HelloWorldApp',
        // note: I tried including "codebase: '/Content/applets'", but nothing new happened
        width: 300,
        height: 50
    };
    var parameters = {
        jnlp_href: '/Content/applets/datadelivery.jnlp'
    };
    deployJava.runApplet(attributes, parameters, '1.6');
</script>

...そして呼び出しのonclickアクションでボタンを作成しました:

alert(deliveryApplet.test())

問題?関数呼び出しはありません。JS コンソールは、「Uncaught TypeError: Object # has no method 'test'」と応答します。そのため、どこかで展開がうまくいきませんでした。しかしここで?例に基づいて、JNLP のものは正しく見えます。

4

1 に答える 1

0

対処を簡単にするために、「非推奨」アプレット タグを使用してアプレットをテストすることをお勧めします。javascript アプレット ローダーに奇妙な問題があり、本来の動作をしていない理由がわからなかったのを覚えています。

于 2013-03-01T08:12:47.587 に答える