問題タブ [bytecode]
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 コード 1.5 を 1.4 にダウングレード (ボーナス ポイント: J2ME、Blackberry!!!)
Blackberry の開発に使用する既存の j2se ライブラリ (Apache Compression ライブラリなど) を移植したいのですが、問題があります (1 つだけではありません)。
まず、ほとんどの Java ライブラリは、j2me プラットフォームでは一般的に欠落している j2se コレクションとデータ型を広く使用していますが、Apache Harmony などのオープンソースの j2se API 実装のおかげで、理論的には解決可能です。より大きな問題は、Blackberry JDK が Java 1.4 に基づいているように思われるため、ジェネリックやその他の 1.5 機能 (Enum など) を使用するコードは、Blackberry で簡単にコンパイルできないことです。
これは、j2me-bastardized バイトコードをサポートしながら、自動 1.5->1.4 変換を行う既存のツールまたはプロジェクトが存在するかどうかという興味深い問題を提起します:)
私が見つけた 1 つのプロジェクトはRetroweaverですが、そのプロジェクトがどれほど活発であるかはよくわかりません。
1.5 から 1.4 への自動変換の問題は固有のものではないと確信しています。
java - Android 上の JiBX (またはその他のビルド時のバイトコード操作ライブラリ)
JiBX
Blackberry と RIM の両方で実行する必要があるプロジェクトでの使用を検討しています。(JiBX ジラ チケットによると) の使用がコミュニティによって検討されているようですが、Android は比較的新しいものJ2ME
です。JiBX
したがって、問題は次のとおりです。Android で JiBX を使用したり、ビルド時にクラスのバイトコードを変更する必要がある他のライブラリを使用したりして、成功した (または問題が発生した) 人はいますか?
そのようなライブラリを (ランタイム バイトコード インストルメンテーションを使用するものと比較して) Android で実行可能にする方法については議論がありましたが、実際にこれを実行しようとしている人々についての報告はあまり多くありません。
java - Java クラスの逆コンパイルと再コンパイル
いくつかの Java クラスが利用可能なプログラムがあります。それらを逆コンパイルすることは可能ですか?.class
クラスのソース コードを変更して、他のすべてのファイルを持たずに再コンパイルすることは可能ですか?
たとえば、dog.class
で定義されている animal のサブクラスを実装するファイルがあるとしanimal.class
ます。
dog.java
なしで再コンパイルできanimal.class
ますか?dog.java
なしで再コンパイルできanimal.java
ますか?
私は Java 開発者ではないので、意味が分からない場合は訂正してください。
java - Javaバイトコードで配列サイズを検出する方法(FindBugs)
もちろん、コンパイル時にその情報がわかっている場合は、バイトコードを調べて、割り当てられている配列のサイズを確認したいと思います。
背景:FindBugs検出器(コンパイルされたバイトコードを調べる)を作成し、配列割り当ての特定の発生を報告したいと思います。誤検知を除外するために、私は「小さな」配列には関心がありませんが、コンパイル時にサイズが利用できないか、構成可能なしきい値よりも大きい配列にのみ関心があります。
FindBugsのソースコードはあまり文書化されていないので、始める方法についてのいくつかの指針を探しています-おそらく、私が見ることができるのと同じようなことをしている検出器がすでにあるでしょう。
python - Pythonのバイトコード(バージョン2.5)で最適化されている場所の数
Pythonのバイトコードで最適化されている場所がいくつあるか教えてもらえますか?最近、Pythonのバイトコードを逆コンパイルしようとしていましたが、Pythonのバージョン2.5には多くの最適化があることがわかりました。たとえば、このコードに対して
version2.5より前の最適化されていないバイトコードは次のようなものです。
バージョン2.5では、最適化されたバイトコードは次のようになります。
これはほんの一例ですが、他にも多くの場所が最適化される可能性があります。それで、これらの最適化を明確にするための、またはそれらすべてを見つけることができる方法を教えてくれるドキュメントがあることを誰かが知っていますか?
java - 何かを解釈し、生成されたバイトコードを Java で実行しますか?
JavaでREPLを使用しておもちゃのインタープリターを作成しています。AST を解釈して代わりに実行する代わりに、言語からバイトコードを生成して実行したいと思います。
私の Java は少し錆びているので、生成されたバイトコードを JVM でオンザフライで実行することは可能ですか?
java - Scala - Java 相互運用性: Scala は Java が消費するバイトコードで列挙型を発行できますか?
Java/Scala が混在するプロジェクトがあります。これは、Scala ライブラリを利用する Java GUI コードです。コンパイル時に Java 列挙型を発行するように Scala コードを記述する方法はありますか? 私がこれまでに試したアプローチ (封印されたケース クラス、列挙型の拡張) は、通常のクラスを生成するように見えます。これにより、Java からのそれらの操作は、列挙型よりもはるかに複雑になります。
java - Java と「前方」の互換性に関する質問
パラメータ-source 1.5および-target 1.5を使用してJavaバージョン1.6でソースをコンパイルしましたが、コンパイラはまったく文句を言いません。
それでも、メソッドが欠落しているため、アプリケーションは Java 1.5 では実行されません。もちろん、ソース コードの一部を 1.5 に準拠するように書き直すこともできますが、理解できないのは次の点です。一番下のJavaバイトコードは「前方」に準拠すべきではありませんか?
メソッドはバイトコードに変換されていませんか? 1.6 のライブラリ/メソッド (以前の String.isEmpty()) を 1.5 バイトコードにコンパイルして、すべてをアーカイブにパックすることは可能ですか?
java - Java バイトコードと JVM について学ぶ
最近の質問で、私の素朴な答えは、Java、JVM、およびコードがどのようにコンパイルされて実行されるかについての私の誤解の多くを浮き彫りにしました。これにより、自分の理解をより低いレベルに引き上げたいという欲求が生まれました。アセンブリのような低レベルの理解に問題はありませんが、バイトコードと JVM が私を混乱させました。オブジェクト指向コードが低レベルでどのように分解されるかは、私にはわかりません。JVM、バイトコード、および Java の下位レベルの機能について学ぶ方法について誰か提案があるかどうか疑問に思っていました。バイトコードを直接記述して実行できるユーティリティはありますか?何かを実際に体験することが、理解を深めるための最良の方法であると私は信じています。さらに、このトピックに関する提案を読んでいただければ幸いです。
編集:二次的な質問。だから私はちょっとサブの質問があります.答えは私にjvmについて学ぶための興味深いアイデアを与えてくれました.brainf ** kやOokのような本当に単純な言語を読みやすい構文だけで書くことの妥当性は何でしょうか.最終的に oo をサポートするには)、それはバイトコードにコンパイルされますか? それは良い学習経験になるでしょうか?