gcjって使ってる人います?
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG本家
http://gcc.gnu.org/java/
関連:
「GCCについて part2」
http://pc2.2ch.net/test/read.cgi/tech/1046179115/
0002デフォルトの名無しさん
NGNGsageてても一番上に出てますた
0003デフォルトの名無しさん
NGNGC#厨が3getです。
┏━━┓
┃C# ┃
⊂(`・ω・´⊂⌒`つ≡≡≡(´⌒;
0004デフォルトの名無しさん
NGNG、ヾ''""ツノ, <ほっしゅ入りまーす
ミ ・д・ 彡
"ミ,, , ; ;;::ヾ
"'''''""
0005デフォルトの名無しさん
NGNG最近のVMなら十分な速度出てると思うが。
かといって、IOとかGUI系はまだ実装不完全だろ?これ
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNGGPLなことに意味があります。
Blackdownの借りをかえさなくてはいけません。
0008デフォルトの名無しさん
NGNGhttp://gcc.gnu.org/java/status.html
0009デフォルトの名無しさん
NGNG0. JDK はインストール済みとする。最新の 1.4.1_02 推奨。
1. まず cygwin をインストールしましょう。
Base と Devel カテゴリーをごりっと全部インストールしてください。
cygwin の質問は以下のサイトやスレで。
http://www.mars.dti.ne.jp/~sohda/cygwin/
Cygwin使っている人いますか? part7
http://pc.2ch.net/test/read.cgi/unix/1039449446/
Cygwin使っている人いますか?
http://pc2.2ch.net/test/read.cgi/win/1023470780/
2. インストールしたら cygwin のシェルで
$gcc -v
と打ってみましょう。
バージョンが 3.x、--enable-languages に java が入っていることを確認してください。
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNGメモ帳などで以下の簡単なプログラムを作ります。
--- Hello.java
class Hello {
public static void main(String args[]) {
System.out.println("hello world");
}
}
4. コンパイルしてみましょう。
クラスファイルを作成します。-C オプションを指定します。
$gcj -C Hello.java
Hello.class が作成されているはずです。
5. JDK の java コマンドを使って実行してみましょう。
$java Hello
hello world
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG実行を開始する main メソッドのあるクラスを --main オプションで指定します。
出力するファイル名を -o オプションで指定します。
$gcj --main=Hello -o Hello.exe Hello.java
7. 実行してみましょう。
$./Hello.exe
hello world
apx. gcc 同様最適化の指定もできます。
$gcj -O3 --main=Hello -o Hello.exe Hello.java
0014デフォルトの名無しさん
NGNGこんなんでちゃうな。。。ldはあるんだけど。
0015デフォルトの名無しさん
NGNGここに書いてあった。失礼
0016デフォルトの名無しさん
NGNG$gcj -c -o Hello Hello.java
$gcj --main=Hello -o Hello Hello.o
0017デフォルトの名無しさん
NGNG→UTF-8 で保存する
0018デフォルトの名無しさん
NGNGCreate native, cross-platform GUI applications
--How GCJ, Linux, and the SWT come together to solve the Java UI conundrum
http://www-106.ibm.com/developerworks/linux/library/j-nativegui/index.html?dwzone=linux
cygwin でもできそうな気はするが。
0019デフォルトの名無しさん
NGNGhttp://gcc.gnu.org/ml/java/2002-12/msg00105.html
cygwin じゃなくて mingw で gcj したい人向け
How to build GCJ for Windows
http://ranjitmathew.tripod.com/phartz/gcj/bldgcj.html
この辺は試してない。
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG関してはやることが沢山あるのかな。
0022デフォルトの名無しさん
NGNGhttp://www.shudo.net/jit/perf/index.html
0023デフォルトの名無しさん
NGNGhttp://sourceforge.net/projects/mingw/
http://sourceforge.net/project/shownotes.php?release_id=127221
>>21
JRE を内蔵していると考えればこんなもんかと。
strip して upx かければ多少縮まる。
0024デフォルトの名無しさん
NGNGこれさ、オブジェクトファイルは5kなのにバイナリ作ると
一気に2MB,stripかけても1.3MBにもなるのね。
そのくっつく部分をライブラリとしてそとに出せないもんなのかな?
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNGAWT フルサポートしたら Swing も殆ど全部動くでしょ。
0027デフォルトの名無しさん
NGNGちゃうちゃう、Javaの標準ライブラリを全部抱えてるから
>>24
できるよ。つか*nix系だとデフォでそーなってる(ハズ)。
win系(cygwin/mingw)で.aから.dllを作る方法はそっち方面探せ。
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNGLinuxでダイナミックリンクした場合、HelloWorldは5152バイト。
リンクしている共有ライブラリはこんな感じ。
% ldd HelloWorld
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x4002c000)
libgcj.so.2 => /usr/lib/libgcj.so.2 (0x40034000)
libm.so.6 => /lib/i686/libm.so.6 (0x403e8000)
libz.so.1 => /usr/lib/libz.so.1 (0x4040a000)
libdl.so.2 => /lib/libdl.so.2 (0x40418000)
libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
libgcjgc.so.1 => /usr/lib/libgcjgc.so.1 (0x4041b000)
libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40447000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
0030デフォルトの名無しさん
NGNGmingw 版は動的リンクできるのかな。
0031デフォルトの名無しさん
NGNGcase-insensitive bug なる問題で gcj がビルドできなかった。
どうやら case-sensitive なファイルシステム上でクロスコンパイルしてやらないとダメらしい。
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNGlibgcjを共有ライブラリにした場合
HelloWorld(strip)
mingw : 12800
cygwin: 11776
Helloswt/mingw
static: 3453952
gcjのみdll: 1565696
gcj/swtをdll: 12824
0035デフォルトの名無しさん
NGNG情報さんくす
0036デフォルトの名無しさん
NGNGMinGW のとこに置いてあったバイナリだと無理っす。
gcj -v の出力
Configured with: /extra/src/gcc/gcc-3.2/configure --prefix=/extra/wingcc --build
=i686-pc-linux-gnu --host=mingw32 --target=mingw32 --enable-languages=c,c++,java
--with-gcc --with-gnu-as --with-gnu-ld --with-as=/extra/xgcc/bin/mingw32-as --w
ith-ld=/extra/xgcc/bin/mingw32-ld --enable-threads=win32 --disable-nls --disable
-win32-registry --disable-shared --disable-debug --disable-multilib --without-ne
wlib --enable-libgcj --disable-java-awt --without-x --enable-java-gc=boehm --dis
able-libgcj-debug --enable-interpreter --enable-hash-synchronization
Thread model: win32
gcc version 3.2 (mingw special 20020817-1)
003734
NGNG34はコンパイラ自体はcygwin,mingw標準のものです。
gcjコンパイラバイナリは関係ないす。共有ライブラリ(のインポートライブラリ)があるかどうか。
で.aから.dllを作るには基本的にはバラして再リンクすればいいわけだが、.aと.dllの挙動の違い
(ライブラリ側にdeclspec(dllexport)または.defが、使う側にdeclspec(dllimport)が必要など)
をldで自動的に吸収するために、リンク時にオプションで小細工が必要。
この辺参照。
http://gcc.gnu.org/ml/java/2002-12/msg00287.html
なおcygwinではpseudo-reloc.cは不要。
とここまでふっといてgcjを常用してるかっつーとためしにやってみたダケなんだが。
0038デフォルトの名無しさん
NGNGでAWT関係のクラスを削除したswt.jarをmingwのGCJでコンパイルすると
unreachable bytecode from...っていう警告がたくさん出てくるのですが、オブジェクトファイルはできてるんです
これで大丈夫なんでしょうか?
0039デフォルトの名無しさん
NGNGたぶん大丈夫でしょ。到達不能な部分があるってだけの話だから。
その警告は特定バージョンのための条件分岐とかあると絶対出てくるので。
004138
NGNGあらためて自分の文才のなさが浮き彫りに(鬱
http://page.freett.com/gikob/gcjswt.html
0042デフォルトの名無しさん
NGNGさんの解説通り
インストールできました
わかりやすかったです
swingで書いたアプリを移植するは
アプリによっては大変ですね
描画をたくさんしていると
awt.ColorとかGraphicsとかを
書き換えないといけないです
いい方法ないでしょうか?
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNG0049tantei
NGNG●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
直通 090−8505−3086
URL http://www.h5.dion.ne.jp/~grobal/
メール [email protected]
グローバル探偵事務局
0050デフォルトの名無しさん
NGNG_, ._
( ゚ Д゚)
( つ旦O
と_)_)
http://gcc.gnu.org/ml/java/2002-12/msg00105.html
を参考にして、libswt.aを作りました。
$ ls
Test.java build.sh* libswt.a swt-win32-2132.dll* swt.jar
$ gcj -mwindows --classpath=./swt.jar --main=Test Test.java -L. -lswt
/cygdrive/c/WINNT/Temp/ccjjEJMB.s: Assembler messages:
/cygdrive/c/WINNT/Temp/ccjjEJMB.s:38: Warning: .stabs: description field '100004' too big, try a different debug format
/cygdrive/c/WINNT/Temp/ccjjEJMB.s:206: Warning: .stabs: description field '10001' too big, try a different debug format
0051デフォルトの名無しさん
NGNG$ ./a.exe
Exception in thread "main" java.lang.UnsatisfiedLinkError: swt-win32-2132: file not found
と、カレントディレクトリにswt-win32-2132があるにも関わらず、file not found になってしまいます。
%SYSTEM_ROOT%/system32/にDLLを突っ込んでも同じでした。
解決策お願いします。
[環境]
Windows2000sp3
$ uname -a
CYGWIN_NT-5.0 rcl 1.3.22(0.78/3/2) 2003-03-18 09:20 i686 unknown unknown Cygwin
$ gcj --version
gcc (GCC) 3.2 20020927 (prerelease)
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNGそりはコンソールの表示文字コードの問題かと・・・
0055デフォルトの名無しさん
NGNGだ、誰かつД`) タスケレ !!
0056名無しさん@XEmacs
NGNGmltermかrxvt-ml使えば? euc-jpもutf-8も可。
どっちもcygwinに入っていると思た
http://mlterm.sourceforge.net/
http://www.geocities.co.jp/SiliconValley-Oakland/6833/rxvt/
>>53
console表示はgcjの担当じゃないもんね(w
出力は担当だけども。
005753
NGNG0058山崎渉
NGNG0059デフォルトの名無しさん
NGNG0060山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0061デフォルトの名無しさん
NGNGdlltool や dllwrap を使ってあれこれやってみたのですが…。
実際に使おうとすると、undefined reference の嵐です。
http://members.tripod.co.jp/usr_vogel/Compiler/Mingw32/DLLMake.html
http://webclub.kcom.ne.jp/ma/colinp/impdef.tar.gz
どなたか、libgcj.a と libswt.a を共有ライブラリにする方法を
教えてください。
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNGMS SQL Server JDBC ドライバのコンパイルはできました。
SWT, JDBC, 日本語 がこなせるので GCJ でも
それなりのアプリケーションを構築できるようになりましたね。
0064デフォルトの名無しさん
NGNGちゃんと動いているし。
0065デフォルトの名無しさん
NGNGGCJ3.3って公式ダウンロードサイトにはなかったので
検索したら↓がひっかかったんだけどこれのこと?
http://www.thisiscool.com/gcc33_mingw.htm
006665
NGNG0067デフォルトの名無しさん
NGNGpublic static void main(String[] args) {
Calendar.getInstance();
}
これがエラーになるんだよね。どのカレンダー実装を使うかは
実行時に判断されるため、リソースオブジェクトがリンク時には
リンクされないのだ。
ar x libgcj.a Calendar.o
として、リソースオブジェクトを取り出して、
gcj --main=Hello -o Hello.exe Hello.java Calendar.o
のように直接リソースオブジェクトを指定すれば、正しくリンクされて
きちんと動作する。他にも Input_SJIS.o や Output_SJIS.o などの
文字コードコンバート系 オブジェクトもリンクされないので、
http://www.thisiscool.com/gcc33_mingw.htm にある
バイナリでは、デフォルトでコンソールに日本語を表示することができない。
Input_SJIS.o などをリンクするためには、他から静的に参照されてればいいので、
IOConverter.java などで new Input_SJIS(); などとしておけば良い。
そうすれば、リンク時に Input_SJIS.o が必要だということが分かるから、
ちゃんと Input_SJIS.o がリンクされて日本語が通る。
そのうち、構成しなおした libgcj.a でもアップするか…。
0068デフォルトの名無しさん
NGNG+1 参考になる
006967
NGNG日本語が通るようにした libgcj.a です。
http://www.thisiscool.com/gcc33_mingw.htm にある
MinGW GCJ 3.3 の libgcj.a と差し替えて使います。
ただし、日本語をソースコードに記述する場合は
文字コードを UTF-8 にしておかないと、gcj にはじかれます。
僕は、UTF-8エディタとして Eclipse を使っています。
0070山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0071デフォルトの名無しさん
NGNG0072山崎 渉
NGNG0073山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0074デフォルトの名無しさん
NGNGこれ分かります?書いたの自分なんですけど。
gcjって使ってる人います?
http://pc2.2ch.net/test/read.cgi/tech/1046627795/50-
0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNGMinGW GCJ の欠点として、ライブラリがスタティックリンクされるため、
生成される実行ファイルが非常に巨大になるという問題がありましたけど、
ダイナミックライブラリが出てきたことで、この問題が解消します。
http://www.thisiscool.net/gcc34-20030802-dll.zip
0077デフォルトの名無しさん
NGNGありがたいっす。
ところで、Windows 用(っつか case sensitive でないプラットフォームの) GCJ は
(case sensitive なプラットフォームで)クロスコンパイルしないとビルドできないのは変わって無いっすか?
0078デフォルトの名無しさん
NGNGみんな Linux でクロスコンパイルしてるね。
Cygwin でコンパイルに成功した例は聞いたことないです。
0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNGSWTを使わないものですらネイティブコンパイルができません。
クラスファイルへのコンパイルなら成功してます。
cc1 に対して No Such File or directory エラーが出てたので、
C:\MinGW\lib\gcc-lib\mingw32\3.2.3
にパスを通したんですが、今度は crtbegin.o を開けないと言われました。
上記のディレクトリにファイルは存在するんですが・・・
何が問題なんでしょうか?
環境はこんな感じです。
OS:WinXP
MinGW:MinGW-3.1.0-1.exe
GCJ:gcc-java-3.3.1-20030804-1.tar.gz
008281
NGNGMinGWとgcjで微妙にバージョンが違うのが原因だったみたいです・・・
0083デフォルトの名無しさん
NGNGにも書いてあるけど GCJ の ML で value type (参照型じゃない型) 導入しない?って話が出てます。
0084デフォルトの名無しさん
NGNG実行時に
javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input stream
とでてしまいました。
同じソースでjavaでは正常にwaveが再生できたのですが。
InputStreamの実装が違うのでダメなのでしょうか。
ちなみにwaveファイルが無くても同じ例外が出てしまいます。
0085デフォルトの名無しさん
NGNGjavax.sound が使用する DLL とかは調べた?
008684
NGNGレスありがとうございます。
jsound.dllだと思います。
コンパイル時にオプション-Lで指定しました。
コンパイル時も実行時もエラーが出ないので
dllまわりはOKだと思うのですが。。
0087デフォルトの名無しさん
NGNGんじゃ、com.sun.media.sound パッケージが無いとか。
008884
NGNGそれが原因のようです。
使っているファイルを発見しました。
どうもありがとうございます。
途中経過を報告しますと
rt.jarを使ってコンパイルしようとすると
コンパイラの内部エラーがでます。
もうすこし考えてみます。
008984
NGNGたくさん
com/sun/media/sound/SunMidiFileWriter.java:124: warning: exception handler insid
e code that is being protected
のようなwarningが出て止まります。
これは何が悪いのでしょう?
0090デフォルトの名無しさん
NGNG"warning: exception handler inside code that is being protected" でぐぐったら
http://gcc.gnu.org/ml/gcc-patches/2002-08/msg01637.html
が見つかった。
適当な日本語訳
> 全てのJavaバイトコードがJavaコンパイラで生成されている
> わけではなく、それらの幾つかは非常に奇妙なものかもしれない。
> 私は Java Server Pages 用の特別なコンパイラで、例外ハンドラが
> 再帰的に自分自身を呼び出すというインチキにしか見えないコードを
> 生成するのを見たことがある。これは正常に動作しないだろうが
> (それとも正常に動くのか?)、Javaバイトコード仕様に完全に従っている。
> よって、このようなバイトコードを許すが、警告を出す事にする。
0091デフォルトの名無しさん
NGNGで似たようなもの(?)を作ってる人がいるらしいので参考にしてみては?
その人の gcj のメーリングリストへの投稿
http://gcc.gnu.org/ml/java/2003-10/msg00264.html
0093デフォルトの名無しさん
NGNG自分も同じ問題がおきたんですが同じバージョンのMinGWとGCJがあるんでしょうか?
探してみたんですけど見つけられなかったんですが・・・
009481
NGNGバージョンが書いてないのでなんとも言えないけど、GCJ3.3.1なら
下のサイトにあるMinGW base kit, bitWalk build #037をいれたらいけたよ。
http://b2c-1.rocketbeach.com/~bitwalk/index.html
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNG>>67を参考にコンソールに日本語を表示することに成功したのでメモを残しておきます
ほとんど>>67の書いていることをそのままな流用したため勝手に載せていいのか判断に迷ったので
このスレ以外にはリンクを張っていません・・・
HTML化は時間があればやります
009897
NGNGうまくいかなかったので直しました_| ̄|○
010097
NGNGgcjで日本語を扱うサンプルをいくつか作ってみました(2.7Mほど)
0101デフォルトの名無しさん
NGNG010267
NGNGNativeTest の Readme.txt の説明で Input_SJIS.o と Output_SJIS.o を
リンクしているけど、これを不要にするために jni にチャレンジしたんじゃないの?
結局、その試みは失敗しているようだけど…。せっかく jni にしているのに、
C側で CallObjectMethod() を使用して Java側の getBytes() を使っちゃったら
意味ないよね。コード変換を Java側でやることになるから jni の意味がない。
Input_SJIS.o, Output_SJIS.o の問題を回避するために jni を使うのであれば、
jniメソッドで受け取った jstring を GetStringChars で jchar* に変換してから
Win32API の WideCharToMultiByte() に渡してあげるといいよ。
これで、UTF-8 から SJIS に変換できるはず。
010397 = 41 = 38
NGNGすみません、説明不足でした
NativeTestは、Javaから渡した日本語の文字列をネイティブ側からString#getBytes()を使ってSJISの文字配列に変換し、
printfで表示できるかどうかを試したサンプルです
これができると移植性を保ちつつJavaとCの間で文字列をやりとりしやすくなるので試してみました
漏れの環境ではうまくいったのですが
うーん、JNIは難しい・・・
010497 = 41 = 38
NGNGhttp://freett.com/gikob/gcj/japanese.html
>>67さん
>>97にも書いたとおり肝心の方法がほぼそのまま>>67を流用したものなんで
勝手に載せていいのか判断に迷っていて今のところこのスレにしかリンクを張っていないんですが、このまま目次(http://freett.com/gikob/gcj/)からリンク張ってもよろしいでしょうか?
010567
NGNG何が違うのか分からない。ただ、JNI でオーバーヘッドを
増やしているだけだと思うんだけど。移植性を保つというのも…。
良かったら、もうちょっと説明してくれませぬか。
それと、なんか気を使われているようだけど、>>97 が自分で
まとめた成果なのだから、自由に Web で公開してかまわないんじゃないか。
GCJ関係のリンクに http://gcc.gnu.org/ml/java/ があると良いかも。
gcj3.4 のおっかけをするなら必須だと思われ。
010667
NGNGって書いてあるけど、GCJ なら JNI 使っても同じことができるよ。
NativeTest で gcc -shared -o NativeTest.dll NativeTest.c とやっているのを
gcc -C -o NativeTest.o NativeTest.c として
Input_SJIS.o なんかと同様に一緒にリンクするだけ。
010797 = 41 = 38
NGNG変換した文字配列はprintfに限らずchar*を引数にもつ関数にそのまま渡せるんで本質的にはConsoleとは違います
byte[]を引数にしてgetBytes()したbyte配列を渡してもいいのですが
(今考えるとそのほうがオーバーヘッド少なく済みそうな気もします・・・)
gcjでもJavaのメソッドを呼べるのか試してみたかった気持ちがあったのと
>>97,>>104の方法がJNI経由でも有効なのかどうかを確かめるものなので
ああいうサンプルになりました
説明が下手くそですいません_| ̄|○
> それと、なんか気を使われているようだけど、>>97 が自分で
> まとめた成果なのだから、自由に Web で公開してかまわないんじゃないか。
ありがとうございます
今回はさすがに>>67を書いてあることほぼそのままなんで躊躇ったんですが
目次からリンクを張ることにします
>GCJ関係のリンクに http://gcc.gnu.org/ml/java/ があると良いかも。
確かにそうですね、このスレやgoogleの検索を参考にしていろいろ試していたので
気づきませんでした。早速リンクしておきます
>>106
CNIについて書いていた頃に試してうまくいかなかった記憶はあるのですが
いつのまにか出来るようになっていたんですね
また時間があれば試してみます
010897 = 41 = 38
NGNGJNIについてメモを書いてみました
中身はCNIのメモとあまり変わっていないけど・・・_| ̄|○
0109デフォルトの名無しさん
NGNG....more Java software using gcj (Ant, Tomcat, Jakarta, Eclipse, .....
ってあるけど、
http://fedora.redhat.com/participate/schedule/
最近のgcjどうなの?ネイティブ化するとそれなりに高速化されるのだろうか・・・
0110デフォルトの名無しさん
NGNGJavaに似た文法だがあっちはC言語のライブラリ使えるし
テンプレートもあるし。
0111デフォルトの名無しさん
NGNG…
0112106
NGNG>>108
http://freett.com/gikob/gcj/jni.html の
「ただし、SWTを使っているときはうまくネイティブメソッドを実行ファイルにリンクできないようです」
という表記を消しとけよ。まったく…。
0113デフォルトの名無しさん
NGNGつーか、何処までネイティブなのかいまいち分からんがな。
JavaVM無いと動かないんでしょ?これ
0114デフォルトの名無しさん
NGNGソース公開されてんだし、自分で調べれば?
> JavaVM無いと動かないんでしょ?これ
exe 単体で動くけど。
0115デフォルトの名無しさん
NGNGんなこと言わずに教えてくれよ。
>exe 単体で動くけど。
そうなんだ。
0116115
NGNGつーか>>29見ればわかるか
スマソ
0117デフォルトの名無しさん
NGNG多分、起動時に、libgcjに実装されてるgcスレが立つんじゃないの?
0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNG必要に迫られたら使うあるのみ
0121デフォルトの名無しさん
NGNG実行環境が何メガもあってバージョン間の相性もあるとなれば
配布にも支障をきたすし、
ベンチマーク取られるようなソフトにはアウト。
これはかなりの障害だよ。
いまどきLinux−MacOSX−Windowsのクロスプラットホーム環境で
ソース互換の開発環境だってあるんだし、SunのJavaが
実行形式吐かないのはゆゆしき問題だよ。
0122デフォルトの名無しさん
NGNG実行形式ならC++とか使えばいいと思うのだが。
0123デフォルトの名無しさん
NGNG要は各プラットフォームで共通に使えるGUIライブラリとかがほしいってことじゃないの?
0124デフォルトの名無しさん
NGNGそれだともはやPCではJavaに出る幕はない。
アプレットの動く環境からユーザーは離れつつある。
全部C++でイケルんだよ。
0125デフォルトの名無しさん
NGNGアプレットも細々と使われてるけどね。
アプレットの一時的な流行(?)が終わったのは何年も前の話しだし。
0126デフォルトの名無しさん
NGNGTigerからはclientVM無くなるって話だし。
0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNG盛り込みすぎだよなぁ…。
0129デフォルトの名無しさん
NGNG1.5.0-beta-b31 の段階では client と server フォルダ両方あるけど。
0130デフォルトの名無しさん
NGNGここは GCJ スレなのでそーゆー話題は死滅スレにでも逝ってやってください
0131デフォルトの名無しさん
NGNGサーバーならg++でいいじゃん。
gnu cgiccはマルチパート対応でアップローダも書けるし、
固定長バッファも使用しないから
バッファオーバーフローも起きない。
なによりboostを始めとして開発環境が超強力。
0132デフォルトの名無しさん
NGNG0133デフォルトの名無しさん
NGNGあれ?あった?
無いのはIA64版だったかなぁ。失礼。
0134デフォルトの名無しさん
NGNGhttp://www-6.ibm.com/jp/developerworks/java/030711/j_j-nativegui2.html
(English >>18)
0135デフォルトの名無しさん
NGNG0136デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNG世界は核の炎に包まれた
0139デフォルトの名無しさん
NGNGttp://freett.com/gikob/gcj/gcjswt.html
の説明のgcjの呼び出しの際に-mno-cygwin付けるだけだった。
↓のような感じ。
gcj --jni -mno-cygwin -c --classpath=swt.jar swt.jar
0140デフォルトの名無しさん
NGNGいろいろ試したんですが、ApplicationWindowを使うと即死・・・
Actionのサブクラスなら大丈夫でした。ちなみにWin2K、WinXPです。
あと、これは別なんですがアイコンファイルとかを実行ファイルに
埋め込むことは可能なんですかね?
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNGgcj (GCC) 3.3.1 (SuSE Linux)
pooh@linux:/hdc3/data4/java/program> gcj -O3 -static --main=Hello -o Hello.exe Hello.java
/usr/lib/gcc-lib/i586-suse-linux/3.3.1/../../../libgcj.a(natRuntime.o)(.text+0xced): In function `java::lang::Runtime::insertSystemProperties(java::util::Properties*)':
: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc-lib/i586-suse-linux/3.3.1/../../../libgcj.a(natInetAddress.o)(.text+0x34f): In function `java::net::InetAddress::lookup(java::lang::String*, java::net::InetAddress*, bool)':
: Using 'gethostbyaddr_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc-lib/i586-suse-linux/3.3.1/../../../libgcj.a(natInetAddress.o)(.text+0x244): In function `java::net::InetAddress::lookup(java::lang::String*, java::net::InetAddress*, bool)':
: Using 'gethostbyname_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
pooh@linux:/hdc3/data4/java/program> ./Hello.exe
セグメンテーション違反です
libgcjをスタティックリンクしようとするとエラーになります。
なんで?
ダイナミックリンクだと問題ないんですが?
OSは、Linux2.4.21-166(SuSE)です。
0143デフォルトの名無しさん
NGNG0144142
NGNG今、SuSE9.0のデフォルト使ってるんです
ひょっとして、libgcjをりビルドするって
こと?ですか
0145デフォルトの名無しさん
NGNGそれとも、普通にSunのjavac使わないとだめ?
0146デフォルトの名無しさん
NGNGgcj -Cでバイトコード作ってくれる
0147デフォルトの名無しさん
NGNGとなるとgcjで普通にアプレット作ったりとかも
出来るわけですね。
0148デフォルトの名無しさん
NGNGうーん、試したことないけどできるんじゃないかな?
実行はブラウザかSunJSRのアプレットビューアーじゃないとダメだろうけど
0149デフォルトの名無しさん
NGNG単純にjce.jarをコンパイル使用としてもだめでした。。。
0150デフォルトの名無しさん
NGNG0151デフォルトの名無しさん
NGNG0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNGjava.awt.GraphicsDevice#isFullScreenSupported() がtrueなら
java.awt.GraphicsDevice#setFullScreenWindow(Window w) でフルスクリーン。
>>153
変なこと書かないように。
0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNGgcj って awt をあんまりサポートしてないのにできるんだ?
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNGcni使って自分でラップしたら。jni使ったことあるならcniには感動するぞ。
0159デフォルトの名無しさん
NGNG>>50-51さんが書かれていた現象と同じ状況に陥っています。
http://page.freett.com/gikob/gcj/gcjswt.html のやり方に従い、
cygwinを用いてgcjで実行ファイルを作成するところまではできましたが、
実行時に、PATHを通している所にswtのdllを置いても、
Exception in thread "main" java.lang.UnsatisfiedLinkError: swt-win32-2136: file not found
<<No stacktrace available>>
と出てしまい、実行できません。
cygwinでswtの使用がうまく行った方、教えてください。
素直にMingW版gcj/swt
http://www.thisiscool.com/gcc_mingw.htm
を用いたほうがいいのでしょうか。
なにか勘違いしてたらご指摘お願いします。
0160デフォルトの名無しさん
NGNGhttp://www.thisiscool.net/gcc34-20040320.tar.bz2
あの後上記サイトにあるmingWのgcc/gcj詰め合わせ↑をDL&解凍し、
そちらにPATHを通し再度プログラム生成を行いました。
http://page.freett.com/gikob/gcj/gcjswt.html
こちらの手順の5. によりswt.oの再生成をおこない、
6.を実行するとできました。ただ、cygwinのシェル上から実行しても
ディレクトリ指定がうまくできず、同じディレクトリにswt.jar,swt.oを置いて行いました。
続けて、
ネイティブなクロスプラットフォームGUIアプリケーションを作成する (再考)
http://www-6.ibm.com/jp/developerworks/java/030711/j_j-nativegui2.html
の手順に沿って、j-nativegui2.zip内のサンプルをAntを利用してビルドを行ってみました。
こちらもうまく行きました。
0161159
NGNGhttp://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/swt?page=FrontPage
内のプログラムをコンパイルしてみましたが、
gcj LabelSample1.java --main=LabelSample1 -I. -Iswt.jar swt.o -o LabelSample1
こちらも実行できました。しかし文字化けしてしまいました。
そこで再度スレの内容を確認し、>>67さん、>>97さんの書き込みに気づき、
http://freett.com/gikob/gcj/japanese.html のページを参照し、
i686-pc-mingw32/lib/libgcj.aからInput_SJIS.oとOutput_SJIS.oを取り出し、
javac LabelSample1.java -classpath swt.jar
gcj -Dfile.encoding=SJIS -Iswt.jar -mwindows --main=LabelSample1 -o LabelSam
ple1 LabelSample1.class swt.o Input_SJIS.o Output_SJIS.o
とすることでSWT上で日本語表示ができました。
できればインストール済みのcygwin gcc/gcj3.3.1をそのまま使いたかったのですが、↑のgcc(3.4?)がgcj/swt専用に作られたものみたいなので
そちらを使います。(gcj実行中にいくつかプロンプト画面が立ち上がるのが気になりますが・・)
ありがとうございました。
0162デフォルトの名無しさん
NGNGなんかいまいちわからん
0163デフォルトの名無しさん
NGNG-Duser.language=ja -Duser.region=JP
とか指定すると locale を切り変えられるんだけどこれって他の
方法はないのでしょうか??
できたら実行時に実行環境のlocaleを見てほしいんですが…
thisiscool の gcj を使ってます。
0164login:Penguin
NGNG変だね。
とりあえず、ホームディレクトリの.i18nファイルに
LC_ALL=ja_JP
って書いておけば、次回起動時から反映されるかも
0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNGantだとエラーで終わって、gcj直だと無事終了する。
antもgcjも "hallo world" ではうまくいったので大きく間違っている部分はないはず。
ant build.xml:
<property name="mainclass" value="nippon.tokyo.dreamtheater.smaf.SMAFMake"/>
<property name="basedir" value="."/>
<property name="srcdir" value="nippon/tokyo/dreamtheater/smaf"/>
<property name="dstfile" value="../bin/execute.exe"/>
<apply executable="gcj" dir="${basedir}">
<arg line="-o ${dstfile}"/>
<arg value="--main=${mainclass}"/>
<fileset dir="${srcdir}" includes="*.java"/>
</apply>
gcj:
gcj -v -o ../bin/execute.exe --main=nippon.tokyo.dreamtheater.smaf.SMAFMake nippon/tokyo/dreamtheater/smaf/*
0167デフォルトの名無しさん
NGNGイラクに匹敵する世界第2位の量の石油が眠っている。
そしてその資産はなんと、640兆円にもなる
(日本の年間国家予算は約80兆円なので8年分に相当)
ミ ∧_∧
⊂ヾ(・∀・ ) ヘェーヘェーヘェーヘェーヘェ
∩ ゝヽ ⊂_ノヽ
だが、その資源が日本政府のせいで全て水の泡になりそうだ
えぇ━━(゚Д゚;)━━━!!!!!
詳しくわ↓
http://mobius1.nobody.jp/
http://blog.livedoor.jp/team_lifeline/
0168デフォルトの名無しさん
NGNGエラーで終ったんならエラーメッセージくらい書いてくれないと…
エラーメッセージもなしに誰が答えられるってのよ…?
とりあえず
<apply executable="gcj" dir="${basedir}">
を
<apply executable="echo" dir="${basedir}">
とかに書き換えて期待した通りの引数が渡っているかどうか
を確認するとかはどうよ?
0169166
NGNGそういえば、忘れてました。エラーメッセージ。
↓こんなのがソースファイルの数だけでてます。
[apply] /home/user/tmp/ccFGtfvO.o(.text+0x24): In function `main':
[apply] : undefined reference to `nippon::tokyo::dreamtheater::smaf::SMAFMake::class$'
[apply] collect2: ld returned 1 exit status
[apply] Result: 1
0170デフォルトの名無しさん
NGNGmain が参照している
nippon.tokyo.dreamtheater.smaf.SMAFMake
クラスが見つからないってことね…
なんとなく分った…
fileset でファイル全部を指定しているつもりなんだろうけど,その指定
の仕方だと fileset でマッチした各ファイルについて gcj を実行する
ことになるんじゃなかったかな?
だから複数の *.java があるとクラスが見付からなくてエラーになる
0171デフォルトの名無しさん
NGNGこんな感じでどうでしょう…?
parallel="true" がポイントね。
<apply executable="gcj" dir="${basedir}" parallel="true" >
<arg line="-o ${dstfile}"/>
<arg value="--main=${mainclass}"/>
<srcfile/>
<fileset dir="${srcdir}" includes="**/*.java"/>
</apply>
0173162
NGNGこんなんでる。↓
cnisupport.cc:33:21: gcj/cni.h: No such file or directory
cnisupport.cc:34:31: java/lang/Integer.h: No such file or directory
cnisupport.cc:35:30: java/lang/String.h: No such file or directory
cnisupport.cc:36:33: java/util/Hashtable.h: No such file or directory
In file included from cnisupport.cc:37:
cnisupport.h:36:21: gcj/cni.h: No such file or directory
cnisupport.h:37:30: java/lang/String.h: No such file or directory
In file included from cnisupport.cc:37:
0174126
NGNG0175デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNGせっかくなんで宣伝しときますw
http://page.freett.com/gikob/gcj/index.html
0178デフォルトの名無しさん
NGNGgcjはWindowsのものでもthisiscoolのgcjとmingw公式のgcjとcygwinのgcjがあるんで
どれか明記したほうがいいよ
0179176
NGNG世の中の10%はWindowsを使っていないってこともあるし、
俺もその10%に入るので、せっかくの情報もあまり関係ないことに。
う〜ん。やっぱりSWTで作るべきかなぁ〜?
http://www.google.co.jp/search?q=gcj+toolkit&ie=UTF-8&hl=ja&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
これだけあるけど、Swingの代わりってどれがいいんだろう?
0180デフォルトの名無しさん
NGNGLinuxならGNU classpathがあるけどあれってまだAWTだけだったかもしれん・・・
0181デフォルトの名無しさん
NGNG> 世の中の10%はWindowsを使っていないってこともあるし、
> 俺もその10%に入るので
そうだったらなおさら明記すべきだと思うが・・・
0182デフォルトの名無しさん
NGNGgui toolkitがどれもこれもうまくインストールできない。
しょうがないので自作しようと思うが、
swingでいうところの、
JWindow,JFrame,JButton,JLabel,JCheckBox,JRadioButton,JTextArea,JTextFieldと
レイアウトマネージャさえあればいいのかしら?
0183デフォルトの名無しさん
NGNGTk の項とか。
ttp://www.interq.or.jp/japan/s-imai/tcltk/basis.html
0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNG0186デフォルトの名無しさん
NGNGそうすると、jni経由でSwingも使えるかな?
やってみるか
0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNGそもそも gcj でまともに動く Swing があるのか,と…
0189デフォルトの名無しさん
NGNGおもしろいけど、使い物にならないんだろうな。
0190デフォルトの名無しさん
NGNGLinux上のgcjで、SWTを使おうとしているのだけど
1
2
3 import org.eclipse.swt.SWT;
4 import org.eclipse.swt.graphics.Image;
5 import org.eclipse.swt.layout.RowLayout;
6 import org.eclipse.swt.widgets.Display;
7 import org.eclipse.swt.widgets.Label;
8 import org.eclipse.swt.widgets.Shell;
9
10 /** Image View sample **/
11 public class sampleswt01
12 {
13
14 /** main method of View Image **/
15 public static void main(String args[])
16 {
0191190
NGNG18 Shell shell = new Shell(display);
19 shell.setText("Image View");
20 shell.setLayout(new RowLayout());
21 Image image = new Image(display,"./kago.jpg");
22 Label label = new Label(shell,SWT.NONE);
23 label.setImage(image);
24 shell.pack();
25 shell.open();
26 while(!shell.isDisposed())
27 {
28 display.readAndDispatch();
29 display.sleep();
30 }//while
31 display.dispose();
32 }//main
33
34 /** non exec constractor **/
0192191
NGNG36 {
37 }//method sampleswt01
38
39 }//class sampleswt01
という単純なソースを
gcj --main=nippon.tokyo.dreamtheater.test.sampleswt01 -fjni -L/usr/local/lib -lswt-gtk2 -fjni -I/usr/local/lib/libswt-gtk2.jar -o ../bin/sampleswt01 nippon/tokyo/dreamtheater/test/sampleswt01.java
という単純なコンパイルを行って、実行ファイルはできあがったのですが、
Exception in thread "main" java.lang.UnsatisfiedLinkError: memmove
at _Jv_LookupJNIMethod (/usr/lib/libgcj.so.4.0.0)
at org.eclipse.swt.internal.gtk.OS.memmove(org.eclipse.swt.internal.gtk.GtkStyle, int) (/usr/local/lib/libswt-gtk2.so)
at org.eclipse.swt.widgets.Display.initializeSystemResources() (/usr/local/lib/libswt-gtk2.so)
at org.eclipse.swt.widgets.Display.init() (/usr/local/lib/libswt-gtk2.so)
at org.eclipse.swt.graphics.Device.Device(org.eclipse.swt.graphics.DeviceData) (/usr/local/lib/libswt-gtk2.so)
at org.eclipse.swt.widgets.Display.Display(org.eclipse.swt.graphics.DeviceData) (/usr/local/lib/libswt-gtk2.so)
at org.eclipse.swt.widgets.Display.Display() (/usr/local/lib/libswt-gtk2.so)
at nippon.tokyo.dreamtheater.test.sampleswt01.main(java.lang.String[]) (Unknown Source)
というよくわからないエラーが出てとまります。
memmoveが見付からないみたいですが、それがどこにあるのか見当がつきません。
0193デフォルトの名無しさん
NGNG0194192
NGNG見ました.
memmoveのソースはカーネルのあたりにあったのですが、
manによると、引数をとるようですね。
でも、このエラーでは何も出てませんね。
そもそも、memmoveが見付からないという状況がわからないんですが。
0195デフォルトの名無しさん
NGNG見付からないのは、native memmoveがJNI経由で呼ぶmemmoveってメソッドだから、
man memmoveででてくるやつとは関係ない。
たぶんあんたの環境に、libswt-pi.soってのが足りないんだと思う。
0196195
NGNG補足。完全に関係無いって訳ではなく、JNIから呼ばれるmemmove内から、
man memmoveに出てくるやつが呼ばれてるはず。だけど、今回の問題とは
関係ないってこと。
0197デフォルトの名無しさん
NGNG↑の手順でやってもswt.oが生成されない…
0198デフォルトの名無しさん
NGNG> 2. インストールしたら cygwin のシェルで
> $gcc -v
> と打ってみましょう。
> バージョンが 3.x、--enable-languages に java が入っていることを確認してください。
大量のオプションがずらずら一行で並んで
5秒たっても見つからなかったので↓こうしました。
$ for s in `gcc -v 2>&1`; do echo $s; done | grep languages
結果、
--enable-languages=c,ada,c++,f77,pascal,java,objc
入ってますたが、もっと分かりやすい見分け方はないんですか?
0199197
NGNG0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNGgcjで作ったバイナリの配布等、制限ありますか?
英語はどうも苦手で…
0202デフォルトの名無しさん
NGNG基本的には libgcj は GPL なので、スタティックリンクするにしろ
ダイナミックリンクするにしろ、 GPL で配布しなければならない。
ただし、使用している libgcj が LIBGCJ_LICENCE などで例外的に
GPL にとらわれないリンクを認めている場合がある。
要は使ってる libgcj による。
0203デフォルトの名無しさん
NGNGLGPLじゃなかったっけ?
ダイナミックリンクならGPLにしなくても
いいんじゃなかったっけ?
0204デフォルトの名無しさん
NGNGGPLです。
http://gcc.gnu.org/java/faq.html#1_1
> libgcj is distributed under the GPL
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNGっつか、その程度も他人に頼らんと出来ないなら gcj を使うのは素直に諦めた方が…
0207デフォルトの名無しさん
NGNG>>204 のリンク先にlibgcjが理由で
GPLになったりしないって書いてありました。
LIBGCJ_LICENSEのほうは例外として
他の部分でライセンスの不整合がなければ
バイナリを作るためにリンクしても
できたバイナリの複製、配布はじゆうですよ。て意味かなあ。
0208デフォルトの名無しさん
NGNG0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNGそだね。ライセンス読まずに自分勝手な解釈してるし。
0211デフォルトの名無しさん
NGNGっつーか、libgcj が使ってる GNU Classpath も GPL なので。
0212デフォルトの名無しさん
NGNG> 他の部分でライセンスの不整合がなければ
> バイナリを作るためにリンクしても
> できたバイナリの複製、配布はじゆうですよ。て意味かなあ。
て意味ではありません。
っつか、人工無能翻訳でも もうちょっとマトモだと思う……
やっぱり gcj を使うのは素直に諦めた方が……
0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNGhttp://gcc.gnu.org/java/faq.html#1_1
1.1 What license is used for libgcj?
libgcj is distributed under the GPL, with the 'libgcc exception'. This means that linking with libgcj does not by itself cause your program to fall under the GPL. See LIBGCJ_LICENSE in the source tree for more details.
釣ってるの?
0215デフォルトの名無しさん
NGNG例外規定
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. 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.
0216デフォルトの名無しさん
NGNG特別の例外として、このライブラリーの著作権保有者は、
独立したモジュールのライセンス条件にかかわらず、
それぞれのリンクされた独立したモジュールに対し
そのモジュールのライセンス条件が適合すれば、
あなたの選んだ条件の下に、実行ファイルを作成するため、
作成された実行ファイルを複製し配布するためにこのライブラリーを
独立したモジュールとリンクする許可をあなたに与えます。
独立したモジュールとはこのライブラリーに由来しないか、
基づかないモジュールです。
このライブラリーを修正した場合は、あなたのバージョンのライブラリーに
この例外を拡張してもよいですが、しかし、そのようにする義務はありません。
あなたがそのようにしたくない場合は、あなたのバージョンからこの例外を
削除してください。
0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNGhttp://gcc.gnu.org/ml/java/2003-11/msg00300.html
On Tue, 2003-11-25 at 23:56, Steve D. Perkins wrote:
> I found information on the licensing for GNU Classpath, but that
> left me even more confused. For one thing, it's the GPL with a "special
> exception" that seems to essentially make it LGPL'ed (why do certain
> people hate the LGPL so much? do you really think calling it by another
> name makes it different?).
It is definitely different. The GPL+exception license we use does not
have the relinking requirement present in the LGPL. This makes it much
more friendly to embedded developers generating static executables (for
instance). The license is similar in spirit to the libgcc and libstdc++
licenses.
0220デフォルトの名無しさん
NGNGよろしければ、方法詳細ご教授願いたく。
0222デフォルトの名無しさん
NGNGhttp://sourceforge.net/projects/libswt/
http://sourceforge.net/projects/swingwt/
http://sourceforge.net/projects/gnome-gcj/
http://sources.redhat.com/rhug/
http://sourceforge.jp/projects/sdl4gcj/
0223デフォルトの名無しさん
NGNG感想希望
0224デフォルトの名無しさん
05/01/19 16:52:270225デフォルトの名無しさん
05/02/03 00:09:59SWTが必要なあたりがアレだよね
RHUGっていまいちわからんのだがなんなの?
0226デフォルトの名無しさん
05/02/03 00:17:420227デフォルトの名無しさん
05/02/03 04:01:14を念頭において実装するときに最下層に持ってきて地ならしするにはいいと
おもうんだけど。
IBMも自社製品でmotif/gtk/qt/win32の上にAWTを実装するのにSWTを
下に敷いてる。
0228デフォルトの名無しさん
05/02/03 21:00:02SwingWT単体で使ったのでちとスレ違いだが、ちょっとだけさわったことがある。
Eclipse VE が吐いたコードを、import宣言だけ変えてコンパイルしてみたが上手くいかなかった。
BoxLayoutが無い、JFrame#setDefaultCloseOperation(int)がない、
など、普段よく使うクラスやメソッドがサポートされて無くてげんなりした覚えがある。
0.84の頃だったかな。
0229デフォルトの名無しさん
05/02/03 21:12:330230デフォルトの名無しさん
05/02/03 21:19:37共有ライブラリ化しておけば実行ファイルは小さくなる?
0231デフォルトの名無しさん
05/02/03 22:05:04rhug は Java で書かれたクラスライブラリをGCJでコンパイルできる
ようにしたものの集合…かなぁ?
扱っているライブラリの一覧は
http://sources.redhat.com/rhug/index.html
で見れるはず…
Xerces + Xalan や Log4j,JUnitなんかも入っているんだけど
どの程度ちゃんつ動くかは知らん…
Xerces と Xalan だけはちょっとだけ試して一応動くことは確認したけど…
0232デフォルトの名無しさん
05/02/04 22:24:35SwingWT で swing のAPIを使うくらいならそのままSWTを使うかな…
>>228 も書いてるけど足りないメソッド,動作しないメソッドがあって
既存のswingアプリを動かすにはかなり手間かな…
0233デフォルトの名無しさん
05/02/07 17:08:42小さくなるがそのランタイムは7Mくらいあるぞ
まぁJREよりはマシだけど本末転倒だよな
0234デフォルトの名無しさん
05/02/07 17:44:48http://gcc.gnu.org/ml/java/2005-02/msg00024.html
0235デフォルトの名無しさん
05/02/07 19:57:070236デフォルトの名無しさん
05/02/07 21:04:04実装の名前は忘れたけど。
Cで実装したjarも速くてイカす。
0237デフォルトの名無しさん
05/02/07 22:13:18それが何か
教えて欲しいから☹age
0238デフォルトの名無しさん
05/02/08 00:35:240239デフォルトの名無しさん
05/02/08 03:35:20例外規定なしのバイナリとであれば静的/動的に関わらずリンクしたらGPLに感染する。
例外規定がある場合は例外規定の内容による。
0240デフォルトの名無しさん
05/02/08 03:53:37rhugはobsoletedになったようです。
0241デフォルトの名無しさん
05/02/08 04:06:040242デフォルトの名無しさん
05/02/08 04:11:400243デフォルトの名無しさん
05/02/08 04:13:430244デフォルトの名無しさん
05/02/08 14:50:08常に例外規定があるわけではない。
作者はいつ例外規定を書き換えたり無くしたりしても構わないし、
例外規定には「ライブラリを改変した者は改変バージョンの配布時に
例外規定を削っても良い」と明記してある。
0245デフォルトの名無しさん
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.
0246デフォルトの名無しさん
05/02/08 15:29:320247デフォルトの名無しさん
05/02/08 16:13:490248デフォルトの名無しさん
05/02/10 00:33:40今手元にマシンないけどたぶんgcjだった気がする。
パフォーマンスっていうか、立ち上がりがよくて軽快。
ロードしてからだったら計測したらsunの方が上なんだろうけど
オレは起動が速いほうがいい。
0249デフォルトの名無しさん
05/03/02 03:13:190250デフォルトの名無しさん
05/03/06 00:54:040251デフォルトの名無しさん
05/03/06 03:52:000252デフォルトの名無しさん
05/03/13 23:18:570253デフォルトの名無しさん
2005/03/31(木) 19:48:450254デフォルトの名無しさん
皇紀2665/04/01(金) 02:12:49ttp://slashdot.jp/developers/05/03/19/1544241.shtml
↑ここいら辺の記事読むと、gcjでeclipseをnative compileとか
書いてあるけど、ちょっと、そそられない?
#eclipse、まったく使えて無いのだけど、、。
0255デフォルトの名無しさん
2005/04/10(日) 12:21:22便利さがあると思うけど、その分重くなっているのなら意味がないと思うんだよね、僕は。
0256デフォルトの名無しさん
2005/04/11(月) 19:31:330257デフォルトの名無しさん
2005/04/11(月) 21:11:15257進数で。
0258デフォルトの名無しさん
2005/04/11(月) 21:45:21というオレに最適な
0259デフォルトの名無しさん
2005/04/11(月) 22:55:35gcj使って単独で動く実行ファイル作ってもVM内臓か外付けか、
の違いしかないと思うが。もしくはGPLマンセーか、Sunが嫌いか、
みたいな政治的(?)な動機とか。
0260デフォルトの名無しさん
2005/04/11(月) 23:00:55jreのインストロールさせるのマンドイ
というのも理由のひとつにしようと思っていた。
だが
0261デフォルトの名無しさん
2005/04/13(水) 00:36:12See "Native Eclipse - The Fast and the Furious IDE" section in
http://developer.classpath.org/mediation/ClasspathShowcase
0262デフォルトの名無しさん
2005/05/02(月) 22:40:340263デフォルトの名無しさん
2005/05/05(木) 21:34:150264デフォルトの名無しさん
2005/05/07(土) 21:26:060265デフォルトの名無しさん
2005/05/07(土) 21:26:510266デフォルトの名無しさん
2005/05/07(土) 21:35:24コードを吐けるわけじゃないのにな。
0267デフォルトの名無しさん
2005/05/10(火) 03:54:04まぁそうだけど…
gcj自体はクラスファイルを生成できるネイティブアプリケーション
でもあるので jikes と競合しているといえなくもない…
# あれ? じゃあ gcj だけでいいじゃんってことにな(ry
0268デフォルトの名無しさん
2005/05/10(火) 22:55:18http://japan.cnet.com/news/ent/story/0,2000047623,20083372,00.htm
だって。
0269デフォルトの名無しさん
2005/05/11(水) 06:38:37そのニュースソース自体はここ関係ないよ
それを使ってGCJに寄与できるかっていうと、そうは思えないし。
早くSWINGの実装してほしいな。僕には無理だから。
0270デフォルトの名無しさん
2005/05/11(水) 09:53:13>
> 情報源。
情報源っつー事は…… Apache Foundation?
それとも Harmony の提案があったメーリングリスト?
0271デフォルトの名無しさん
2005/05/11(水) 12:08:38そんな貴方にclasspath
0272デフォルトの名無しさん
2005/05/11(水) 12:55:37本当にやるんなら gcj とか classpath とは競合するだろうから、
少なくともやる気とか競争心の部分で寄与してくれると思うよ。
それに Apache License v2 は GPL より緩いライセンスだから、
gcj とか classpath から見たら、Project Harmony の成果物をパクり放題。
実際にパクるかは別だし、まだ何も無いけど。
0273デフォルトの名無しさん
2005/05/11(水) 15:13:05をみると Swing も 半分以上は出来てるのか。
ダメっぽいのは metal LAF とか、text関係(HTMLも)とかぐらい?
>>271
gcj が使ってるのは基本的に classpath だろ。
gcj の方で若干手を入れてるかもしれんが。
0274269
2005/05/11(水) 22:58:57よくわかってないんだけど、classpathはGCJに含まれているみたいなことをどっかで呼んだんだけど、gcj?(GCC?,GPL?,FSS?)バージョンのclasspathが入ってるってことなの?
別途、classpathをインストロールすればswingとかでアプリ組めるってこと?
0275デフォルトの名無しさん
2005/05/11(水) 23:32:27classpathのAWTって確かGTK+ベースのやつしかないんじゃなかったっけ?
0276274
2005/05/11(水) 23:52:33今、Gnome使ってるからちょうどいいな。
調べてみます。
0277デフォルトの名無しさん
2005/05/12(木) 00:32:01って、100%完成ってでててもコンパイルが通るだけで実行ができないものも含まれてるよね?
0278デフォルトの名無しさん
2005/05/12(木) 21:27:15http://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 止めるのかな?
0279デフォルトの名無しさん
2005/05/12(木) 22:58:12例えば(広告条項のない)Apache License 2 ならば、その成果をGPLなソフトに取り込む
のは問題ないよね。そういう意味で互換性のあるライセンスでやる(やってほしい)ってこと
じゃない?
0280デフォルトの名無しさん
2005/05/13(金) 00:33:15それだと完全な一方通行になるから share resources とは言わんのでは?
0281デフォルトの名無しさん
2005/05/13(金) 01:24:17http://www.gnu.org/software/classpath/license.html
0282デフォルトの名無しさん
2005/05/13(金) 01:26:09すでに何でもアリになってるけど。
0283デフォルトの名無しさん
2005/05/15(日) 15:24:18/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)
となりました。しくしく。そう楽にはいかないの?
0284デフォルトの名無しさん
2005/05/15(日) 15:38:52違ってっても文句は言わずに。
0285デフォルトの名無しさん
2005/05/20(金) 23:14:07全然関係なかった。隣家に渡すオプションが必要だった。
あと、やっぱりコンパイル時にジャンプ先を確定しないよう
indirect-dispatchを指定するとか、幾つか工夫がいる。
libgcjやswtをLD_LIBRARY_PATHに通しておいたら、
バイナリのサイズは数十キロだけだし、GTK使ってるから日本語も問題ない。
同じソースで、windowとlinuxでnativeなguiを使ったバイナリが生成できるのは
最強だな。
0286デフォルトの名無しさん
2005/05/21(土) 00:14:120287デフォルトの名無しさん
2005/05/24(火) 18:37:51実行ファイルのイメージがネイティブであるとかないとかってのは速度にあんまし関係ないからねぇ。
0288デフォルトの名無しさん
2005/05/24(火) 18:55:33他のOSではどうなんだろう?
0289デフォルトの名無しさん
2005/05/24(火) 19:49:53動的な場合、libgcjをインストールさせればよい。
UNIX系の場合、
0290デフォルトの名無しさん
2005/05/25(水) 13:03:36入ってるはずだし…
メリットは
* ランタイム配布が不要
* 起動時間がJREよりは速い
くらいか...
swt でクライアントアプリケーションやツール系を作るのに使うってのが
無難な(おそらく唯一の)使い道じゃないかな?
ゲームとかは… やっぱ C++ や D 言語の方が向いてる気がするなぁ…
0291デフォルトの名無しさん
2005/05/25(水) 22:27:45ところがギッチョン入ってなかったりする
0293291
2005/05/26(木) 21:33:46ここ数年LinuxのFTP版(無料)のディストロをアップデート期限まで使用しては
乗り換え〃してるからどれがそうだったかははっきり覚えてなけど、
Linuxのディストロによっては元からインスロールイメージに入ってなかったり、
標準ではインストールされないものがあった。
まぁでもソースからインスソールさせればいいのかなぁ。
0294290
2005/05/27(金) 14:43:160295デフォルトの名無しさん
2005/05/27(金) 14:46:28現状ではスタティックリンクがお勧めかな。
0296デフォルトの名無しさん
2005/05/27(金) 15:22:35後、バイナリサイズ的にはいかがでしょう。
0297デフォルトの名無しさん
2005/05/27(金) 15:49:44それからg++ + boehmがJavaのように使えると思ったらかなり間違いだ。
0298デフォルトの名無しさん
2005/06/02(木) 21:26:080299デフォルトの名無しさん
2005/06/02(木) 22:40:452.Wineでコンパイル
3.Mingwnでコンパイル
4.ソース眺めながら脳内コンパイル
0300デフォルトの名無しさん
2005/06/02(木) 22:54:130301デフォルトの名無しさん
2005/06/03(金) 00:37:510302デフォルトの名無しさん
2005/06/03(金) 01:34:520303デフォルトの名無しさん
2005/06/03(金) 01:35:170304298
2005/06/03(金) 06:43:14と、いうかWindowsは職場にしかなく、Linuxは自宅にしかなく、
会社の規定でWindows側に開発環境を持ち込めないのですが、
どうしてもちょっとしたソフトが必要になっています。
0305デフォルトの名無しさん
2005/06/03(金) 13:13:12ttp://bitwalk.hp.infoseek.co.jp/
ためしてはいない。
0306デフォルトの名無しさん
2005/07/08(金) 21:40:38動くまでいったらant.exe 32MBでした。以上です
0307デフォルトの名無しさん
2005/07/09(土) 02:34:310308デフォルトの名無しさん
2005/07/09(土) 20:58:33Fedora 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くらい?
0309デフォルトの名無しさん
2005/07/09(土) 22:39:29仰るとおりです。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いかすね!バグみっけたら俺の園児レベルの英語でばんばんパッチ送っていくぜ
03101段ずれたのはご愛嬌
2005/07/09(土) 23:41:040311デフォルトの名無しさん
2005/07/18(月) 07:51:53の作り方教えて欲しい
0312デフォルトの名無しさん
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で置き換えたら完
ってはずだったんだけど参ったぜ、ぶっちゃけるとここでスキル全開なんだ
こんな単純じゃない?どうやってこしらえるん
0313デフォルトの名無しさん
2005/08/10(水) 12:23:36MinGW gcc3.4.4 用のバイナリパッケージ.
ttp://hoeppie.gmxhome.de/SWT/
0314デフォルトの名無しさん
2005/08/28(日) 15:42:18gcjってSJISのファイル入出力どうやるの?
普通にReader、Writer使って動いてたたclassをEXE化したら
化けて全然使えないんだけど。
0315デフォルトの名無しさん
2005/08/28(日) 16:26:25new InputStreamReader(inputstream, "SJIS ");
new OutputStreamWriter(outputstream, "SJIS ");
0316314
2005/08/28(日) 19:28:38素人だと思って馬鹿にしてるな
こちとらUNIX系は素人だけど
Javaは1.0のころからやってんだこんちくしょうべらぼうめ。
ていうかおねがいしますよ
助けてくださいよ
普通にjavaコマンドで動かせば問題ないんですよ。
gcj --main=TestMain --classpath=bin -o test.exe bin/TestMain.class
ってexeに変換したら全然だめなんですよ。
0317314 テストソース
2005/08/28(日) 19:29:26import 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);
}
0318314 テストソースつづき
2005/08/28(日) 19:30:37throws 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();
}
0319314 テストソースつづき2
2005/08/28(日) 19:31:14InputStream 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;
}
}
0320デフォルトの名無しさん
2005/08/28(日) 19:39:15当たり前じゃん
そこまでネイティブに無料で変換できるのであればJETなど買う奴いない
gcjのサポートしているAPIを読め
0321314
2005/08/28(日) 19:48:43>当たり前じゃん
>そこまでネイティブに無料で変換できるのであればJETなど買う奴いない
ガーン。
GUIがアレなのは予想できたけど
テキスト処理ONLYのコンソールアプリもダメとは!
>gcjのサポートしているAPIを読め
すんませんリンク教えてください。
0322デフォルトの名無しさん
2005/08/28(日) 20:03:13できませんスキルの関係でもうしばらくお待ちください。
自分はウィンだと痒いところに手が、いや痒いところに対して全然手が足りない状態だったので
kernel2.6と駆け落ちしています。
コツはね、jarをいっきにいかずばらして全部コンパイルして
そんで一回まとめて ar cur libtest.a *.o
gcj --classpath=.:test.jar --main=Main Main.o -ltest
ってのが俺はすんなりいった
0323デフォルトの名無しさん
2005/08/28(日) 20:04:33>しかし、 libgcjには欠けているパッケージも数多くあります。
>これは、 java.awtにおいて特に顕著です。個々のクラスやメソッドで欠けているものもあります。
>現在のところ、 libgcjとJava 2プラットフォームの相違点を一覧にしたものはありません。
ちょっと待ってくれよ、そこまでコンパイルオプション知っていて尚且つJava暦長いのなら
GCJのDoc当然読んでいると思ったよ
0324デフォルトの名無しさん
2005/08/28(日) 20:05:33↑これが重要で しかも[悪]
0325デフォルトの名無しさん
2005/08/28(日) 20:18:21ところでそれ、テストソースになってない。どこでなにがどう
化けているか確認できないだろ。
0326314
2005/08/28(日) 20:28:28いや、俺もそこは読んだけど
AWTは互換性あんまないけど他はけっこういけるんじゃないかと思ったのさ
(甘かったけど)
>相違点を一覧にしたものはありません。
うーん。
>どこでなにがどう化けているか確認できないだろ。
ファイル出力もだめだしSystem.outでコンソールに出しても化け化けでどうにも、、
unicodeをダンプするべきだったすね。
0327デフォルトの名無しさん
2005/08/28(日) 20:51:10がダメなら
バイトで読み込んでそのままバイトで出すとどうなる?
そうすれば、少なくともWin環境ではコンソールで化けないとおもう
0328デフォルトの名無しさん
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
他ねーの??
0329デフォルトの名無しさん
2005/08/28(日) 20:54:35最低限
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"));
これくらいの情報はないとね。
0330デフォルトの名無しさん
2005/08/28(日) 20:55:13あと org/javacc/parser/Version.oも入れる
0331デフォルトの名無しさん
2005/08/28(日) 21:13:36String 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行目からちゃんと明示的に指定すれば文字化けしないことがわかる。
入力系は見てないけど同じような感じで確認してみたら?
0332デフォルトの名無しさん
2005/08/28(日) 21:21:44この方法は使えないの?
0333デフォルトの名無しさん
2005/08/28(日) 21:51:38# ./a
?
あ
en
8859_1
あ
eucにしたらなったぜ!
0334デフォルトの名無しさん
2005/08/28(日) 22:26:04>現在のところ、 libgcjとJava 2プラットフォームの相違点を一覧にしたものはありません。
詳細な比較じゃないけど、パッケージごとのだいたいの比較がここにある:
http://www.kaffe.org/~stuart/japi/
でも、メソッドが用意されていて中身がない場合もあるから、あんまり役には立たないかも。
0336314
2005/08/28(日) 23:15:48#リンクオプションみたいなので指定させてくれてもいいかなと思った。
0337デフォルトの名無しさん
2005/08/29(月) 19:57:31libiconvを追加でインストールする必要があるのが面倒だけど,
ソースコードのエンコーディングを gcj --encoding=utf-8 とかで指定できるし
Reader,Writerのエンコーディングも上みたいに面倒なことしなくても使えるっぽいよ?
0338デフォルトの名無しさん
2005/09/17(土) 13:28:39Linuxのgcjですが、
gcc バージョン 4.0.2 20050913 (prerelease) (Debian 4.0.1-7)
$ cat Test.java# これはdefault encodingのEUC-JPで書かれている。
public class Test{
public static void main(String args[]){
System.out.println("日本語表示のテスト");
}
}
$ gcj --main=Test Test.java
$ ./a.out
日本語表示のテスト# EUC-JPで出力されている
$ ./a.out | hexdump -C# 確認
00000000 c6 fc cb dc b8 ec c9 bd bc a8 a4 ce a5 c6 a5 b9 |................|
00000010 a5 c8 0a |...|
$ gcj -Dfile.encoding=SJIS --main=Test Test.java
$ ./a.out | hexdump -C
00000000 93 fa 96 7b 8c ea 95 5c 8e a6 82 cc 83 65 83 58 |...{...\.....e.X|
00000010 83 67 0a |.g.|
で何の問題もなし。出力はちゃんとSJISになっている。
0339デフォルトの名無しさん
2005/09/17(土) 13:30:24> 日本語をそのままJavaの内部コードのUTF-8で出力したからです
って書いているけれど、内部はUCS-2だから、
default I/O encodingの間違いだね。
0340デフォルトの名無しさん
2005/09/17(土) 20:53:52ちなみにプロパティはコンパイル時に指定する以外に
環境変数GCJ_PROPERTIESで設定することもできる.
$ env GCJ_PROPERTIES="file.encoding=SJIS" ./a.out
みたいに走らすと出力がShift_JISになるはず(gcj3.3.2 on linux にて確認)
0341デフォルトの名無しさん
2005/09/17(土) 21:26:30http://gcc.gnu.org/onlinedocs/gcj/Extensions.html#Extensions
設定できるプロバティ
13 System properties
http://gcc.gnu.org/onlinedocs/gcj/System-properties.html#System-properties
0342デフォルトの名無しさん
2005/09/30(金) 11:55:21そこでjavacのようにclassファイルをハードディスクに保存させ、
次回のコンパイル時にはそれを再利用して速度を上げるようなことはできますか?
javacだと変更箇所だけをコンパイルし直すので時間の節約になります。
0343デフォルトの名無しさん
2005/09/30(金) 12:35:06質問したかったことは .class ファイルから生成した .o ファイルなどのようなバイナリを
ハードディスクに保存させる方法です。
0344デフォルトの名無しさん
2005/09/30(金) 12:40:250345デフォルトの名無しさん
2005/09/30(金) 13:05:01どうもありがとうございます。うまくいきました!
もう一つ質問させて下さい。
jniのdllファイルをリンクしてコンパイルするには以下のような構文でOKでしょうか。
gcj -o Hoge.exe --main=com.hoge.Main Hoge.java Hoge.dll
Hoge.java のソースでは System.loadLibrary をコメントアウトして
private static final native long getHoge();
という宣言が書いてあります。
0346デフォルトの名無しさん
2005/10/01(土) 00:18:14gcj: installation problem, cannot exec `cc1': No such file or directory
なんて表示された。解決策分かる人いませんか
0347デフォルトの名無しさん
2005/10/01(土) 00:33:22インストールされてないだけだべ。
0348デフォルトの名無しさん
2005/10/01(土) 01:38:25ありがと〜gcc-coreのインストしわすれでした。変なところでつまずいてしもた。
0349デフォルトの名無しさん
2005/10/03(月) 19:03:28いざ実行すると次の例外をはいて終了してしまいます。
java.lang.NullPointerException
<<No stacktrace available>>
java.lang.ExceptionInInitializerError
<<No stacktrace available>>
Caused by: java.lang.RuntimeException
<<No stacktrace available>>
エラーの発生箇所がつかめないので、スタックトレースを表示させたいのですが可能でしょうか?
それ以外に原因となっている箇所を特定する方法はあるのでしょうか?
0350デフォルトの名無しさん
2005/10/03(月) 19:15:290351デフォルトの名無しさん
2005/10/03(月) 20:42:15No stack trace availableと表示されて、本物が出ないです。。
gcj で使ったオプションは -fjni -O3 です、、、
どうやればよいのやら。
0352デフォルトの名無しさん
2005/10/03(月) 20:46:190353デフォルトの名無しさん
2005/10/03(月) 21:08:080354デフォルトの名無しさん
2005/10/03(月) 21:59:02ここでMain.mainを指定しても認識できませんでした。
やりなれたスタックトレースをつかったデバッグができないのはつらいです。
(gdb) break Main.main
Can't find member of namespace, class, struct, or union named "Main.main"
Hint: try 'Main.main<TAB> or 'Main.main<ESC-?>
(Note leading single quote.)
(gdb)
0355デフォルトの名無しさん
2005/10/03(月) 23:43:35を生成させてからgcjでAOTコンパイルさせているのかな?
0356デフォルトの名無しさん
2005/10/03(月) 23:49:51通常はjarファイルにパッケージして使っています。
そのjarファイルをgcjでコンパイルできるようになればいいのですが、
0357デフォルトの名無しさん
2005/10/04(火) 19:13:49手元だと、linux gcj-3.3 or 3.4 でやっても winのgcj-3.4でも、
両方linuxでコンパイルだけどスタックトレースでるよ
当然なんだろうけどシンボル消しちゃうと出ないね、upxでも出なくなる
No stack trace availableはでない、stripかけると
at 0x004c924e (Unknown Source)
at 0x004c9742 (Unknown Source)
ずらーっと単純に表記が番地にかわるだけでスタックトレースは機能はしてる
そのメッセージ見たことない
XCODEって無茶苦茶ハンサムなIDEだね
0358デフォルトの名無しさん
2005/10/04(火) 20:15:08ありがとうございます。
一応、普通のjavaで起動して動作確認してみたところスタックトレースは表示されます。
なのでjarファイルの中のシンボルは消されていないようです。
問題なのはgcj で書き出しだ.oバイナリです。
コンパイル時に何らかのオプションをつけてシンボルを消さないようにする必要があるのでしょうか?
念のため windows の mingw の gcj 3.4.4 でもコンパイルしてみましたが症状は変わらずじまいです。
0359デフォルトの名無しさん
2005/10/04(火) 20:30:20Xcodeとの連携や最適化は後で考えろ
とにかく今はXcodeのことはいったん棚に上げて
javacのclassファイルを使わずにjavaソースを直接gcjにかけろ
-gオプションを付け忘れるな
とりあえず最適化(-O3)はやめとけ
慌 て る 乞 食 は 貰 い が 少 な い
0360デフォルトの名無しさん
2005/10/04(火) 20:39:45public class A {
public static void main(String[] argv) {
try {
argv[10] = null;
} catch (Exception e) {
e.printStackTrace();
}
}
}
この A.java を保存してカレントで
gcj --classpath=. --main=A -o A A.java
./AとかA.exeとかで出るはずだけど、もし、こゆー事じゃないの?
0361デフォルトの名無しさん
2005/10/04(火) 21:38:39user:~/gcj user$ /usr/local/bin/gcj --classpath=. --main=A A.java
/usr/bin/ld: warning multiple definitions of symbol _sqrt
/usr/local/lib/gcc/powerpc-apple-darwin7.9.0/3.4.4/../../../libgcj.dylib(libgcj.5.0.0.dylib-master.o) definition of _sqrt
/usr/lib/libm.dylib(sqrt970.o) definition of _sqrt
/usr/bin/ld: warning multiple definitions of symbol _fabsf
/usr/local/lib/gcc/powerpc-apple-darwin7.9.0/3.4.4/../../../libgcj.dylib(libgcj.5.0.0.dylib-master.o) definition of _fabsf
/usr/lib/libm.dylib(fabs.o) definition of _fabsf
/usr/bin/ld: warning multiple definitions of symbol _fabs
/usr/local/lib/gcc/powerpc-apple-darwin7.9.0/3.4.4/../../../libgcj.dylib(libgcj.5.0.0.dylib-master.o) definition of _fabs
/usr/lib/libm.dylib(fabs.o) definition of _fabs
/usr/bin/ld: warning multiple definitions of symbol _scalbn
/usr/local/lib/gcc/powerpc-apple-darwin7.9.0/3.4.4/../../../libgcj.dylib(libgcj.5.0.0.dylib-master.o) definition of _scalbn
/usr/lib/libm.dylib(scalb.o) definition of _scalbn
と何やらエラーらしき物が表示され
user:~/gcj user$ ./a.out
java.lang.ArrayIndexOutOfBoundsException: 10
<<No stacktrace available>>
起動しても同様にスッタクトレースが表示されませんでした。
-g オプションをつけて、作業中のjavaソースを直接コンパイルしても同様の結果でした。
0362デフォルトの名無しさん
2005/10/04(火) 21:43:04まだgcjのportingが十分じゃないんでしょ。
Mach-Oのせいでいろいろポーティングが遅れるんだなあ…
ELFにすべきだったと思うよ。
0363デフォルトの名無しさん
2005/10/04(火) 21:44:190364デフォルトの名無しさん
2005/10/07(金) 21:24:41それをコンパイルしてインストールしたいのですが
手順が解説されているサイトなどご存知ありませんか。
gcjを使おうとするとiconvが必要といわれます。
0365デフォルトの名無しさん
2005/10/08(土) 01:48:06Max OS XをELFにしてたら、ファットバイナリの仕組が作り直しだから、
PowerPCからIntelへの乗り換えのハードルが高くなったず。
0366デフォルトの名無しさん
2005/10/08(土) 01:57:21アプリケーションバンドルの実体ってフォルダだから、その気になれば
なんとでもなる気はするけどね。
0367デフォルトの名無しさん
2005/10/08(土) 02:19:41mingw-port はどれも微妙…というかまず ports 使うためにちょっとだけ準備がいるので
iconv だけなら普通にソース取ってきて./configure && make install した方が楽っぽい.
面倒なら
http://cefiro.homelinux.org/topics/MinGW/setup.html
とかからバイナリ拾って展開しれ
0368デフォルトの名無しさん
2005/10/08(土) 03:04:51http://developer.apple.com/documentation/CoreFoundation/Conceptual/CFBundles/Concepts/BundleAnatomy.html
のListing 1 A bundle with executable code
0369デフォルトの名無しさん
2005/10/08(土) 05:23:300370364
2005/10/08(土) 09:19:17親切な方、どうもありがとうございます。
コンパイル済みのバイナリでやってみます。
0371364
2005/10/08(土) 11:01:33set PATH=C:\mingw\bin;C:\mingw\mingw32\bin;C:\mingw\usr\local\bin;C:\mingw\usr\local\lib
としました。
しかしコンパイルを実行しようとすると -liconv がないといわれてしまいます。
C:\mingw\bin\..\lib\gcc\mingw32\3.4.4\..\..\..\..\mingw32\bin\ld.exe: cannot find -liconv
collect2: ld returned 1 exit status
liconv とlibiconvは違うものなのでしょうか?
それともインストールの仕方が間違っているのでしょうか。
詳しい方が居ましたらご指摘お願いします。
0372デフォルトの名無しさん
2005/10/08(土) 11:35:440373364
2005/10/08(土) 12:49:52リンカのことがよくわからなかったのですが、パスが通っていないのかなと思い、
c:¥mingw¥usr¥localフォルダの中身をみていましたら
階層構造がc:¥mingw とそっくりなことに気づき、
そのまま local フォルダの中身をc:¥mingwに上書きコピーしたところちゃんと認識できるようになりました。
強引な気もします。
0374364
2005/10/12(水) 22:56:080375364
2005/10/12(水) 23:00:26http://www.thisiscool.com/gcc_mingw.htm#gcj40
0376デフォルトの名無しさん
2005/11/08(火) 05:24:50gcj -s -O2
upx
javacc.exe 878,080 byte
やるーーー
0377デフォルトの名無しさん
2005/12/06(火) 04:51:260378デフォルトの名無しさん
2005/12/21(水) 02:01:52オープンソース
ネイティブコードを作成するフリーのJava開発環境に注目!!
GCJを使ってみよう
javaの速さに驚いた。
0379デフォルトの名無しさん
2005/12/25(日) 23:53:06インスタンシング(笑)
0380デフォルトの名無しさん
2006/01/04(水) 13:36:01なんかいまいちわかんなかったよ
dbtoolとか共有ライブラリの扱いかたとか
0381デフォルトの名無しさん
2006/01/04(水) 18:37:12ソースを持ってきて、
gcj --main=suudoku.Main -o suudoku.exe suudoku/*.javaとコンパイルして
実行した時と、jdkでコンパイルして実行した時で挙動が違います。
具体的には、ウインドウ上の4と7が、gcjの時だけ、3と6と表示されます。
jdkでは、書いてある通り出ます。
なんか計算ミスがあるのでしょうか?
$ gcj --version
gcj (GCC) 3.4.4 20050721 (Red Hat 3.4.4-2)
$ java -version
java version "1.5.0_03"
0382デフォルトの名無しさん
2006/01/04(水) 18:47:03おまえ、CPUの種類指定したか?
0383デフォルトの名無しさん
2006/01/04(水) 21:23:11指定しなければ、今、稼働してるマシン用のものが指定されてることにならないんでしょうか?
ちなみに、クルーソーの700MHz使ってます。
0384デフォルトの名無しさん
2006/01/05(木) 22:35:54マシンのBIOSとか最新か?
0385デフォルトの名無しさん
2006/01/12(木) 08:12:28自然対数LOGを求めて、2を底とする対数を計算してるが、
jdkでは4になるところが、gcjでは3.99999999996になる。
t=Double(Math.log(x)/Math.log(2))
この式で、x=10000ならば、t=4となるはず。
しかし、t=3.99999999。。。となる。
暫定策としては、tに0.00001を加えてやればよいのだが?
0386デフォルトの名無しさん
2006/01/12(木) 08:54:33あと、4になるのは log(10000) じゃないか?
0387デフォルトの名無しさん
2006/01/12(木) 09:02:370388デフォルトの名無しさん
2006/01/12(木) 09:08:01無理っぽいか。 3.99999999 とか十進法使ってるし。
0389デフォルトの名無しさん
2006/01/12(木) 12:53:03浮動小数点演算の基礎がわかってない
0390デフォルトの名無しさん
2006/01/12(木) 15:03:42何故数値計算の専門家を入れとかなかったのかと…
0391デフォルトの名無しさん
2006/01/12(木) 22:23:40おまえがわかってない。
言語仕様 4.2.4 Floating-Point Operations
http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.2.4
java.lang.Math
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Math.html
java.lang.StrictMath
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/StrictMath.html
ここに出てくるulpが何を表すわかるか?
0392デフォルトの名無しさん
2006/01/12(木) 23:27:140393デフォルトの名無しさん
2006/01/15(日) 04:16:48上記ページを参考に、SWT.jar から swt.o を生成しようとした時に、
エラーメッセージが大量に出て苦しんでおります。どなたがご慈悲を……
環境
WindowsXP
SWT3.1.1 / SWT3.0.2 (両方試す)
gcc-java-3.4.5 / gcc-java-3.4.2 (両方試す)
gcc-core-3.4.5
binutils-2.15.91
w32api-3.5
mingw-runtime-3.9
gcc-g++-3.4.2
gcj --jni -c --classpath=swt.jar swt.jar
org/eclipse/swt/dnd/RTFTransfer.java:97: error: verification error at PC=198
org/eclipse/swt/dnd/RTFTransfer.java:97: error: might transfer control into subr
outine
org/eclipse/swt/dnd/TextTransfer.java: In class `org.eclipse.swt.dnd.TextTransfe
r':
org/eclipse/swt/dnd/TextTransfer.java: In method `org.eclipse.swt.dnd.TextTransf
er.nativeToJava(org.eclipse.swt.dnd.TransferData)':
org/eclipse/swt/dnd/TextTransfer.java:119: error: verification error at PC=348
org/eclipse/swt/dnd/TextTransfer.java:119: error: might transfer control into su
broutine
0394デフォルトの名無しさん
2006/01/15(日) 21:48:47http://gcc.gnu.org/ml/java/2003-10/msg00153.html
0395デフォルトの名無しさん
2006/01/15(日) 22:34:44gcj --main=Hello --classpath=/usr/share/java/libgcj-4.0.2.jar Hello.java
ってクラスパス明示的に指定する必要があるのね。
0396デフォルトの名無しさん
2006/01/16(月) 00:05:36それです。ありがとうございます。
って、
> Unfortunately, this is a gcj bug.
ですか
ちなみに、どなたかSWT3.1で、SWT.jar → SWT.o の変換を成功された方っていますか?
0397デフォルトの名無しさん
2006/01/16(月) 00:20:510398デフォルトの名無しさん
2006/01/16(月) 00:21:20ソースコンパイルしろって書いてあるように見えるけど。
0399デフォルトの名無しさん
2006/01/16(月) 00:39:01同じくWindows環境でハマった。
SWT2.1.3ならビルドできたけどそれじゃダメかい?
ttp://archive.eclipse.org/eclipse/downloads/drops/R-2.1.3-200403101828/index.php
0400デフォルトの名無しさん
2006/01/16(月) 01:20:25MinGW で SWT が使いたいって話なら
http://hoeppie.gmxhome.de/SWT/
じゃダメか?
0401393
2006/01/17(火) 01:18:19とりあえず、SWT2.1.3で動作しました。>>399様、ありがとうございます。
今日はあまり時間が取れなかったので、ソースコンパイルと、>>400様の方法も
明日以降、やってみようと思います。
0402デフォルトの名無しさん
2006/02/12(日) 01:01:59http://www.shudo.net/jit/perf/SPECJVM98-P4.png
わざわざ使う理由が見つからない。
0403デフォルトの名無しさん
2006/02/12(日) 01:14:26じゃ使うな。さようなら。
0404デフォルトの名無しさん
2006/02/12(日) 01:45:410405デフォルトの名無しさん
2006/02/12(日) 01:56:030406デフォルトの名無しさん
2006/02/12(日) 04:43:54言語障害わずらってるといろいろ大変だね。
頑張れ。
0407デフォルトの名無しさん
2006/02/12(日) 05:36:350408デフォルトの名無しさん
2006/02/12(日) 19:39:490409デフォルトの名無しさん
2006/02/19(日) 00:56:42ただのHello Worldプログラムが4MBにもなってしまいます。
なんとかなりませんか?
0410デフォルトの名無しさん
2006/02/19(日) 01:05:260411デフォルトの名無しさん
2006/02/19(日) 01:55:390412デフォルトの名無しさん
2006/02/19(日) 15:18:480413デフォルトの名無しさん
2006/02/19(日) 16:08:090414デフォルトの名無しさん
2006/02/19(日) 17:31:42いちいち書く気もしないからスルーしてたのに・・・。
0415デフォルトの名無しさん
2006/02/19(日) 17:45:25> なぜ Hello World を書くのか考えろ。
挨拶のためじゃないのか?
0416デフォルトの名無しさん
2006/02/19(日) 17:46:48これは元々Javaで書かれていたけれど、
Beagleの使っているのは、C#にポートしたdotLucene。だからmonoが必要。
これってどうよ? > gcj
0417デフォルトの名無しさん
2006/02/19(日) 18:04:57どやって実装してんのか知ってる?
0418デフォルトの名無しさん
2006/02/19(日) 23:10:30セマンティクスがほんの少し違うだけ。特に静的なセマンティクス。
0419デフォルトの名無しさん
2006/03/11(土) 12:20:06gcj以外に
JavaをEXEにできる
タダの変換プログラムが
あれば乗り換えたいです。
性能はあまり問いません
日本語処理がまともならば。
0420デフォルトの名無しさん
2006/03/11(土) 12:46:570421デフォルトの名無しさん
2006/03/11(土) 12:54:280422デフォルトの名無しさん
2006/03/11(土) 23:07:190423デフォルトの名無しさん
2006/03/12(日) 02:00:20って進行でいいんじゃない?
0424デフォルトの名無しさん
2006/04/15(土) 00:37:36Cygwin入れてSWTやろうとしましたが、
エラーを見るとどうもSWT.jarを読めていないようで…
SWT.jarの置き場所が間違ってるような気がします。どこに置いたらいいんでしょうか?
0425デフォルトの名無しさん
2006/04/15(土) 04:18:070426デフォルトの名無しさん
2006/04/15(土) 17:37:36classpath指定すると
undefined reference to hoge…
というのが大量に出るようになりますた。
0427デフォルトの名無しさん
2006/04/16(日) 01:39:340428424
2006/04/19(水) 21:22:43http://page.freett.com/gikob/gcj/gcjswt.html
を参考にして、とりあえずswt.oを作ろうとしていますがうまくいきません。
org/eclipse/swt.cnc/RTFTransfer.java:97: error: verification error at PC=198
org/eclipse/swt.cnc/RTFTransfer.java:97: error: might transfer control into subroutine
・
・
・
などなど、大量のエラーが出ています。
なにがおかしいのでしょうか。
0429デフォルトの名無しさん
2006/04/19(水) 21:34:04http://hoeppie.gmxhome.de/SWT/ うちではここ見てMinGWでビルドした
0430デフォルトの名無しさん
2006/04/19(水) 22:26:59cannot find -liconv
というエラーが出るようになりました
>>429
さらにわからなくなりますた
0431デフォルトの名無しさん
2006/04/19(水) 23:54:18MinGW の gcj でコンパイルしてできたファイルは libiconv に依存する.
gcj 使う前にまず iconv をビルドしてインストールするかコンパイル済みの
バイナリを拾ってきてインストールしれ.その後 HelloWorld.
0432424
2006/04/20(木) 20:40:54MinGWインストーラー付きをインストール
libiconvをインストーラー付きでインストール
cannot find -liconvのエラーは変わらず
どーしよーもなくなってます・・・。
0433デフォルトの名無しさん
2006/04/22(土) 17:12:070434デフォルトの名無しさん
2006/04/22(土) 17:18:130435デフォルトの名無しさん
2006/04/23(日) 01:33:150436デフォルトの名無しさん
2006/04/23(日) 02:15:32ありがとう。
0437デフォルトの名無しさん
2006/05/02(火) 01:03:23将来的にもあらゆる java コードに対応するのは原理的に無理そうってことでいんでしたっけ?
0438デフォルトの名無しさん
2006/05/02(火) 03:11:48http://www.kaffe.org/~stuart/japi/
将来に渡って原理的にサポート不可能なものはない。
0439デフォルトの名無しさん
2006/05/02(火) 03:22:15JAVAが進化する限りにおいて、gcjは、完全にJAVAに追い付くことはできない。
0440デフォルトの名無しさん
2006/05/02(火) 11:18:250441デフォルトの名無しさん
2006/05/02(火) 13:01:03プロの方ですか?私も同じ意見です。
0442デフォルトの名無しさん
2006/05/23(火) 21:54:59完全に追いつく必要もないと思うが。
0443デフォルトの名無しさん
2006/05/23(火) 22:05:05無駄に増え続けるクラスライブラリに完全に追い付くことはないだろうな…
もし追いつくとしたらJavaを使う人がいなくなってJavaの肥大化が止った時だろう…
# ぶっちゃけいらないパッケージばっかりなんだよな…
0444デフォルトの名無しさん
2006/06/06(火) 14:54:24コンパイルすればいいだけじゃない?
0445デフォルトの名無しさん
2006/06/08(木) 22:52:23make create-headers
make[6]: Entering directory `/hoge/gcc-4.1.1/arm-elf/thumb/libjava'
name=`echo classpath/lib/gnu/awt/LightweightRedirector.class | sed -e 's/\.class$//' -e 's,classpath/lib/,,'`; \
/hoge/gcc-4.1.1/mkinstalldirs `dirname $name`; \
arm-elf-gcjh -d . -classpath '' -bootclasspath classpath/lib $name
/bin/sh: arm-elf-gcjh: command not found
make[6]: *** [gnu/awt/LightweightRedirector.h] エラー 127
ええー。
0446デフォルトの名無しさん
2006/06/09(金) 00:01:150447デフォルトの名無しさん
2006/06/09(金) 00:25:22いや、gcjh のビルドすんでないのに使おうとしてエラー出るんだよ。
044833
2006/06/16(金) 14:56:500449デフォルトの名無しさん
2006/06/19(月) 13:20:47C:\> cat マニフェスト
C:\> gcj --main=メイン *.java
0450デフォルトの名無しさん
2006/06/19(月) 18:47:12ありがとです。
0451448
2006/06/19(月) 18:49:080452デフォルトの名無しさん
2006/07/03(月) 08:20:410453デフォルトの名無しさん
2006/07/03(月) 08:32:370454デフォルトの名無しさん
2006/07/24(月) 09:56:06NetBeansからgcjを使うにはどうすればいいでしょうか?
一応MinGWでコマンドラインからgcjを利用できるようにはしてあります。
0455デフォルトの名無しさん
2006/07/24(月) 12:58:46ほれ
ttp://homepage1.nifty.com/kuprij/antdoc/tasks/javac.html
0456デフォルトの名無しさん
2006/07/24(月) 14:16:37謝謝。助かりました。
/mingw/lib/libmingw32.a(main.o):main.c:(.text+0x106): undefined reference to `WinMain@16'
collect2: ld returned 1 exit status
ぐぐってみたりしたんですが、C言語の場合の解決方法しか載ってないんです。
これってどうすればいいんでしょう?
環境はWindowsXP+MinGW gcjです。
0458デフォルトの名無しさん
2006/08/01(火) 19:46:38コマンドライン晒せ
0459デフォルトの名無しさん
2006/08/01(火) 20:35:12ttp://fun.sci.fukuoka-u.ac.jp/wiki/index.php?gcj
0461デフォルトの名無しさん
2006/08/04(金) 21:38:16そんなあなたに
JavaCompiler
http://javacompiler.mtsystems.ch/index.html
/* 主な特徴 */
- gcj や MinGW 、コマンドラインの知識がなくとも GUI で簡単コンパイル
- gcj のバージョンは最新版 4.2.0 を使用
- Linux / Win32 両方のバイナリを出力可能
- ファイルサイズの削減対応
- Java 5.0 文法対応
Windows 使いなら是非試してほしい。
0462デフォルトの名無しさん
2006/08/14(月) 11:47:12libgcj-3.4.5.jarと差し替えて使用することはできますか?
0463デフォルトの名無しさん
2006/08/14(月) 22:56:54出来ません
0464デフォルトの名無しさん
2006/10/05(木) 22:38:39いいねぇ。なかなか使えるよ。UPXでアホみたいに小さくなるし。
GCJでJNIだけど、VisualStudioで作ったDLLは駄目?jvm.dll使わないようにすれば動くかなぁ?
今のところ、jvm.dllを要求されてしまったので、うまくロードできてません。
Direct3DやDirectShowを使ってしまったので、GCCでコンパイルするの面倒かと思って。
0465デフォルトの名無しさん
2006/10/07(土) 12:30:510466デフォルトの名無しさん
2006/10/10(火) 16:14:29世代別GCだけでもGPLと矛盾しないライセンスで出してくれー>Sun
#今はBoehm GCがgcjの足ひっぱってる気がしてならない
0467デフォルトの名無しさん
2006/10/10(火) 23:30:36完全にストップ&ゴーするしねぇ…
しかし足を引っ張ってるものは他にもいっぱいありそうだしなぁ…
いっそクラスライブラリも全部 Sun 製のやつに(ry
0468デフォルトの名無しさん
2006/10/24(火) 17:09:09無事コンパイルでき実行すると、
class.forName() を使っているためか、NoClassDefFoundError になります。
classを動的にロードするための設定が必要なのでしょうか?
exe実行のディレクトリー配下に classファイル(jp\xxx\Test.class)は置いてあります。
CLASSPATHにも指定してみました。
http://www.shudo.net/article/Fedora-Core-Expert-200507-GCJ/
プログラム実行中にClass.forName("クラス名")などとして
クラスファイルのままのクラスをロード・実行することもできます。
その場合、ロードされたクラスはインタプリタで実行されます。
とあります。
エラーメッセージは下記です。
Exception in thread "main" java.lang.NoClassDefFoundError: jp.xxx.Test
at java.lang.Class.initializeClass(Main-win.exe)
at java.lang.Class.initializeClass(Main-win.exe)
at java.lang.Class.forName(Main-win.exe)
Caused by: java.lang.ClassNotFoundException: org.xml.sax.SAXException not found
in gnu.gcj.runtime.SystemClassLoader{urls=[file:.\], parent=gnu.gcj.runtime.Exte
nsionClassLoader{urls=[], parent=null}}
at java.lang.Class.initializeClass(Main-win.exe)
...2 more
0469デフォルトの名無しさん
2006/10/24(火) 20:13:08リンクするにはどうすればいいのかな?
gcj でコマンドラインでやりはじめています。
0470デフォルトの名無しさん
2006/10/24(火) 20:15:580471デフォルトの名無しさん
2006/12/15(金) 17:21:08https://openjdk.dev.java.net/
0472デフォルトの名無しさん
2006/12/15(金) 22:25:230473デフォルトの名無しさん
2006/12/16(土) 17:53:560474デフォルトの名無しさん
2007/01/07(日) 20:55:29バイナリサイズが17MB
実行時にメモリを32MB使用する
こんなもんか?
0475デフォルトの名無しさん
2007/01/07(日) 22:03:50で縮まんならあきらめるしかないね
0476デフォルトの名無しさん
2007/01/07(日) 23:50:31サンクスコ
縮まらなかった。
常駐するようなアプリは無理だなこりゃ。
0477デフォルトの名無しさん
2007/01/11(木) 12:31:220478デフォルトの名無しさん
2007/01/11(木) 13:04:290479デフォルトの名無しさん
2007/01/11(木) 13:09:350480デフォルトの名無しさん
2007/01/11(木) 13:14:210481デフォルトの名無しさん
2007/01/11(木) 13:25:18実用上はあまり問題ない。問題となるのは「常駐するようなアプリ」ではなく、同じような
アプリが複数起動されたときの無駄だと思う。
0482デフォルトの名無しさん
2007/01/11(木) 14:16:360483デフォルトの名無しさん
2007/01/11(木) 14:51:14--strip-all 付きで生成したバイナリも小さくなるっけ?
0484デフォルトの名無しさん
2007/01/11(木) 16:40:34動的プログラミングを静的なバイナリに置き換える事自体が問題なんだろうけど。
0485デフォルトの名無しさん
2007/01/11(木) 18:54:32っていうか、ちょっと複雑なライブラリーつかうと不可。
0486デフォルトの名無しさん
2007/01/19(金) 18:38:020487デフォルトの名無しさん
2007/01/20(土) 01:56:11ないと思うならない。
0488デフォルトの名無しさん
2007/01/21(日) 00:09:43Andrew Haley and Tom Tromey of Red Hat merged the gcj-eclipse branch to svn trunk.
GCC now uses the Eclipse compiler as a front end, enabling all 1.5 language features.
This merge also brings in a new, generics-enabled version of Classpath, including some
new tools. All this will appear in GCC 4.3.
0489デフォルトの名無しさん
2007/01/21(日) 00:17:300490デフォルトの名無しさん
2007/03/21(水) 13:19:10思うに、ライブラリをスタティックリンクしているんだろうか?
ダイナミックリンクにする方法は?
0491デフォルトの名無しさん
2007/03/21(水) 14:10:19そ、そうかな?
linux でのバイナリサイズも大きくてびっくりしたよ。
0492デフォルトの名無しさん
2007/03/21(水) 14:14:50Linuxも以前は大きかった記憶がある。
0493デフォルトの名無しさん
2007/03/21(水) 14:20:30cygwin mingw だと libgcj のDLLが用意されてなくてかならずスタティックリンクされる。
リフレクションによるDLLからの動的クラスロードとかもできないしwin32環境のgcjはまだまだ。
0494デフォルトの名無しさん
2007/04/18(水) 12:11:270495デフォルトの名無しさん
2007/04/19(木) 13:11:43public class test
{
public static void main(String[] arguments) throws Exception
{
String s = "aaa123bbb";
s = s.replaceAll("[a-z]", "hoge");
System.out.println(s);
}
}
0496495
2007/04/19(木) 13:13:57例外は次のように出ました。
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.lang.Class.initializeClass(/datal/gcc/gcc/libjava/java/lang/Object.java:513)
at gnu.java.util.regex.RE.getLocalizedMessage(/datal/gcc/gcc/libjava/classpath/gnu/java/util/regex/RE.java:262)
at gnu.java.util.regex.RESyntax.<clinit>(/datal/gcc/gcc/libjava/classpath/gnu/java/util/regex/RESyntax.java:345)
at java.lang.Class.initializeClass(/datal/gcc/gcc/libjava/java/lang/Object.java:513)
at java.util.regex.Pattern.<init>(/datal/gcc/gcc/libjava/classpath/java/util/regex/Pattern.java:76)
at java.util.regex.Pattern.compile(/datal/gcc/gcc/libjava/classpath/java/util/regex/Pattern.java:153)
at java.util.regex.Pattern.compile(/datal/gcc/gcc/libjava/classpath/java/util/regex/Pattern.java:135)
at java.lang.String.replaceAll(/datal/gcc/gcc/libjava/java/lang/String.java:998)
at test.main(D:/workspace/Test/src/test.java:0) Caused by: java.util.MissingResourceException: Bundle gnu/java/util/regex/MessagesBundle not found
at java.util.ResourceBundle.getBundle(/datal/gcc/gcc/libjava/java/util/ResourceBundle.java:372)
at java.util.ResourceBundle.getBundle(/datal/gcc/gcc/libjava/java/util/ResourceBundle.java:243)
at gnu.java.util.regex.RE.<clinit>(/datal/gcc/gcc/libjava/classpath/gnu/java/util/regex/RE.java:133)
at java.lang.Class.initializeClass(/datal/gcc/gcc/libjava/java/lang/Object.java:513)
...8 more
0497デフォルトの名無しさん
2007/06/25(月) 20:28:45ありがとう!!!
0498デフォルトの名無しさん
2007/06/25(月) 21:10:09対応するバージョンはよく分からないけど、最新版のGCJでどのクラスが
実装済みなのかは次のページで分かる。
http://developer.classpath.org/doc/overview-summary.html
ここのページに記載されていないクラスは未実装。
0499デフォルトの名無しさん
2007/09/26(水) 11:56:27静的ライブラリ内の特定のオブジェクトファイルを強制的にリンクする方法ってないでしょうか?
静的ライブラリ内にあるメッセージリソースをコンパイルしたものがライブラリ内のクラスから
ResourceBundle#getResource() で参照されているのですが普通にリンクしても
当然このオブジェクトはアプリケーションにリンクされません.
なにかうまい方法はないでしょうか?
0500デフォルトの名無しさん
2007/10/05(金) 14:04:560501デフォルトの名無しさん
2007/10/16(火) 16:26:56ネイティブ呼び出してるの以外はSunのそのまま使えばいけそうなもんだけど
そういうわけにはいかないのかね
0502デフォルトの名無しさん
2007/10/16(火) 18:05:27GNU classpath を継続して使い続けるのかな?
0503デフォルトの名無しさん
2007/10/17(水) 08:55:350504デフォルトの名無しさん
2007/10/17(水) 18:41:180505デフォルトの名無しさん
2007/10/18(木) 13:42:080506デフォルトの名無しさん
2007/11/03(土) 00:07:44awtやらswingのコードは全てをカバーしておらずまだ実用には向かないと書いてある。
これ、どういうこと?
SunのJDKの中にはawtやらswingやらのclass全てのファイルが入っているのに、
それを使わず、すべて自分たちで一から書き直しているということ??
もしそうなんだとしたら、開発者には悪いけどこんなアホなことは無いなあ。
既存のコードを有効利用しない(できない?)で車輪の再発明を延々と繰り返すって
一体全体どうなの。
なんだか非常に的外れな事を言っている気がどんどんしてきた。
間違っていたら教えてください。
0507デフォルトの名無しさん
2007/11/03(土) 00:14:41大人の事情というものがあるのだよ。
0508デフォルトの名無しさん
2007/11/03(土) 00:56:27少なくとも今迄はできなかった
SunのJDKがGPLになった(まだ全部じゃなけど)からこれからは有効利用できるはず
でも実際にSunのJDKを利用するかどうかは作ってるやつらに聞いてくれ
0509デフォルトの名無しさん
2007/11/03(土) 01:03:220510デフォルトの名無しさん
2007/11/03(土) 01:42:06どうやら二つの問題をあわせ持っているみたいだ。
一つは標準APIの問題。
Sunはそれの流用を禁止していたので、新しいJava実装の開発は標準ライブラリが使えない為難しかった。
そこで登場したのがGNU Classpathって団体で、彼らはSunJDKのAPI仕様書を見ながらせっせとフリーな実装を作った。
この頃Sunにはソースコードをオープンにしようとする動きがあり、この問題は解決の方向へ向かっている。
これ、面白いなあw
GNU Classpathにとってこれは喜ばしいことなんだろうけど、今までの苦労が水の泡じゃないかw
んーでもまあSunが公開に踏み出したのには彼らの影響もあるのかな。
んでもう一つの問題がネイティブコードに変換する時の問題。
Javaをプレステの実機とおけば、GCJはPCで動くエミュレータみたいなもので
swingで使われているコードにはまだ再現できない所もあるいうことみたいだ。
なんだか日記みたいになってしまったけど、すっきりしました。
みなさんレスありがとうございました。
0511デフォルトの名無しさん
2007/11/03(土) 08:24:21けどgcjの中の人たちは、classpathがかなり仕上がってきているから、
そっちの方に重きを置いている人が多い。
二年前にSunがソース公開していたら、状況は違ったと思うけれど。
いずれにせよ、ちゃんとした成果がないことを嘆くのはまだ早い。
0512デフォルトの名無しさん
2007/12/16(日) 06:49:52同じプログラムをExcelsior JETで変換するとすんなり動いた。
やはり商用には敵わないか・・・
JETの購入真剣に検討してみるかな。
0513デフォルトの名無しさん
2007/12/16(日) 15:39:220514デフォルトの名無しさん
2007/12/16(日) 15:43:17動作もする大きなパッケージがある訳で。
0515デフォルトの名無しさん
2007/12/17(月) 15:30:29最近じゃ無くなってきてないですかね?
JREの導入も簡単になってきてるし・・・・
それでもいやなときは、gcjというフリーな解があるのであって・・・
仕事でやるときは、JRE入れるのが安全だもんなぁ
0516デフォルトの名無しさん
2007/12/17(月) 22:44:28Java5未対応だし,使えないAPIが山ほどあるし(Win32環境だと特に酷い).
gcj を使うなら最初からある程度 gcj をターゲットにして作っていくか,
使えないAPIを自分で実装しながら作っていくくらい気合入れてやらないと.
gcj用に作ってついでにJREでも動くってのは可だが逆はかなり手間かかると思うぞ…
0517デフォルトの名無しさん
2007/12/18(火) 13:29:52まずはJREを使うという選択肢を検討する。
次に、gcj 、Excelsiorという選択肢があるんだが
昔に比べ、JRE導入で片付く件が多くなってるんじゃないということ。
gcjもExcelsiorも、どっちも仕事で使うにはJRE使用よりも活用度は落ちると思っただけ。
趣味で使うなら、もともと有料のアプリを使う動機に欠けるわけで。
技術的興味からgcjを利用するというのはわかるけど・・・・
0518デフォルトの名無しさん
2007/12/19(水) 01:16:010519デフォルトの名無しさん
2007/12/19(水) 17:21:29プログラムがフリーズしてしまうのですが
どなたか解決策をご存知の方いないでしょうか?
プログラム自体は下記のサイトのサーバー側と同じ物です。
ttp://www.hellohiro.com/socket.htm
0520デフォルトの名無しさん
2007/12/19(水) 17:28:440521デフォルトの名無しさん
2007/12/20(木) 11:34:17非常に申し分けないがこのスレにエスパーはいないようなんだ…
OS や gcj のバージョンくらい書いてみたらどうかね?
0522519
2007/12/21(金) 17:47:51申し訳ありません。おっしゃる通りで・・・
OS WindowsXP Professional Version2002 ServicePack2
gcj MinGW/GCC/GCJ 4.3 (gcj-eclipse-merge-branch)
変換はeclipseからAntを使って変換しました。
最終的にはJava5でコンパイルしたプログラムを変換したかったので
gcjの他のバージョンは試していません。
0523デフォルトの名無しさん
2007/12/22(土) 12:10:15昔試した限りでは win32 環境で libgcj の Socket は使っただけで例外はいた。
試したのは MinGW の GCC 3.4.2 だったと思う。現状では win32 環境の libgcj は
完成度が低すぎて使い物にならないってのがそのときの結論だった。
ちょい上にも書 Sun の Java 用に書いたものを gcj にポートするのは厳しいと思えっていてあるでしょ?
# Linux だとわりと動くんだけどねぇ…
0524519
2007/12/23(日) 22:35:55例外もはいていないようなので原因はまったくわかりませんでした。
やはりまだwindows上では厳しいままのようですね。。
簡易のHttpServerをJavaをインストールしないで動くように出来ないかと言われて
gcjに辿りついたのですが、諦めて素直にJavaをインストールしてもらいます。
しかし、こういう技術があるのをまったく知らなかったので
今回は良い勉強になりました。ありがとうございました。
0525デフォルトの名無しさん
2007/12/23(日) 23:31:52デバッガで止めたらどこで止まってるの?
後スタックトレースとかもあるとうれしいが。
0526デフォルトの名無しさん
2007/12/24(月) 00:39:230527デフォルトの名無しさん
2008/03/12(水) 18:12:540528デフォルトの名無しさん
2008/03/12(水) 18:26:360529デフォルトの名無しさん
2008/03/12(水) 18:36:570530デフォルトの名無しさん
2008/03/18(火) 01:53:29hsqldb.jar はgcjでコンパイルでき
付属の簡易Servletも機能する
あけましておめでとうございます。
0531デフォルトの名無しさん
2008/08/08(金) 18:42:000532デフォルトの名無しさん
2008/08/08(金) 19:13:340533デフォルトの名無しさん
2008/08/14(木) 18:54:47Sunがこういうネイティブコンパイラ作る計画ってのはないの?
今の財産生かせばそんな難しい事じゃないと思うし結構需要あると思うんだけどな
0534デフォルトの名無しさん
2008/08/15(金) 17:11:020535デフォルトの名無しさん
2008/08/16(土) 22:46:200536デフォルトの名無しさん
2008/08/18(月) 11:57:20つまり需要はないってことか…
0537デフォルトの名無しさん
2008/08/18(月) 12:45:070538デフォルトの名無しさん
2008/08/18(月) 14:44:46思想的に Sun がネイティブコンパイラ出すことがそもそもありえんだろ・・・
0539デフォルトの名無しさん
2008/08/18(月) 17:33:08クラスファイルが更新されてないかとか整合性を調べてOKなら再利用。
0540デフォルトの名無しさん
2008/09/05(金) 12:06:100541デフォルトの名無しさん
2008/10/04(土) 20:04:02Java実行環境も進歩したもんだ。
0542デフォルトの名無しさん
2008/10/05(日) 21:20:51早くなるわけじゃ…。実行時情報を使えないし。
C++・Fortran・OCamlあたりをネイティブコンパイルすると速度でるのは
あらかじめそういうこと想定した文法やライブラリだから。
0543デフォルトの名無しさん
2008/10/05(日) 21:54:070544デフォルトの名無しさん
2008/10/05(日) 22:22:070545デフォルトの名無しさん
2008/10/07(火) 13:03:140546デフォルトの名無しさん
2008/10/10(金) 20:30:39GETや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);
}
}
0547デフォルトの名無しさん
2008/10/10(金) 20:42:480548デフォルトの名無しさん
2008/10/10(金) 20:46:46QUERY_STRINGはSystem.getenvで取れると思う。ただしJava5以上ね。
POSTはstdinに放り込まれるんじゃなかったかな。
0549デフォルトの名無しさん
2008/10/11(土) 22:57:03さんくす。動いた。
が、gcjが思ったより遅かったので失望した・・
0550デフォルトの名無しさん
2008/10/11(土) 23:56:34俺様のLinuxに入れたサーブレットもこれでコンパイルしてみよう。
0551デフォルトの名無しさん
2008/10/12(日) 00:32:10バッチ処理で使いたいならC++ with Boostでも使った方がいい。
あとJavaサーバーはJavaサーバーのまま使うのが一番速い。
SPECweb2005っていう動的Webコンテンツのベンチマークがあるんだけど、
そこはJSPの独壇場でPHPじゃ歯が立たない状態になってる。
0552デフォルトの名無しさん
2008/10/12(日) 12:08:14そこまで話のレベル落とされても…
0553デフォルトの名無しさん
2008/10/12(日) 13:04:370554デフォルトの名無しさん
2008/10/12(日) 13:30:13実行時の性能は今時のサーバーVMのが上
つまりサーバアプリに使っても何の意味も無い
ってことで合ってる?
0555デフォルトの名無しさん
2008/10/12(日) 13:42:420556デフォルトの名無しさん
2008/10/12(日) 14:05:02ttp://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=gcj
0557デフォルトの名無しさん
2008/10/12(日) 14:13:35サーバアプリみたいに、
起動しっぱなしで、
同じコードを何度も何度も実行する応用の場合、
JITの性能がメインファクター。
0558デフォルトの名無しさん
2008/10/12(日) 22:36:500559デフォルトの名無しさん
2008/10/12(日) 23:21:330560デフォルトの名無しさん
2009/03/21(土) 13:33:49■ このスレッドは過去ログ倉庫に格納されています