私は、長い一連のクエリと計算を実行し、その結果を一連の HTML ページとして表示する Java アプリケーションを開発しています。グラフを視覚化するために、しばらくJUNGライブラリをいじっていましたが、ライブラリの本当の強みは、グラフが静的画像として保存されている場合はもちろん利用できないユーザーインタラクションのサポートであるように見えます(私のPNG場合)。
私はそれが次のようになるかどうか疑問に思っていました:
a) 可能
b) 実行可能
c) 分別のある
... メイン アプリケーションの実行中にアプレットを作成します。アプレットは HTML レポートに挿入でき、アプリケーションの実行が終了してユーザーがレポート ページを移動した後にインタラクティブに使用できます。
技術的な理由によりこれが不可能な場合。このようなことをどのように達成できるかについて、代替の推奨事項/提案はありますか?
ありがとう、
編集:概念を明確にするために、「メイン」アプリケーションは一連のイベントのリンクであるため、個別の GUI を持っています。アプレットのアイデアは、すべてのものをメインアプリから HTML ページに模倣または転送することではなく、ユーザーが実行後にグラフィカルな結果を確認しているときに、JUNG ライブラリに付属する対話型ツールを使用できるようにすることです。メインソフトウェアが完成しました。
コンセプトがまだはっきりしていない場合はお知らせください。もう一度詳しく説明します。
更新: @boffinBrain と @AndrewThompson に寄せられたアドバイスに従って、アプレットを作成し、他の視覚化関連のクラスと共にプロジェクトのパッケージに配置しました。階層は次のとおりです。
my.domain.project
my.domain.project.tests
my.domain.project.visualization
HTML レポートがローカル ドライブの任意の場所に作成されるようになりました。これは、ユーザーが「メイン」アプリケーションを実行する前に出力フォルダーを指定するための機能です。私のReportGenerator
クラス (これらの HTML ファイルを生成するクラス) には、次のコードがあります。
File bin = new File(getClass().getProtectionDomain().getCodeSource().getLocation().toString());
String codebase = bin.getParent();
System.out.println(codebase);
String archive = "lib/collections-generic-4.01/collections-generic-4.01.jar";
String applet_name = "bin/my.domain.project.visualization.HierarchyGraphApplet.class";
codebase
印刷結果は次のとおりです。file:/home/username/workspace/project
これは私が期待していたものです。プロジェクト フォルダーの下には bin/ と lib/ があり、bin 内には、同じく存在するアプレット クラスに至るまでのフォルダーの適切な階層があります。
なぜ私はこれらすべてを書き留めたのでしょうか。レポートでアプレットを実行しようとすると、次のようになるからです。
java.lang.NoClassDefFoundError: bin/my/domain/project/visualization/HierarchyGraphApplet (wrong name: my/domain/project/visualization/HierarchyGraphApplet)
thisまたはthisのような同様の質問を読みましたが、問題は別の場所にあるようです。スペルなどを再確認しました...単純なものが欠けていますか、それとももっと複雑な問題がありますか?