問題タブ [bytecode-manipulation]

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 投票する
1 に答える
319 参照

eclipse - Eclipseで生成されたJavaコードのオートコンプリート

自動生成されたコードを Eclipse エディタでオートコンプリートできるようにしたい

次の場合:

1) データ モデルと Java プロセッサを記述した Xml ドキュメントは、Java ソース コードを作成しています。現在、ant スクリプトを実行して Java ソースを作成する必要があります。それはxmlドキュメントの変更によって引き起こされる可能性がありますか?

2) クラスは、apt プロセッサによって新しいメソッドで拡張されます。apt プロセッサを jdt に登録することは可能ですか?

3) インストルメント化された Java バイト コードは、新しいメソッドを作成します。バイトコードを織り込んでいるクラスローダーを介してオートコンプリートを読み取らせることは可能ですか?

0 投票する
5 に答える
9058 参照

android - Androidアプリケーションにコードを挿入することは可能ですか?

実行時にAndroidアプリケーションにコードを挿入したいと思います。dxツールを使用してSDカードにdexfileを生成しようとしましたが、インスタンス化しようとすると失敗します。新しいdalvikバイトコードを生成するコードを挿入するツールはありますか?私はAndroid用のいくつかのライブラリ、aspecjtまたはguiceを勉強しています。スクリプト言語で作業する方が良いですか?

人々に感謝します:)

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

python - ジェネレータ式と速度効率の良い代替案に関するいくつかの質問

以下の私の質問に不可欠な次のコードを検討してください。

私の質問は、「#Q」とマークされたステートメントに基づいています。

Q1sorted() :ジェネレーターを呼び出すと(すべての要素が生成され、ソートされて新しいリストとして返される一時的なソートされていないリストが作成されます)、ジェネレーターが完全にインスタンス化されている(すべての要素が実行されている)ことは明らかです。

一時的なものの作成を最小限に抑え、ソートされたリストを生成する、スペース効率の良い方法はありますか?

しようとしましたが、を使用して適切に並べ替えることができるリスト内包表記を記述できませんでしたlist.sort()

これは私が考えていた種類の表現でした:

Q2:呼び出しで同等の表現を記述できなかったため、「aFunc」は「bFunc」の単なるラッパーであることに注意してくださいfunctools.partial( aFunc )

「bFunc」を直接呼び出すことができる表現「aFunc」とは何functools.partial( aFunc )ですか?


編集:Q2への答えはlambda ( v, m, s ): bFunc(s.something, 10)

したがって、ステートメントは次のようになります。

私はそれがちょっと足りないように見えることを知っています、私はこれについて以前は考えていませんでしたが、まあ(穏やかなproddingのためのaaronasterlingのおかげで)。


Q3、Q4:min()とmax()に渡される要素はすでにソートされていることに注意してください。

このヒントをmin()とmax()に作成して、リスト全体を一時的なものとしてインスタンス化してから、リスト全体を反復処理してminまたはmax要素を見つけないようにすることはできますか?

そうでない場合、リスト全体をインスタンス化しないモジュールまたはカスタム関数が存在しますが、渡されたリストがソートされている場合、最小数の要素を検査しながら最小要素または最大要素を返しますか?

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

java - 生データまたはバイナリ読み取りおよび書き込み用のフレームワークを作成します

私は、データをバイナリ形式で読み取る必要があるが、構造形式に入れることができる1つのプロジェクトに取り組んでいます。Javaでは構造は利用できません。データをバイト配列で送信しました。また、いくつかの構造があります。

例えば

パケット

MessageData MessageHeader MessageBody

MessageHeader int data1 long data2 char [] data3 // 2bytes char [] data4 // 3 bytes

MessageBodyについても同じです

ただし、データはバイト配列にパックする必要があります。

CPPでできること

Javaで実装する必要があります。

データを読み取るために私はPreonライブラリを使用しています

しかし、データを書き込むために、私はまだいくつかの関数の助けを借りてバイト配列にデータをパッケージ化するための通常の方法を使用しています誰もが同じ種類のプロジェクトに取り組んでいるか、より良いアイデアを持っています

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

plugins - PlayPlugin.enhance 中に見つからないクラスの問題

Play プラグインで基本的なバイトコード拡張を試していますが、ApplicationClasses.ApplicationClass指定された で操作しようとすると、クラスが見つかりません。

例外は

