私はJasminコードにコンパイルし、それを組み立ててJavaバイトコードコンパイラをJavaに書いています。私は、ソースコードファイルがJavaライブラリクラスを参照して使用できるように意図して作成しています(文字列や印刷などにはかなり必要です)。私の問題は、これをどうやって行うのか。JavaからJavaへのバイトコードコンパイラ:Javaクラスライブラリの情報を取得するには?
これまでは、Javaインストールフォルダ内のテキストファイルに保持されているすべてのライブラリクラスのリストへの参照を使用しています(パッケージと名前をリストするだけです)。私はパーサー/型チェッカーのコーディングにこれを使用しましたが、ライブラリクラスが使用されたときに型チェッカーが型検査を行うことができなかったので、これは理想的ではありませんでした。
ライブラリクラスのメソッドを呼び出す場合は、完全なメソッドシグネチャを渡す必要があるため、実際にはコード生成に取り掛かっているので、実際には問題になります。
私は、どのように進歩するかについて人々のアドバイスが何であるかをさまよっていました。 1つの方法は、すべてのクラスとそのすべてのパラメータと戻り値の型のリストを作成することです。これは明らかに非常に時間がかかり、恐らくあまりにも非現実的です。可能な他のよりエレガントなアプローチがありますか?
おかげで、 ウィル
P.S.私はこれをコード化するためにPythonを使用しています。ソリューションでJavaコードを使用する必要がある場合は、サブプロセスとして実行できます。
はい、私は結局このオプションを使いました。私はメソッド/フィールドなどの名前を取り、クラスが属するクラスを返します(存在する場合)小さなJavaプログラムを作成しました。 Java Refletion APIを通じてすべて可能です。 –