問題タブ [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.
compilation - javapはJavaライブラリファイルに対してどのように機能しますか?
JREには、ライブラリクラスの.classファイルが含まれています。
JREフォルダ内のこれらの.classファイルはいつ使用されますか?
JREには、すべてのライブラリクラスの.classファイルが含まれていますか。
例を見てみましょう。
ライブラリファイルをインポートするときは、.classファイルではなくsrc.zipからのクラスファイルの定義を使用しています。例:java.net.InetAddressをインポートします。つまり、ライブラリクラスを継承しているだけです。したがって、ライブラリクラスのコードもコードnaに準拠しています。
.classファイルを直接使用していません。では、JREフォルダー内のそれらのライブラリファイルに.classファイルを使用することの使用は何ですか?
JREフォルダを検索しましたが、InetAddressの.classファイルが見つかりませんでした
ただし、コマンドjavapjava.net.InetAddressは引き続き正常に機能します。
誰か助けてください。
前もって感謝します。
java - インターフェイス内にあるメソッドの署名を取得する方法は?
Fruits という名前のクラスがあります。クラス内には、Sour という名前のインターフェースがあります。インターフェイス内にはメソッド GetItems(); があります。
GetItems() メソッドの署名を取得する方法は?. この署名を JNI GetMethodID メソッドで使用したいと考えています。
scala - Scala: リフレクションを使用して内部オブジェクト (および欲求) を発見しますか?
外部オブジェクト内で宣言されたオブジェクトを実行時に検出する方法はありますか? JavaClass
メソッドgetClasses
とgetDeclaredClasses
両方が空の配列を返します。
出力は次のとおりです。
編集:私は、子供たちに自分自身を親に登録させることを検討しました:
(これは見苦しく見えますが、クリエイティブなサブクラス化と暗黙のパラメーターでこれらの詳細を隠すことができるので、実際には問題ありません。)
このアプローチの問題は、各型が参照されるまで静的初期化子が呼び出されないことです (したがって、Parent.Child1
およびの呼び出しParent.Child2
)。これにより、目的が無効になります。出力は次のとおりです。
編集 2:データがそこにあることは知っています! 内部オブジェクトは次を使用してリストされますscalap Parent
。
java - Eclipseでjavapを使用するには?
タイトルのとおり、Eclipse で使用しようとしてjavap
いますが、セットアップが困難です。external tools
メニューから使用してセットアップしようとしていますが、機能させるrun
ための正しい文字列が見つかりませんArguments:
。基本的に、現在開いているファイルを動的に実行するものが必要です。
java - javap -l オプションは行番号情報を表示できません
このjavap
コマンドにはいくつかのオプションがあり、そのうちの 1 つが で-l
、行番号とローカル変数テーブルを出力できます。Java プログラムが正常にコンパイルされ、ファイル「Main.class」があるとします。実行javap -l Main
すると、次のような結果が得られます。
ただし、javap -l xxx
あるJavaプログラムのクラスファイルでこのコマンドを使用していますが、行番号とローカル変数テーブルの領域が空です(空であってはなりません)。javap
コマンドと 、 などの他のオプションは正常-s
に-verbose
機能しますが、オプションに対応する行情報領域のみ-l
が空です。
誰もそのような奇妙なケースに遭遇したことがありますか?
java - javap ローカル テーブル出力の「偽の」エントリ
クラスの 1 つで生成されたコードを調べるために を使用javap
していたところ、次の出力に気付きました。
locals
テーブル内の「偽の」タイプ/変数エントリの意味は何ですか? それらはどのように引き起こされますか?結果のコードにどのような影響がありますか?
クラス ファイルは、Eclipse 3.7 コンパイラを使用して作成されjavap
、OpenJDK-1.6b22 から取得されました。
java - JavapAsciz文字列
javap
定数プールに関するコマンドから生成された出力についてはほとんど質問がありません。プールを出力するときjavap
、文字列定数を文字列として定義します。これは、 ASCIIで終了Asciz
することを意味すると理解しています。null
これは、文字列の長さが不明であることを意味し、解析するには、に遭遇するまで各バイトを読み取りますnull
。
ただし、定数プール文字列定数の長さは、文字列の前の2バイトによって定義され、null
追加されません。(定数プール仕様)。
文字列を間違ってjavap
定義していますか、それとも私が知らない別の意味がありますか?Asciz
Asciz
scala - sbt プロジェクトのクラスパスに tools.jar を追加
scala 2.9.1 コンソールの ':javap' コマンドは、'classpath' に (JDK6 からの) tools.jar を必要とします。cmd-line からは、'-cp' 引数または CLASSPATH 環境変数を使用して実行できます。
「console」および「console-quick」コマンドを使用して SBT から呼び出された scala コンソールに対して同じことを行うにはどうすればよいですか?
scala - javapを使用してJavaからscala.Noneを使用する方法を学ぶには?
以前の質問Accessing scala.None from Javajavap
では、以前は Javaからアクセスする方法を理解していたようscala.None
です。彼らがどのようにそれをしたか知りたいです。参考までに、答えは次のとおりです。
これは次のように短縮できます。
このプログラム ( ) が与えられた場合OptionTest.scala
:
私はjavap
このようにそれを実行しました:
これはjavap
出力の一部です。
scala.None
とで javap も実行しましたscala.Option
。javap
出力から次のことをどのように判断しますか。
None
None.type
拡張するタイプの唯一のオブジェクトですOption
apply()
コンパニオン オブジェクトのメソッドが必要です
?
jvm - ジャスミンロングフィールドを強制的にロング定数にする方法は?
このテストケースで問題を切り分けることができました:
これを実行しようとすると、次のようになります。
いくつかの調査(を使用javap
)により、次のことが明らかになりました。
つまり、long 定数の値はクラス ファイルに整数として格納されます。Jasmin に定数をプールに long として保存させる方法はありますか? 試してみまし1L
たが、うまくいきません。の値を( などの)foo1
より大きい数値に設定するとエラーは修正されますが、定数値を変更する必要のない解決策を望んでいました。INT_MAX
2147483648
Jasmin はこれを行う方法を提供していますか、それとも jasmin のソース コードを変更する必要がありますか?