Play フレームワークがenhanceメソッドを呼び出しています。まだ利用できないクラスを処理するよりもよく知っているべきではありませんか? これを機能させるにはどうすればよいですか?

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

grails - grailsでの不正な定数プールインデックスエラー

linodeボックスにデプロイしたgrailsアプリケーションがあります。数日間は正常に動作していましたが、すべてのページでこのエラーが発生します。

グーグルは、これが織りの問題であることを示していますが、解決方法ではありません。誰かが似たようなものに遭遇したことがありますか?

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

java - Java アノテーションをメソッドにさかのぼって追加しますか?

特定のメソッドに Java アノテーションを追加するために .class ファイルを変更する方法はありますか? 基本的に、jar ファイル内の各クラス ファイルのメソッドをトラバースし、特定のメソッドに注釈を付けたいと考えています。これは、jar ファイルの使用中は実行時ではないことに注意してください。むしろ、作業が完了したら、注釈を付けてクラス ファイルを変更したいと考えています。

私はソース コードにアクセスできるので、自動ソース コード修飾子があれば、それも同様に機能します...

JavassistASMなどのツールが必要になると思います。もしそうなら、私はどれを使うべきですか?

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

java - 一般的なフレームワークが内部でバイトコード操作を使用するのはなぜですか?

多くのフレームワーク(Struts、Spring、Hibernate、AspectJ)が内部でバイトコード操作を使用していると聞きました。バイトコード操作を使用する説得力のある理由は何ですか?私は、特定のフレームワークごとに少なくともユースケースを備えた答えを期待しています。

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

java - ビルド時のインストルメンテーションとロード時のインストルメンテーションの違い

現在、私は自分の知識のために単純なバイトコード計測メカニズムを研究しており、会社の将来のプロジェクトでそれらを使用したいと考えています。

オンラインで入手できるいくつかの記事を読みましたが、ビルド時間とロード時間という用語について混乱しています。

誰かがこれらの用語の意味を明確にしてくれたら、とても感謝しています

ありがとう、

ヌワン・アランバージ

0 投票する
5 に答える
314 参照

programming-languages - メソッド内の一連の命令を操作できるプログラミング言語は何ですか?

実行時にメソッドが機能する方法を変更することがコア要件となる次のプロジェクトがあります。実際の効果は似ていますが、「あるメソッドを別のメソッドにシャドウイングする」などの高レベルのオブジェクト指向の概念について話しているのではないことに注意してください。

私が求めている主なプロパティは次のとおりです。

  • 新しい式を追加したり、既存の式を削除したり、メソッド内で発生する式を変更したりできるように、メソッドを変更できる必要があります。

  • メソッドを変更した後、そのメソッドを呼び出すと、新しい一連の操作が呼び出されます。(または、言語が毎回評価するのではなくメソッドをバインドする場合は、新しいメソッドのバインドを解除/再バインドする方法を提供してください。)

  • 理想的には、アセンブリを直接操作するのではなく(たとえば、「これら3つのパラメーターをスタックにポップする」)、言語のアトミックユニットを操作したい(たとえば、「fooオブジェクトのメソッドを呼び出すbar」)。言い換えれば、私が構築する操作がその言語で意味的に意味があることを確信できるようにしたいと思います。しかし、私は私が得ることができるものを取ります。

候補言語がこれらの基準を満たしているかどうかわからない場合は、簡単なリトマス試験を次に示します。

cleanwhichと呼ばれる別のメソッドを記述できますか?

  • メソッドmを入力として受け入れます

  • m2と同じ操作を実行する別のメソッドを返しますm

  • m2同じですがm、ご使用の言語(puts、System.Console.WriteLn、printlnなど)でのprint-to-standard-outメソッドの呼び出しは含まれていませんか?

今から予備調査をして、最強の候補者を見つけたいと思います。大規模で活発なコミュニティを持つことは、私がやりたいことを実行することの実用性と同じくらい重要です。バイトコードを直接操作することは通常、公開する必要のある操作ではないため、ここには偽造されていない領域が存在する可能性があることを認識しています。

私が利用できる選択肢は何ですか?可能であれば、あなたが推奨する1つ以上の言語でおもちゃの例を提供できますか、それとも最近の例を教えてください。


更新:私がこの後の理由は、新しい情報に応じて実行時に自分自身を変更できるプログラムを書きたいからです。この変更は、単なるパラメーターや構成可能なデータを超えていますが、動作の本格的で進化した変更です。(いいえ、私はウイルスを書いていません。;))