問題タブ [javap]

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.

0 投票する
2 に答える
2052 参照

java - プログラム可能な方法で javap

プログラム可能な方法で、独自の Java コードで javap を使用できますか?

たとえば、次のコード:

コマンドラインで javap を使用すると、次のようになりました。

javap の API を使用して定数プールのみを印刷できますか?

0 投票する
1 に答える
7003 参照

java - javap を使用しようとすると、「エラー: クラスが見つかりません」というメッセージが表示されます

クラスのバイトコードを表示しようとしていますが、.classファイルが存在するにもかかわらずクラスが見つかりません。Main.javaCLIからファイルをうまくコンパイルできますが、javap -c Mainそれを使用するとクラスが見つかりません。

0 投票する
2 に答える
1804 参照

java - java:StringBuilderに変換されたバイトコードの文字列連結

コンパイルしたコードをjavacコマンドラインで確認し、+演算子を使用して文字列連結を使用するたびに、コンパイルしたコードがStringBuilderのappend()メソッドに置き換えられていることを確認しました。StringBuilderとString連結を使用すると、バイトコードが類似しているため、パフォーマンスは同じだと思いますが、正しいですか?

0 投票する
3 に答える
330 参照

java - JDK クラス メソッドの時間計算量測定

JDK クラス メソッドの複雑さを測定する (または既存の測定値を取得する) 確立された方法はありますか? javap時間の複雑さとその程度を表します。Arrays.sort()特に、コレクションの操作方法の複雑さに興味があります。

たとえば、2 つの実装のパフォーマンスを比較しようとしています。1 つは使用しており、もう 1 つは使用Arrays.sort()していません。そのjavap逆アセンブルは、より多くのステップ (2 倍) を返しませんが、逆アセンブリがArrays.sort()ステップを除外するかどうかはわかりません。IOW、javapあるメソッドには、そのメソッド内またはそのメソッドのために呼び出されたメソッドの再帰的測定が含まれていますか?

また、Javaコード自体を変更して再コンパイルせずに、特定の基本Javaメソッドが特定のパラメータで呼び出されたときに実行されたループ反復の回数を見つける方法はありますか? たとえば、Arrays.sort('A', 'r', 'T', 'f')?の反復回数を測定します。

0 投票する
1 に答える
791 参照

java - javap とジェネリックの型消去

Java のジェネリックスでの型消去について Herbert Schilds を読んでいます。おそらく、クラスで javap を実行すると、タイプ消去後のパブリック、パッケージ保護、および保護されたフィールドとメソッドに関するバイトコード情報が得られるはずです。ただし、次のクラスを作成しました。

生成されたクラスファイルでjavapを実行し、次の出力を得ました

「Test.java」からコンパイル

私が読んだ内容に基づいて、このような出力を期待していました。

ここで何か不足していますか?上記の方法でメソッドをオーバーロードすることは良い習慣ではないことを理解していることを付け加えておきます。このあいまいさの下で javap の結果を見ることに興味を持っていました。

編集:これは、javap の新しい修正の結果のようです。 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4870651

JDK 1.6 から javap を実行すると、期待どおりの結果が得られます。最初に使用していたJDK 1.7 b30からjavapを実行すると、一般的な情報で結果が得られます。

0 投票する
1 に答える
5627 参照

android - javap を使用して Android アクティビティのメソッド シグネチャを取得する

コマンド ラインjavap -s java.awt.Labelで を記述すると、署名を取得することに成功しましたLabel。Android Activity クラスの署名を取得したいと考えています。しかし、私が書くjavap -s android.app.activityと、結果はERROR: Could not find android.app.activity.

私は何を間違っていますか?PATH env varなどで何かを変更する必要がありますか?

0 投票する
4 に答える
326 参照

java - クラスファイルが与えられた場合、JNIを使​​用しているかどうかを検出する方法は?

クラス ファイルのみの Java ベンチマークがいくつかあります。

どのベンチマークに JNI 呼び出しがあるかを知りたいです。

の助けを借りてバイトコードレベルからこれを行うことができるのではないかと思いましたが、よくわかりjavap -cません。

何か案は?

0 投票する
4 に答える
8769 参照

java - java.io.File の jar はどこにありますか?

のメソッド シグネチャを取得する必要がある場合はandroid.content.ContextWrapper

「C:\Program Files (x86)\Android\android-sdk\platforms\android-18」にandroid.jarを配置して実行

javap -s -classpath android.jar android.content.ContextWrapper > out.txt

ここで、 のメソッド シグネチャを取得する必要がありますjava.io.File。対応する .jar の名前はどのようになっていますか?