Re: [問題] 有人用過GCC裡面的GCJ開發embedded jav …

看板LinuxDev作者 (松鼠)時間17年前 (2008/07/01 21:20), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ 引述《simonho (天下)》之銘言: : 麻煩各位看看我的觀念是否正確@_@ : 1.GCJ可以直接COMPILE java source 成NATIVE CODE : 所以我們就不需在embedded linux裡面放virtual machine當作執行環境 因為語言特性,gcj-compiled native 需要 runtime,也就是 libgcj,您的系統應該可 找到幾個,比方說: $ ls /usr/lib/libgcj* /usr/lib/libgcj_bc.so.1 /usr/lib/libgcj-tools.so.70 /usr/lib/libgcj.so.70 /usr/lib/libgcj-tools.so.70.0.0 /usr/lib/libgcj.so.70.0.0 /usr/lib/libgcj-tools.so.71 /usr/lib/libgcj.so.71 /usr/lib/libgcj-tools.so.71.0.0 /usr/lib/libgcj.so.71.0.0 /usr/lib/libgcj-tools.so.81 /usr/lib/libgcj.so.81 /usr/lib/libgcj-tools.so.81.0.0 /usr/lib/libgcj.so.81.0.0 /usr/lib/libgcj-tools.so.90 /usr/lib/libgcj.so.90 /usr/lib/libgcj-tools.so.90.0.0 /usr/lib/libgcj.so.90.0.0 suffix 的數字 (70, 71, 80, 90) 就表示 libgcj runtime interface 的變遷,而 _bc 則表示 binary compatibility。這個狀況有點類似 gcc 的 objective-C,因為語言的 特性使然,有 dynamic language 成份,必須允許 late binding 與 object invocation 的機制,無法僅是如 C/C++ 編譯成單純的 single executable。 但這些都還是 machine code,只是多包了 runtime。 : 2.如果COMPILE成 BYTECODE就必須 放一個virtual machine 就跟一般的 Java classfile 沒有兩樣,開頭會看到 0xCAFEBABE : 3.當COMPILE成NATIVE CODE, CODE SIZE會比較大, 所以較不適合embedded environment 很難說,看具體空間而定。embedded environment 的重點是 "embedded",沒有限制一定 要「很微小」。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.130.82
文章代碼(AID): #18QYy02F (LinuxDev)
文章代碼(AID): #18QYy02F (LinuxDev)