Forums: java関連 (Thread #500)

java ネイティブコンパイラによる開発 (2002-05-21 23:51 by juju #743)

僕は今、翡翠を Java で組んで Java のネイティブコンパイラを通すみたいなことも考え中ですが、
Java はよくしらないので躊躇。Unicode サポートがおいしいんですが。
Java が嫌われるのは、VM の遅さと、インストールの面倒さへの抵抗感がユーザーにあるからで、
ネイティブコンパイルしてしまえば差がないんじゃ?ってのが僕の意見。
あんまり聞いたことないあたり、Java ネイティブコンパイラはダメなんだろうか?

Reply to #743×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: java ネイティブコンパイラによる開発 (2002-05-22 00:09 by juju #744)

「亜呂さんの日記」
http://www.bunny.or.jp/~aro/haruna/diary/

を読みました。
Unicode は結局 C++ と同じように、
カンペキな Unicode を簡単にサポートする方法はないみたい?
ただ、C++ よりは楽そう。
Javaコンパイラについての情報はここ

「Java VM Implementations - Javaコンパイラ」
http://www.ingrid.org/java/vm/#compiler

ここのリストにないけど、
gcc でもコンパイル可能みたい。

「gcc」
http://gcc.gnu.org/

libgcj が必要みたいな記述がしてあるので
linux だけかな?
Reply to #743

Reply to #744×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: java ネイティブコンパイラによる開発 (2002-05-22 14:46 by aro #751)

JITなどの高速動作技術はいろいろあるのですが、
ネイティブコンパイラはどうも少ないようです。
やはり「Write once, Anywhere」という概念を
覆してしまうものだからでしょうか?
私も実際には使ったことがないので、IBMのあたりから
試してみましょうかね。gccはちょっと敷居が高そう。

設計書みたいに翡翠の形態がDLLだけでなく
サーバとしても機能させることを念頭においているので
あれば、ネットワークに強いJavaで内部を組むのも
悪い話ではないんですけどね。
JREなどの動作環境を別途いれなければいけないという
点をなんとかクリアできれば。
Reply to #743

Reply to #751×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: java ネイティブコンパイラによる開発 (2002-05-24 01:30 by juju #781)

> やはり「Write once, Anywhere」という概念を
> 覆してしまうものだからでしょうか?

そのあたりは、宗教戦争のようなものだと思いますです。
僕は最終的に末端ユーザーが楽なものを選びたいだけなんです。


> 設計書みたいに翡翠の形態がDLLだけでなく
> サーバとしても機能させることを念頭においているので
> あれば、ネットワークに強いJavaで内部を組むのも
> 悪い話ではないんですけどね。

そうなんですよね。


gcc のほうはちょっと実験してみました。
お決まりの Hallo World で。

gcc -o -I/usr/java/lib/classes.zip Hello.java

(lib だったか include だったか・・・)
みたいなコマンドでコンパイルはできましたが、
リンクで libgcj がないとかでいわれて、今一歩です・・・。
インストールの面倒を見なかったマシンだったので、
パス設定とかいいかげんなのかもというわけで、
もーすこしで、バイナリつくれそうな感じです。


Reply to #751

Reply to #781×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: java ネイティブコンパイラによる開発 (2002-05-25 03:46 by juju #791)

前回の投稿で、いろいろまちがってました。
確認不足で申し訳ありません。

【間違い1】
> gcc -o -I/usr/java/lib/classes.zip Hello.java

-o になってますが、これ、-c の間違いです。死のう。

gcc -c -I/usr/java/lib/classes.zip Hello.java

でした。(lib であってました)

【間違い2】
上のコマンドで Hello.o をつくり、リンクした場合に
出るエラーは、シンボルエラーでした。
たとえば、上のコマンドで Hello.o をつくり、

gcc -o Hello Hello.o

すると、シンボルエラーがいっぱいでます。
これは、環境変数 LD_LIBLARY_PATH が足りないか、
環境変数 CLASSPATH の関係か、
単に libgcj が入っていないかの3択かと考えてますが、
まだ確認とれてません。


【間違い3】
> リンクで libgcj がないとかでいわれて、今一歩です・・・。

gcj --main=Hello -o Hello Hello.java

のように、gcj でコンパイル&リンクすると出ます。
単に libgcj が入っていないからだと思いますが、
どうなんだろう。。
明日あたり確認します。


---
僕は gcc/g++ よろしく、gcc/gcj のような認識だったんですが、 僕のやってたことはまちがいだったんだろうか。
WEB 上でも、gcc で java をコンパイルしている例はなく、
gcj や、他の java ネイティブコンパイラを使っている。
やっぱり gcj とやらを使ったほうがよいのか?

gcj でやる場合はWEB上にサンプルも多く、

gcj --main=Hello -o Hello Hello.java

こんな感じでコンパイルできるようです。



亜呂さんが言ってた IBM の Jikes (だと思う)をちぇきしたのですが、

http://www-6.ibm.com/jp/developerworks/opensource/010112/j_os-jikes12.html

「新しい mingw コンパイラーのサポート」で僕も「すばらしい!」とか思ったり。
しかし、どうやってやるのかしら。
やり方とリンクしといてほしかった……。

Reply to #781

Reply to #791×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: java ネイティブコンパイラによる開発 (2002-08-10 21:08 by juju #1666)

gcc 3.1.1 で確認したところ、コンパイルできました。

gcj --main=Hello -o Hello Hello.java

でいけます。

> 「新しい mingw コンパイラーのサポート」で僕も「すばらしい!」とか思ったり。
> しかし、どうやってやるのかしら。
> やり方とリンクしといてほしかった……。

こちらは、どうやら僕の勘違いでした;´д`)
mingw によって jikes がクロスコンパイルできるってことを言いたかったみたいです。
Reply to #791

Reply to #1666×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login