2011-08-11 17 views
2

structは、ELFなどのファイル形式を解析するときに必要です。JavaにCの構造体がありますか?

JavaのCの構造体はありますか?

または、ELF /バイナリ形式を最初に直接解析するためにJavaを使用できますか?

+0

構造体のビットフィールドについてお聞きしますか? – alternative

+0

SOをもっと読む(Javaの "struct"の周りの他のQ/Aへのポインタが多い):http://stackoverflow.com/questions/36701/struct-like-objects-in-java –

+0

* " ... "*必要が強すぎます。また、エンディアン、パッキング、組み込み型のサイズに関する問題を解決したと仮定しても便利です。 – dmckee

答えて

1

不幸にも、Javaのバイナリ構造化データを読むためのまともなサポートはありません。

このexampleは、イメージヘッダーをバイト配列に読み込み、必要な情報をアセンブルします。

1

ByteBufferがあります。

編集

これはちょうどあなたがOPが実際に求めていたものをと思われたELF形式を解析する方法を答えることです。例えば

(私はこれが同じ形式であると仮定し、謝罪、それは完全に異なるELF形式のいずれかの方法だ場合、それは同じプロセスを示してい):

http://jumdbrowser.googlecode.com/svn-history/r3/trunk/UmdBrowser/src/jpcsp/format/Elf32.java

+0

ByteBufferはC++ Strutsとどう関係していますか? –

+0

質問の一部は、ELF形式の解析についてでした。 – SimonC

-1

編集:に答えます最初の質問

のJava classes

+0

賢明な質問に対する皮肉な反応のビット(OPがバイナリ形式の解析方法を尋ねていると仮定して)。 – SimonC

+0

私の最初の答えは次のとおりです:Javaクラスbu so so short too ... :-( –

2

あなたは、同じタイプの異なるデータをグループ化するためstructが必要な場合は、Javaが0を持っていますがあり、データには操作が含まれているため、クラスは論理的にデータをグループ化する方がstructより優れています。

ELFをフォーマットする場合は、「ELF Parser」のセクションをhttp://www.icsa.inf.ed.ac.uk/research/groups/hase/manuals/design/javahase.htmlにする必要があります。また、LibElf and GElf - A Library to Manipulate ELf Files(旧記事)

+2

Cでは、バイナリBLOBを構造体に直接読み込むことができます。これはOPが構造体を要求する理由です私はOPがJavaクラスを知っていると仮定しますが、Javaでは一連のバイトをクラスにデシリアライズするのは簡単ではありません。 – Sjoerd

+0

@Sjoerd、これは明確ではありませんでした。しかし、はい、これは彼が受け入れた答えを考えると、彼の意図である可能性が非常に高いです。 – Nivas

関連する問題