1 名前:デフォルトの名無しさん mailto:sage [03/03/03 02:56] 1なのにsageちゃうあたりがgcj 本家 gcc.gnu.org/java/ 関連: 「GCCについて part2」 pc2.2ch.net/test/read.cgi/tech/1046179115/
231 名前:デフォルトの名無しさん mailto:sage [05/02/03 22:05:04 ] >>225 rhug は Java で書かれたクラスライブラリをGCJでコンパイルできる ようにしたものの集合…かなぁ? 扱っているライブラリの一覧は sources.redhat.com/rhug/index.html で見れるはず… Xerces + Xalan や Log4j,JUnitなんかも入っているんだけど どの程度ちゃんつ動くかは知らん… Xerces と Xalan だけはちょっとだけ試して一応動くことは確認したけど…
232 名前:デフォルトの名無しさん mailto:sage [05/02/04 22:24:35 ] >>223 SwingWT で swing のAPIを使うくらいならそのままSWTを使うかな… >>228 も書いてるけど足りないメソッド,動作しないメソッドがあって 既存のswingアプリを動かすにはかなり手間かな…
233 名前:デフォルトの名無しさん mailto:sage [05/02/07 17:08:42 ] >>230 小さくなるがそのランタイムは7Mくらいあるぞ まぁJREよりはマシだけど本末転倒だよな
234 名前:デフォルトの名無しさん mailto:sage [05/02/07 17:44:48 ] Some benchmark results gcc.gnu.org/ml/java/2005-02/msg00024.html
235 名前:デフォルトの名無しさん mailto:sage [05/02/07 19:57:07 ] gcjでランタイムをスタティックリンクすると、GPLに感染する?
236 名前:デフォルトの名無しさん mailto:sage [05/02/07 21:04:04 ] debianに入ってるjavaのパフォーマンスの良さに驚いた。 実装の名前は忘れたけど。 Cで実装したjarも速くてイカす。
237 名前:デフォルトの名無しさん mailto:age [05/02/07 22:13:18 ] >>236 それが何か 教えて欲しいから☹age
238 名前:デフォルトの名無しさん mailto:sage [05/02/08 00:35:24 ] nonfreeじゃなかったからkaffeかgcjくらいしか思いつかないが・・・?
239 名前:デフォルトの名無しさん mailto:sage [05/02/08 03:35:20 ] >>235 例外規定なしのバイナリとであれば静的/動的に関わらずリンクしたらGPLに感染する。 例外規定がある場合は例外規定の内容による。
240 名前:デフォルトの名無しさん [05/02/08 03:53:37 ] The rhug project is no longer necessary thanks to the great gcj and GNU Classpath hackers. rhugはobsoletedになったようです。
241 名前:デフォルトの名無しさん mailto:sage [05/02/08 04:06:04 ] ばれなきゃなんでもOK
242 名前:デフォルトの名無しさん mailto:sage [05/02/08 04:11:40 ] ばれなきゃいいっていう精神的乞食にだけはなりたくないね。
243 名前:デフォルトの名無しさん [05/02/08 04:13:43 ] 上の方を見ると例外規定があるおかげで動的静的リンクで感染しないように思うのだが、、
244 名前:デフォルトの名無しさん mailto:sage [05/02/08 14:50:08 ] >>243 常に例外規定があるわけではない。 作者はいつ例外規定を書き換えたり無くしたりしても構わないし、 例外規定には「ライブラリを改変した者は改変バージョンの配布時に 例外規定を削っても良い」と明記してある。
245 名前:デフォルトの名無しさん mailto:sage [05/02/08 14:53:33 ] 「ライブラリを改変〜」ってのは以下の部分。 > If you modify this library, you may extend this exception > to your version of the library, but you are not obligated to do so. > If you do not wish to do so, delete this exception statement > from your version.
246 名前:デフォルトの名無しさん mailto:sage [05/02/08 15:29:32 ] なんでGPLの話になると必死なのが沸いてくるんだ?
247 名前:デフォルトの名無しさん [05/02/08 16:13:49 ] そりゃ使おうと思ってるからさ
248 名前:デフォルトの名無しさん mailto:sage [05/02/10 00:33:40 ] >>237 今手元にマシンないけどたぶんgcjだった気がする。 パフォーマンスっていうか、立ち上がりがよくて軽快。 ロードしてからだったら計測したらsunの方が上なんだろうけど オレは起動が速いほうがいい。
249 名前:デフォルトの名無しさん mailto:sage [05/03/02 03:13:19 ] fastjar
250 名前:デフォルトの名無しさん mailto:chage [05/03/06 00:54:04 ] このスレが立てられて2年と3日、やっと1/4使いきりました。
251 名前:デフォルトの名無しさん mailto:sage [05/03/06 03:52:00 ] それでもgcj自体よりは使われてるよう棚
252 名前:デフォルトの名無しさん mailto:sage [05/03/13 23:18:57 ] knopix て gcj なのね
253 名前:デフォルトの名無しさん mailto:sage [2005/03/31(木) 19:48:45 ] >>252 何が?
254 名前:デフォルトの名無しさん mailto:sage [皇紀2665/04/01(金) 02:12:49 ] ttp://slashdot.jp/developers/05/01/15/0637223.shtml ttp://slashdot.jp/developers/05/03/19/1544241.shtml ↑ここいら辺の記事読むと、gcjでeclipseをnative compileとか 書いてあるけど、ちょっと、そそられない? #eclipse、まったく使えて無いのだけど、、。
255 名前:デフォルトの名無しさん mailto:sage [2005/04/10(日) 12:21:22 ] なんでIDEが必要なのかがわからん。 便利さがあると思うけど、その分重くなっているのなら意味がないと思うんだよね、僕は。
256 名前:デフォルトの名無しさん mailto:age [2005/04/11(月) 19:31:33 ] キリ番なのでAGEます。
257 名前:デフォルトの名無しさん mailto:age [2005/04/11(月) 21:11:15 ] キリ番なのでAGEます。 257進数で。
258 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 21:45:21 ] Javaの文法は好きなんだがVMはちょっとなぁ というオレに最適な
259 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 22:55:35 ] >>258 gcj使って単独で動く実行ファイル作ってもVM内臓か外付けか、 の違いしかないと思うが。もしくはGPLマンセーか、Sunが嫌いか、 みたいな政治的(?)な動機とか。
260 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 23:00:55 ] >>259 jreのインストロールさせるのマンドイ というのも理由のひとつにしようと思っていた。 だが
261 名前:デフォルトの名無しさん [2005/04/13(水) 00:36:12 ] >>254 See "Native Eclipse - The Fast and the Furious IDE" section in developer.classpath.org/mediation/ClasspathShowcase
262 名前:デフォルトの名無しさん mailto:無駄に [2005/05/02(月) 22:40:34 ] age
263 名前:デフォルトの名無しさん mailto:sage [2005/05/05(木) 21:34:15 ] jikesもエエヨー
264 名前:デフォルトの名無しさん mailto:sage [2005/05/07(土) 21:26:06 ] ん?どういうことぉ?
265 名前:デフォルトの名無しさん mailto:age [2005/05/07(土) 21:26:51 ]
266 名前:デフォルトの名無しさん mailto:sage [2005/05/07(土) 21:35:24 ] jikes自体はネイティブアプリケーションだけど、gcjみたいにネイティブ コードを吐けるわけじゃないのにな。
267 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 03:54:04 ] >>266 まぁそうだけど… gcj自体はクラスファイルを生成できるネイティブアプリケーション でもあるので jikes と競合しているといえなくもない… # あれ? じゃあ gcj だけでいいじゃんってことにな(ry
268 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 22:55:18 ] アパッチのメンバーら、「Project Harmony」でオープンソース版J2SE開発へ japan.cnet.com/news/ent/story/0,2000047623,20083372,00.htm だって。
269 名前:デフォルトの名無しさん mailto:age [2005/05/11(水) 06:38:37 ] >>268 そのニュースソース自体はここ関係ないよ それを使ってGCJに寄与できるかっていうと、そうは思えないし。 早くSWINGの実装してほしいな。僕には無理だから。
270 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 09:53:13 ] > ニュース-ソース [news source]< > > 情報源。 情報源っつー事は…… Apache Foundation? それとも Harmony の提案があったメーリングリスト?
271 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 12:08:38 ] >>269 そんな貴方にclasspath
272 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 12:55:37 ] >>269 本当にやるんなら gcj とか classpath とは競合するだろうから、 少なくともやる気とか競争心の部分で寄与してくれると思うよ。 それに Apache License v2 は GPL より緩いライセンスだから、 gcj とか classpath から見たら、Project Harmony の成果物をパクり放題。 実際にパクるかは別だし、まだ何も無いけど。
273 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 15:13:05 ] www.kaffe.org/~stuart/japi/htmlout/h-jdk14-classpath.html をみると Swing も 半分以上は出来てるのか。 ダメっぽいのは metal LAF とか、text関係(HTMLも)とかぐらい? >>271 gcj が使ってるのは基本的に classpath だろ。 gcj の方で若干手を入れてるかもしれんが。
274 名前:269 mailto:age [2005/05/11(水) 22:58:57 ] >>271-273 よくわかってないんだけど、classpathはGCJに含まれているみたいなことをどっかで呼んだんだけど、gcj?(GCC?,GPL?,FSS?)バージョンのclasspathが入ってるってことなの? 別途、classpathをインストロールすればswingとかでアプリ組めるってこと?
275 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 23:32:27 ] >>274 classpathのAWTって確かGTK+ベースのやつしかないんじゃなかったっけ?
276 名前:274 mailto:sage [2005/05/11(水) 23:52:33 ] thx 今、Gnome使ってるからちょうどいいな。 調べてみます。
277 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 00:32:01 ] www.kaffe.org/~stuart/japi/ って、100%完成ってでててもコンパイルが通るだけで実行ができないものも含まれてるよね?
278 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 21:27:15 ] >>268 gcc.gnu.org/ml/java/2005-05/msg00093.html > We're trying to come up with some licence that allows the Apache > people to work with us and share resources. We're fairly confident > that it can be done. だそうで。GNU のプロジェクトなのに GPL 止めるのかな?
279 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 22:58:12 ] >>278 例えば(広告条項のない)Apache License 2 ならば、その成果をGPLなソフトに取り込む のは問題ないよね。そういう意味で互換性のあるライセンスでやる(やってほしい)ってこと じゃない?
280 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 00:33:15 ] >>279 それだと完全な一方通行になるから share resources とは言わんのでは?
281 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 01:24:17 ] 例外条項で調整するのかな。 www.gnu.org/software/classpath/license.html
282 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 01:26:09 ] そうだとすると、例外条項って何でもアリになってくるな。 すでに何でもアリになってるけど。
283 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 15:24:18 ] fedora developmentに libswt3-gtk2 というRPMが入っていたので、入れてみたら、 /usr/lib/eclipse/plugins/org.eclipse.swt.gtk_3.1.0.jar.so というのがインストールされていました。どうもswt.jar のgcjによるsoっぽいんで、 % gcj --main=WindowSample1 -o WindowSample1 /usr/lib/eclipse/plugins/org.eclipse.swt.gtk_3.1.0.jar.so WindowSample1.java としてみたら、ちゃんとリンクができ、実行オブジェクトができました。 でも、 % ./WindowSample1 としたら、 Exception in thread "main" java.lang.LinkageError: unexpected exception during linking: org.eclipse.swt.widgets.Display at java.lang.VMClassLoader.transformException(java.lang.Class, java.lang.Throwable) (/usr/lib/libgcj.so.6.0.0) at java.lang.VMClassLoader.resolveClass(java.lang.Class) (/usr/lib/libgcj.so.6.0.0) at java.lang.Class.initializeClass() (/usr/lib/libgcj.so.6.0.0) at WindowSample1.main(java.lang.String[]) (Unknown Source) at gnu.java.lang.MainThread.call_main() (/usr/lib/libgcj.so.6.0.0) at gnu.java.lang.MainThread.run() (/usr/lib/libgcj.so.6.0.0) Caused by: java.lang.NullPointerException at java.lang.VMClassLoader.resolveClass(java.lang.Class) (/usr/lib/libgcj.so.6.0.0) となりました。しくしく。そう楽にはいかないの?
284 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 15:38:52 ] -lエクリプス(swt?)が抜けてるのでは? 違ってっても文句は言わずに。
285 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 23:14:07 ] >>284 全然関係なかった。隣家に渡すオプションが必要だった。 あと、やっぱりコンパイル時にジャンプ先を確定しないよう indirect-dispatchを指定するとか、幾つか工夫がいる。 libgcjやswtをLD_LIBRARY_PATHに通しておいたら、 バイナリのサイズは数十キロだけだし、GTK使ってるから日本語も問題ない。 同じソースで、windowとlinuxでnativeなguiを使ったバイナリが生成できるのは 最強だな。
286 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 00:14:12 ] ネイティブなのに速度ではHot Spotに遠く及ばないという理不尽さをのぞけば最強だ。w
287 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 18:37:51 ] >>286 実行ファイルのイメージがネイティブであるとかないとかってのは速度にあんまし関係ないからねぇ。
288 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 18:55:33 ] Windowsなら(サイズでかくなるけど)ランタイムの配布が不要なのは一応メリットになるが 他のOSではどうなんだろう?
289 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 19:49:53 ] 静的にも動的にも結合できるから問題ない。 動的な場合、libgcjをインストールさせればよい。 UNIX系の場合、
290 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 13:03:36 ] ってか Linux や BSD で最近の gcc が入ってれば大抵 libgcj は 入ってるはずだし… メリットは * ランタイム配布が不要 * 起動時間がJREよりは速い くらいか... swt でクライアントアプリケーションやツール系を作るのに使うってのが 無難な(おそらく唯一の)使い道じゃないかな? ゲームとかは… やっぱ C++ や D 言語の方が向いてる気がするなぁ…
291 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 22:27:45 ] >大抵 libgcj は 入ってるはずだし… ところがギッチョン入ってなかったりする
292 名前:290 mailto:sage [2005/05/26(木) 14:03:07 ] >>291 そんな環境もあるかもなー,という気はしてた… 具体的にどの環境で入ってなかったのか晒してくれるとみんな参考になるかも?
293 名前:291 mailto:sage [2005/05/26(木) 21:33:46 ] >>292 ここ数年LinuxのFTP版(無料)のディストロをアップデート期限まで使用しては 乗り換え〃してるからどれがそうだったかははっきり覚えてなけど、 Linuxのディストロによっては元からインスロールイメージに入ってなかったり、 標準ではインストールされないものがあった。 まぁでもソースからインスソールさせればいいのかなぁ。
294 名前:290 mailto:sage [2005/05/27(金) 14:43:16 ] そのディストリビューションは最近のgcc(3以降くらいか?)なんだよねぇ?
295 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 14:46:28 ] 古いlibgcjなんかが入ってると、かえって迷惑ってこともあるわな。 現状ではスタティックリンクがお勧めかな。
296 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 15:22:35 ] g++ + boehm GCで書くのとgcjで書くのとでは、パフォーマンス的には同じよーなモノなのでしょーか? 後、バイナリサイズ的にはいかがでしょう。
297 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 15:49:44 ] 自分で計れよ。バイナリサイズなんて何を使うかで全然違ってくるだろ。 それからg++ + boehmがJavaのように使えると思ったらかなり間違いだ。
298 名前:デフォルトの名無しさん [2005/06/02(木) 21:26:08 ] Linuxで作って、Windows用バイナリーを作る方法教えてください
299 名前:デフォルトの名無しさん mailto:sage [2005/06/02(木) 22:40:45 ] 1.Linuxで書いて、Windowsでコンパイル 2.Wineでコンパイル 3.Mingwnでコンパイル 4.ソース眺めながら脳内コンパイル
300 名前:デフォルトの名無しさん mailto:sage [2005/06/02(木) 22:54:13 ] 5. バイナリエディタで作る
301 名前:デフォルトの名無しさん mailto:sage [2005/06/03(金) 00:37:51 ] 6. Linux側にクロス環境を構築する。
302 名前:デフォルトの名無しさん mailto:sage [2005/06/03(金) 01:34:52 ] 5は3、6は4と言ってる事たいして変わらんね
303 名前:デフォルトの名無しさん mailto:sage [2005/06/03(金) 01:35:17 ] 逆だった・・・
304 名前:298 [2005/06/03(金) 06:43:14 ] >>301 の6の方法がいいですが、何を準備すればいいでしょう? と、いうかWindowsは職場にしかなく、Linuxは自宅にしかなく、 会社の規定でWindows側に開発環境を持ち込めないのですが、 どうしてもちょっとしたソフトが必要になっています。
305 名前:デフォルトの名無しさん mailto:sage [2005/06/03(金) 13:13:12 ] ぐぐってみた。 ttp://bitwalk.hp.infoseek.co.jp/ ためしてはいない。
306 名前:デフォルトの名無しさん [2005/07/08(金) 21:40:38 ] gcjでant使えるようにえれーいろいろコンパイルして 動くまでいったらant.exe 32MBでした。以上です
307 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 02:34:31 ] ネイティブ言語なら、動的/共有ライブラリにして外出しされる部分だろうな、サイズを増加させてるのは。
308 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 20:58:33 ] >>306 Fedora Core 4のant-1.6.2-3jpp_10fcだと /usr/lib/libant-1.6.2.jar.soが3,221,724バイト、 /usr/lib/libant-launcher-1.6.2.jar.soが25,688バイト。 合わせてだいたい32MBくらい?
309 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 22:39:29 ] >306 仰るとおりです。ant, ant-launcherだけだとうまく動きませんで、 足りないのばんばん足してった結果 xerces, bcel, log4j, junit, xalan, ant-nodeps(7割) まで入れちゃって32MBになります。入れたはいいがjunit, xalanは機能しない >307 個々のサイズはant (5,441,802), ant-launcher(51,386)になります そこまで小さいのはできそうにありません 機能しないの取っ払って最適化いじって32MBは9MBまでいきました。 マルチスレッド機能してるしすごいねこれ、9MBあっても普通のより早いと感じる。 gcjいかすね!バグみっけたら俺の園児レベルの英語でばんばんパッチ送っていくぜ
310 名前:1段ずれたのはご愛嬌 mailto:sage [2005/07/09(土) 23:41:04 ] ant.exe+jikes.exeちょっぱやっすよちょっぱや
311 名前:デフォルトの名無しさん mailto:sage [2005/07/18(月) 07:51:53 ] >76 の作り方教えて欲しい
312 名前:デフォルトの名無しさん mailto:sage [2005/08/03(水) 22:38:53 ] へいお前さんがた 静的にするには名前集めてもっかいリンクするだけじゃないのかい? うまく作れないけど、ものっそい名前つく _ZN99とかだらけだけどよろしいのかな echo EXPORTS >libgcj.def nm libgcj.a | grep ' T _' | sed 's/^.* T _//' >>libgcj.def dlltool --def libgcj.def --dllname libgcj.dll libgcj.a 最後のdlltoolってばgcj -share とかでも同じ?なんか微妙に違うけど これでdll作ってそっから吐き出すlibgcj.aで置き換えたら完 ってはずだったんだけど参ったぜ、ぶっちゃけるとここでスキル全開なんだ こんな単純じゃない?どうやってこしらえるん
313 名前:デフォルトの名無しさん mailto:sage [2005/08/10(水) 12:23:36 ] MinGW 環境での gcj用の SWT のビルド手順と MinGW gcc3.4.4 用のバイナリパッケージ. ttp://hoeppie.gmxhome.de/SWT/
314 名前:デフォルトの名無しさん [2005/08/28(日) 15:42:18 ] Cygwinのgcj使ってるんだけど gcjってSJISのファイル入出力どうやるの? 普通にReader、Writer使って動いてたたclassをEXE化したら 化けて全然使えないんだけど。
315 名前:デフォルトの名無しさん mailto:sage [2005/08/28(日) 16:26:25 ] >>314 new InputStreamReader(inputstream, "SJIS "); new OutputStreamWriter(outputstream, "SJIS ");
316 名前:314 mailto:sage [2005/08/28(日) 19:28:38 ] ぬ、 素人だと思って馬鹿にしてるな こちとらUNIX系は素人だけど Javaは1.0のころからやってんだこんちくしょうべらぼうめ。 ていうかおねがいしますよ 助けてくださいよ 普通にjavaコマンドで動かせば問題ないんですよ。 gcj --main=TestMain --classpath=bin -o test.exe bin/TestMain.class ってexeに変換したら全然だめなんですよ。
317 名前:314 テストソース mailto:sage [2005/08/28(日) 19:29:26 ] import java.io.*; import java.util.*; public class TestMain { private static final String WIN_SJIS = "Shift_JIS"; static PrintWriter log; public static void main(String[] args) throws IOException { String inFile, outFile; inFile = args[0]; outFile = args[1]; System.out.println("infile:" + inFile); System.out.println("outfile:" + outFile); OutputStream os = new FileOutputStream("debug.log"); log = new PrintWriter(new OutputStreamWriter(os, WIN_SJIS)); List list = readLines(inFile); writeLines(outFile, list); }
318 名前:314 テストソースつづき mailto:sage [2005/08/28(日) 19:30:37 ] private static void writeLines(String outFile, List list) throws IOException { OutputStream os = new FileOutputStream(outFile); BufferedWriter w = new BufferedWriter(new OutputStreamWriter(os, WIN_SJIS)); Iterator i = list.iterator(); int line = 0; while (i.hasNext()) { String out = (String)i.next(); w.write(out); w.write("\r\n"); w.flush(); line++; if (line % 50 == 0) System.out.println("out:" + line + ":" + out); } w.close(); }
319 名前:314 テストソースつづき2 mailto:sage [2005/08/28(日) 19:31:14 ] private static List readLines(String inFile) throws IOException { InputStream is = new FileInputStream(inFile); BufferedReader r = new BufferedReader(new InputStreamReader(is, WIN_SJIS)); List list = new LinkedList(); long line = 0; String in; while ((in = r.readLine()) != null) { list.add(in); line++; if (line % 50 == 0) System.out.println("in:" + line); } r.close(); return list; } }
320 名前:デフォルトの名無しさん [2005/08/28(日) 19:39:15 ] >ってexeに変換したら全然だめなんですよ。 当たり前じゃん そこまでネイティブに無料で変換できるのであればJETなど買う奴いない gcjのサポートしているAPIを読め
321 名前:314 mailto:sage [2005/08/28(日) 19:48:43 ] >>320 >当たり前じゃん >そこまでネイティブに無料で変換できるのであればJETなど買う奴いない ガーン。 GUIがアレなのは予想できたけど テキスト処理ONLYのコンソールアプリもダメとは! >gcjのサポートしているAPIを読め すんませんリンク教えてください。
322 名前:デフォルトの名無しさん mailto:sage [2005/08/28(日) 20:03:13 ] ant.exe作ってからこつこつ知識をつけてきた俺がお答え、 できませんスキルの関係でもうしばらくお待ちください。 自分はウィンだと痒いところに手が、いや痒いところに対して全然手が足りない状態だったので kernel2.6と駆け落ちしています。 コツはね、jarをいっきにいかずばらして全部コンパイルして そんで一回まとめて ar cur libtest.a *.o gcj --classpath=.:test.jar --main=Main Main.o -ltest ってのが俺はすんなりいった
323 名前:デフォルトの名無しさん [2005/08/28(日) 20:04:33 ] >libgcjは、 JDK 1.2ライブラリとおおむね互換性があります。 >しかし、 libgcjには欠けているパッケージも数多くあります。 >これは、 java.awtにおいて特に顕著です。個々のクラスやメソッドで欠けているものもあります。 >現在のところ、 libgcjとJava 2プラットフォームの相違点を一覧にしたものはありません。 ちょっと待ってくれよ、そこまでコンパイルオプション知っていて尚且つJava暦長いのなら GCJのDoc当然読んでいると思ったよ
324 名前:デフォルトの名無しさん [2005/08/28(日) 20:05:33 ] >現在のところ、 libgcjとJava 2プラットフォームの相違点を一覧にしたものはありません。 ↑これが重要で しかも[悪]
325 名前:デフォルトの名無しさん mailto:sage [2005/08/28(日) 20:18:21 ] libgcj.aからSJIS周りの.oファイルを取り出して直接リンク。 ところでそれ、テストソースになってない。どこでなにがどう 化けているか確認できないだろ。
326 名前:314 mailto:sage [2005/08/28(日) 20:28:28 ] >>323 いや、俺もそこは読んだけど AWTは互換性あんまないけど他はけっこういけるんじゃないかと思ったのさ (甘かったけど) >相違点を一覧にしたものはありません。 うーん。 >どこでなにがどう化けているか確認できないだろ。 ファイル出力もだめだしSystem.outでコンソールに出しても化け化けでどうにも、、 unicodeをダンプするべきだったすね。
327 名前:デフォルトの名無しさん [2005/08/28(日) 20:51:10 ] (new InputStreamReader(is, WIN_SJIS)); がダメなら バイトで読み込んでそのままバイトで出すとどうなる? そうすれば、少なくともWin環境ではコンソールで化けないとおもう
328 名前:デフォルトの名無しさん mailto:sage [2005/08/28(日) 20:52:21 ] 皆使ってんのか!??俺だけじゃねーのか?とか思ってたぞ これ作ってみバイナリサイズも実行速度も文句ないと思うよ 依存もないし unzip javacc-3.2.jar for cls in `find|grep *.class`; do gcj -g -O2 --classpath=. -c -o ${cls%class}o $cls done gcj -g -O2 --classpath=. --main=javacc -o javacc javacc.o org/javacc/parser/*.o 他ねーの??
329 名前:デフォルトの名無しさん mailto:sage [2005/08/28(日) 20:54:35 ] >>326 最低限 String s1 = "\u3042"; System.out.println(s1); System.out.write(s1.getBytes("Shift_JIS")); System.out.println(); System.out.println(System.getProperty("user.language")); System.out.println(System.getProperty("file.encoding")); これくらいの情報はないとね。
330 名前:デフォルトの名無しさん mailto:sage [2005/08/28(日) 20:55:13 ] それ動くか試してないから手直必須 あと org/javacc/parser/Version.oも入れる
331 名前:デフォルトの名無しさん mailto:sage [2005/08/28(日) 21:13:36 ] 329にちょっと追加してみた。 String s1 = "\u3042"; System.out.println(s1); System.out.write(s1.getBytes("Shift_JIS")); System.out.println(); System.out.println(System.getProperty("user.language")); System.out.println(System.getProperty("file.encoding")); OutputStreamWriter ow = new OutputStreamWriter(System.out, "Shift_JIS"); ow.write(s1 + "\r\n"); ow.close(); $ gcj --main=Test Test.java $ ./a.exe ? あ en 8859_1 あ $ gcj --version gcj (GCC) 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125) 一行目が文字化けするのはfile.encodingが違うからだけど、 5行目からちゃんと明示的に指定すれば文字化けしないことがわかる。 入力系は見てないけど同じような感じで確認してみたら?