gcj + Sun class libraryってprojectもあるよ。
けどgcjの中の人たちは、classpathがかなり仕上がってきているから、
そっちの方に重きを置いている人が多い。
二年前にSunがソース公開していたら、状況は違ったと思うけれど。
いずれにせよ、ちゃんとした成果がないことを嘆くのはまだ早い。
gcj試してみたけどちょっとしたプログラムでも動作が怪しい。
同じプログラムをExcelsior JETで変換するとすんなり動いた。
やはり商用には敵わないか・・・
JETの購入真剣に検討してみるかな。
↑工作員っぽくてかっこいい
少なくとも Eclipse という gcj でコンパイルでき、
動作もする大きなパッケージがある訳で。
Excelsior を使いたい状況って何なんだろう・・・
最近じゃ無くなってきてないですかね?
JREの導入も簡単になってきてるし・・・・
それでもいやなときは、gcjというフリーな解があるのであって・・・
仕事でやるときは、JRE入れるのが安全だもんなぁ
gcj じゃ Excelsior の代りにはならんだろ…
Java5未対応だし,使えないAPIが山ほどあるし(Win32環境だと特に酷い).
gcj を使うなら最初からある程度 gcj をターゲットにして作っていくか,
使えないAPIを自分で実装しながら作っていくくらい気合入れてやらないと.
gcj用に作ってついでにJREでも動くってのは可だが逆はかなり手間かかると思うぞ…
ん、いや、仕事で使う時なんだけど
まずはJREを使うという選択肢を検討する。
次に、gcj 、Excelsiorという選択肢があるんだが
昔に比べ、JRE導入で片付く件が多くなってるんじゃないということ。
gcjもExcelsiorも、どっちも仕事で使うにはJRE使用よりも活用度は落ちると思っただけ。
趣味で使うなら、もともと有料のアプリを使う動機に欠けるわけで。
技術的興味からgcjを利用するというのはわかるけど・・・・
つ チラシの裏
↑変換後のプログラムでSocket通信を行うとフリーズしてしまうということです。
>>519 非常に申し分けないがこのスレにエスパーはいないようなんだ…
OS や gcj のバージョンくらい書いてみたらどうかね?
522 :
519:2007/12/21(金) 17:47:51
>>521 申し訳ありません。おっしゃる通りで・・・
OS WindowsXP Professional Version2002 ServicePack2
gcj MinGW/GCC/GCJ 4.3 (gcj-eclipse-merge-branch)
変換はeclipseからAntを使って変換しました。
最終的にはJava5でコンパイルしたプログラムを変換したかったので
gcjの他のバージョンは試していません。
>>522 昔試した限りでは win32 環境で libgcj の Socket は使っただけで例外はいた。
試したのは MinGW の GCC 3.4.2 だったと思う。現状では win32 環境の libgcj は
完成度が低すぎて使い物にならないってのがそのときの結論だった。
ちょい上にも書 Sun の Java 用に書いたものを gcj にポートするのは厳しいと思えっていてあるでしょ?
# Linux だとわりと動くんだけどねぇ…
524 :
519:2007/12/23(日) 22:35:55
あれから何度か試してみましたが、
例外もはいていないようなので原因はまったくわかりませんでした。
やはりまだwindows上では厳しいままのようですね。。
簡易のHttpServerをJavaをインストールしないで動くように出来ないかと言われて
gcjに辿りついたのですが、諦めて素直にJavaをインストールしてもらいます。
しかし、こういう技術があるのをまったく知らなかったので
今回は良い勉強になりました。ありがとうございました。
>>524 デバッガで止めたらどこで止まってるの?
後スタックトレースとかもあるとうれしいが。
簡易HTTPサーバくらいなら動かせそうな気もするけどねぇ…
527 :
デフォルトの名無しさん:2008/03/12(水) 18:12:54
GCC 4.3.0 から Java 1.5 の言語仕様を満たすようになってるらすいな。
フロントエンドのリプレース終わったのか?
あけましておめでとうございます
今更で恐縮ですが、
hsqldb.jar はgcjでコンパイルでき
付属の簡易Servletも機能する
あけましておめでとうございます。
誰もいない予感
夏休みでも静かだな…
過疎ってるから話題を振ってみる
Sunがこういうネイティブコンパイラ作る計画ってのはないの?
今の財産生かせばそんな難しい事じゃないと思うし結構需要あると思うんだけどな
どこ向けに出すのさ
GCJ使ってる層じゃね
CNIみたいなのをサポートしてくれないなら不要。
>>533 思想的に Sun がネイティブコンパイラ出すことがそもそもありえんだろ・・・
JITのコンパイル結果をキャッシュしてくれてもいいとは思うんだよな。
クラスファイルが更新されてないかとか整合性を調べてOKなら再利用。
gnu.gcj.jit.cachedir
しかしネイティブコンパイルしてもそんなに速度あがんねーんだな。
Java実行環境も進歩したもんだ。
つうか動的な要素の多い言語だと必ずしも静的コンパイルしたほうが
早くなるわけじゃ…。実行時情報を使えないし。
C++・Fortran・OCamlあたりをネイティブコンパイルすると速度でるのは
あらかじめそういうこと想定した文法やライブラリだから。
gcjのコンパイルって全部静的に解決してるのか?
実行時に外部からクラスファイルを読み込んだときのためにインタプリタも内蔵してるとか聞いた覚えがある
すごく…おおきいです
546 :
デフォルトの名無しさん:2008/10/10(金) 20:30:39
gcjを使えば、javaでcgiが作れそうなのだが、
GETやPOSTのデータを受け取る方法がわからない。
下のHello.java をgcjでコンパイルして、
http://yoursite/Hello.cgi?a=1 とかしたいのだが、nullしか受け取れん。どうすればいいだろうか?
public class Hello{
public static void main(String[] args){
String output = "";
output += "Content-type: text/html;charset=utf-8\n";
output += "\n";
output += "<HTML><BODY>hello" + System.getProperty("QUERY_STRING") + "</BODY></HTML>";
System.out.println(output);
}
}
Java2Dとかawt.Robotとかは使えるの?
>>546 QUERY_STRINGはSystem.getenvで取れると思う。ただしJava5以上ね。
POSTはstdinに放り込まれるんじゃなかったかな。
549 :
デフォルトの名無しさん:2008/10/11(土) 22:57:03
>>548 さんくす。動いた。
が、gcjが思ったより遅かったので失望した・・
なに?こんなのあるの?
俺様のLinuxに入れたサーブレットもこれでコンパイルしてみよう。
HotSpotコンパイラと同じ性能を期待したらアカンよ。
バッチ処理で使いたいならC++ with Boostでも使った方がいい。
あとJavaサーバーはJavaサーバーのまま使うのが一番速い。
SPECweb2005っていう動的Webコンテンツのベンチマークがあるんだけど、
そこはJSPの独壇場でPHPじゃ歯が立たない状態になってる。
phpてw
そこまで話のレベル落とされても…
gcjならjre使うより速いって思い込んでる住人のレベルの低さのが気になる
JITコンパイル時間が短縮される
実行時の性能は今時のサーバーVMのが上
つまりサーバアプリに使っても何の意味も無い
ってことで合ってる?
思い込んでねえって。10ぐらい前のレスでも話でてる。
>>554 サーバアプリみたいに、
起動しっぱなしで、
同じコードを何度も何度も実行する応用の場合、
JITの性能がメインファクター。
gcjはarmネイティブコンパイル用に使うんです><
armって、libgcjもてるような環境そんなに多いか?
ちょw