1

フォルダー内で最後に作成されたファイルを見つけることができる動作中のJavaアプリがあります。私の最終的な目標は、そのアプリをWebページに配置して、ユーザーがWebページを開いたときに、そのページによってフォルダー内の最新のファイルが開かれるようにすることです。簡単なアプレットの作成に関するオラクルのチュートリアルをいくつか読んだことがありますが、私が遭遇したすべてのことは、私のページが必要としないGUIを作成することを含みます。

現在、FirefoxでHTMLページを開くと、アプレットを除くすべてのHTMLが読み込まれます。エラーメッセージは表示されず、何も実行されません。これは、Javaアプリがアプレットとして認識されていないためだと思います。そのため、コードをアプレットに変換するには、さらに多くのことを行う必要があると思います。Javaクラス名に「extendsApplet」を追加し、initメソッドを追加することを検討しましたが、それはGUIが必要な人向けのようです。

それが役立つかもしれない場合に備えて、Javaアプリを以下に示します。HTMLに関する限り、アプレットをapplet code = "FirstApplet" width = '300' height = '300'(適切な開始タグと終了タグ付き)として埋め込み、Javaアプリと同じフォルダーにあります。

import java.applet.Applet;
import java.io.File;
import java.io.IOException;

@SuppressWarnings("serial")
public class FirstApplet extends Applet{
    public static File[] getPath(String folderPath){

        File directory = new File(folderPath);
        File[] myarray;
        myarray=directory.listFiles();
        return myarray;
    }
    public static String getMostCurr(File[] fileArray){
        File mostCurrent = null;
        for (int i = 0; i < fileArray.length; i++) {
            if ((mostCurrent==null)||
            (fileArray[i].lastModified()> mostCurrent.lastModified())) 
        {
            mostCurrent = fileArray[i]; 
        }                   }

        //System.out.println(mostCurrent.toString());       
        return mostCurrent.toString();
    }

    public static void main(String[] args) throws IOException{
        //opens file on MACINTOSH
        Runtime.getRuntime().exec(new String[]{"/usr/bin/open", 
                getMostCurr(getPath("/Users/guest/Desktop/lectures/testFileReader"))});
    }
}   

編集**:これが要求されたHTMLページです。

<html>
<head>
<title>My First Java Applet </title>
</head>
<body>
Here's my first java applet:  <br> <br>
<applet code ='FirstApplet.class' width='300' height='300'>
</body>
</html>
4

2 に答える 2

2

ページがローカルで表示されている場合にのみアプレットを実行しますか?つまり、便宜上 HTML にしていますか?

そうしないと、ここで高レベルの設計上の問題が発生するためです。アプレットがブラウザで実行されるとき、それはクライアント側で実行されています。したがって、サーバー上のファイルを一覧表示することはできません。アプレット サンドボックスでは、クライアント側のファイルも一覧表示できなくなります。Runtime.exec(...)アプレット内で実行することはできません。

サーバー側のテクノロジーを調べる必要があります。または、アプレットの使用を主張する場合は、何らかの方法でサーバー側のすべてのファイルを取得する必要があります。ヘッダーを見て、各リソースがいつ作成されたか、または最後に変更されたかを調べてから、適切なものを選択してください...

于 2012-07-02T18:04:24.680 に答える
0

便宜上、HTML です。

アプレットの開発、デバッグ、展開は (たとえ 1 台の PC であっても) 便利でも簡単でもありません。私はアプレットに関して豊富な経験を持っています。

必要なファイルがすべてあるマネージャーのコンピューターでのみ実行されます。

1 台のマシンでは、標準のアプリを使用します。main()おそらくシェルスクリプトから起動されます(OS Xの場合は.shなど)。管理者は、自動的にファイルを開くページを参照する「リンクをクリック」する代わりに、同じことを行う「スクリプトを実行 (ダブルクリック?)」します。Windows では、HTML から.batファイルに直接リンクすることさえできたかもしれませんが、Apple がそのセキュリティ ホールを開けたいとは思わないでしょう。

Desktop.open(File)またはDesktop.edit(File)の代わりに使用することも検討してくださいRuntime

于 2012-07-02T18:58:39.860 に答える