問題タブ [bcel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Javaでクラスファイルを解析する方法は?
Java でクラス ファイルを解析するにはどうすればよいですか。このコードでは、現在のクラス ファイル calles bcel を解析しますが、たとえば (netbeans/src/filename.class) などの他のパッケージ内の他のクラス ファイルを解析したい場合は、どうすればよいですか?どのようにすればよいですか?パスでクラスファイルを解析できますか? このコードは同じ (現在のクラス ファイル) にのみ適用できますが、任意のクラス ファイルをそのパスで解析する方法が必要です。
java - パッケージ + クラス名を .class ファイル名に変換
ファイルを分析するプログラムを書いてい.class
ます。パッケージとクラス名を出力に添付したい。
私の計画は、パッケージとクラス名を入力として取り、対応する.class
ファイルを見つける関数を作成することです (したがって、ユーザーはそれを入力する必要がなく、間違いを犯すことはありません)。 「BCEL のClassParser
コンストラクターの引数として使用できるデータを教えてください」(ファイル名、または zip ファイルの名前と zip ファイル内の名前のいずれか) と読みます。
どうすればいいですか?Javaにはそれを行うものが付属していますか?名前解決は a のコンテキストで行われることを理解しているCLASSPATH
ので、ユーザーはおそらくそれらのいずれかも提供する必要があります。それはいいです。
注: ソリューションでは、ファイルからコードを実行しないでください。.class
バイトだけです、奥様;-)
java - クラスを BCEL に置き換える
BCEL を使用して、SomeClass のメソッドへのすべての呼び出しを SomeOtherClass のメソッドへの呼び出しに置き換えるコードを書いています。
現在、私の理解では、次の方法でこれを行うことができます。
- 命令リストの反復
invokevirtual
すべての、invokestatic
またはinvokespecial
SomeClass を参照する命令の検索- それらを SomeOtherClass を参照する適切な invokeX に置き換えます
これには、多くの呼び出しを書き直す必要があり、少なくとも 3 つの異なるケース ( と呼び出し) を処理する必要がinvokevirtual
ありますinvokestatic
。invokespecial
代わりに、定数プールを操作し、SomeClass を指すすべての定数を SomeOtherClass に置き換えることによってそれを行うことは可能ですか? もしそうなら、どのように?
java - cglib プロキシ クラス インスタンスのバイトコードを取得するには?
BCEL を使用して、この方法で cglib 拡張オブジェクトのバイトコードを取得しようとしています。
しかし、私は得ています:
Enhanced オブジェクトからバイトコードを取得するにはどうすればよいですか?
java - Apache Byte Code エンジニアリング ライブラリ (bcel) でローカル変数のデータ型を特定する
Javaクラスファイルを読み取るためにApache bcelライブラリを使用しています。呼び出しから特定のメソッドのローカル変数名を識別することができorg.apache.bcel.classfile.Method.getLineNumberTable()
ます。
ただし、詳細にはローカル変数のデータ型関連の詳細は含まれません。また、変数のデータ型を取得する他の方法も見つかりませんでした。少し助けていただければ幸いです