トップページ⇒tech
983コメント299KB

クライアントサイドJavaどうよ? part2

■ このスレッドは過去ログ倉庫に格納されています
0001SunがダメNGNG
クライアントサイドでJAVAが普及するためにはどうすればいいか、
マターリ語りましょう。

前スレ
http://pc3.2ch.net/test/read.cgi/tech/1002160815/
0757752NGNG
>>755 (733?)

あ、ゴメン。言葉足りなかった。
別にSingleton使いたいって話じゃなくて、「Semaphoreを表現しようと思ったら、Singletonになるよね」って意味。
だとすると、コンテナに実装しないとって話。
0758749NGNG
>>751
Thx. 仕事で未だに1.3ベースしか触ったことなかったんで...
便利になったんですね。
Java.nioのFileChannel/*Bufferまわりと今までのjava.ioとの
関係・整合性がいまいち良く分からないけれども...

>>752
Singletonは同一のJavaVMプロセスどころか同一ClassLoader内でしか
役にたたんでしょう。semaphore、lockfでは同一ホスト内の複数の
プロセス間での排他を行うことが出来ます。
select/pollはUNIX上でI/Oの多重化(multiprexing)を行うための
昔ながらの手段です。他の典型的な手段がprefork+共有メモリ、
またはスレッドプーリングということになると思いますが。
従来のJavaで利用できたのはスレッドプーリングだけでした。
0759752NGNG
>>758
そうか。なるほど。Thanx.

そういえば、MutexとかSemaphoreって、プロセスもまたぐんだよな。
そう考えると、確かに欲しい。(って遅い感想だけど)
0760733NGNG
1.4のFileLockは、プロセスをまたいで排他ロックがかけられるよう
に出来ているから(Winでは確認。ほかはシラン)それを利用して、プロセス
間共有のMutexLockやSemaphoreを作ってみるのはありかモナー。

プロセスをまたぐことは考えないというのが、Javaのポリシーなのかもね。
スレッド使って一つのJVMでなんでもやれ、ということかと。

マルチプロセスだと、プロセスフットプリントのメモリと実行時のコンテ
キストスイッチのコストが無駄だしさ。
0761733NGNG
でもさー、シングルJVMベースで何でもやれということになると、
こんどは「スレッドスケジューリング操作API」と、「GCスケジ
ューリング操作API」が欲しくなるね…

できるかな?JCP調べてみるかな。
0762749NGNG
mutex相当のものと共有メモリが利用できれば、Singletonパターンを
JVMの境界を越えた形に拡張できる気が。
インスタンスをJVM内のstataic変数という形ではなく、共有メモリ上に
シリアライズされた形で配置する。もっとも普通Cでこれを実現する場合は
一々シリアライズする必要はなくて、アラインメントさえちゃんとしていれば
単にキャストするだけの話なので、性能的に大きな差がありそう。

>>760
コンテキストスイッチのコストが発生するのはマルチスレッドでも
同じ話では。
Javaのポリシーという意味では単純に「移植性」の問題かなぁ、と思って
いたのですが。「クライアントサイド」というスレッドの趣旨に即して
云えば、例えばMutexロックを利用してアプリの多重起動を防止する、といった
テクニックは非常にありがちであって、できれば欲しい、という類の
ものですよね。
シングルJVMにあくまでこだわるのであれば、javaコマンドは独自の
JVMインスタンスを起動するようなものではなく、JVMサービス(daemon)に
新たなスレッドを生成し、クラスロードを指示するようなものであるべきだった
と思います。
その方が起動は確実に早くなっただろうし。
0763733NGNG
プロセス間で利用できる共有メモリを扱う機能は、まだ無いよ。
そういうのは、おそらくEJBサーバとかRMIサーバを利用するの
がJava流。(TCP/IP越しになるので遅いだろうけど。でも、
LinuxのGNOMEなんかCORBAでやってるし〜♪)

アプリケーション製作側が、全体でJVMを一個だけ使用する
ようにして、追加機能はプラグインで、という発想は、
Eclipseとか、APサーバーとかでどんどん普及してるじゃんよ。
シランカ?
0764っていうかNGNG
プロセス間/ノード間のロックは DB 使え
0765デフォルトの名無しさんNGNG
クライアントサイドでDB?
0766749NGNG
>>763
MappedByteBufferまわりのヘルプを呼んだ限りでは、それがMAP_PRIVATE
相当機能ではなくMAP_SHAREDなものを提供すると読めたのですが、
勘違い?
分散オブジェクト環境は、個人的には
・大がかりすぎる
・柔軟だが、スケーラブルでない。端的に云えば性能がよろしくない。
と思っているので、代替手段があるのならその方がいいわけです。
性能がよくなくても良いのであれば、何らかのメッセージ機構が提供
されているならば、それを用いて排他プリミティブも実現できるでしょう。

APサーバが単一のJVMを用いているのは無論知っています。が、
何でもかんでも一つのAPサーバ上で実現できる(または、する)訳でも
ないでしょう。現実的な問題を云えば、例え基本的な実行単位が
プロセスではなくスレッドであるWin32環境においても
*スレッドはプロセスの代替にはならない*
ので、マルチプロセス環境を無視する訳にはいかないし、
javaインタプリタを>>762に書いたような方法で実装することは
現実的で有効な選択肢ではない(だから実際にそうなっていない)
...ということを云いたいわけです。
0767デフォルトの名無しさんNGNG
J2EE使いは凄いな.....。
J2EE学んでおけばなにか楽なことができそうだな。
移植性の高さからJ2EEを学ぶ価値は高そうだな。
ライブラリの統一性から学んでも損はしなそうだな。

それよりレスを見るとOSやネットワークの話が多いのか。
OSの知識やTCP/IPとかも深く学んでおく必要がありそうだ。
0768デフォルトの名無しさんNGNG
J2EEは使いこなすだけでそうとう高度なスキルを要するし
それにかかるお金も大きいほうだよ。
0769デフォルトの名無しさんNGNG
>>767が褒め殺しまたはネタにしか見えないのは俺だけか(w
0770デフォルトの名無しさんNGNG
>>765
俺は >>764 では無いが、あくまでこのスレの主旨が「クライアントサイドJava」であるのだから、
当然、対となる「サーバサイド」の存在があるわけで。

たぶん >>764 が言いたかったのは、「クライアントサイドが起動する時にサーバ側に問い合わせて、
自分は起動してもいいかを確認する」って事だったんじゃないの?その起動情報の保存用にサーバ側の
DBを使う、と。
接続法としては、別にSocketだろうが、URlConnectionだろうが、RMI(含む IIOP)だろうがなんでもいいと。

...って、そう考えると、APサーバやDB周辺がデカいMutexに見えてくるな(笑
0771デフォルトの名無しさんNGNG
クライアントサイドつったら、Java ゲームとか Win のフリーソフトとか
アプレットみたいなもんじゃないのか?

ま、どれを話題にしてもすぐネタ切れになりそうではあるが…。
0772デフォルトの名無しさんNGNG
// ヨカーン

while(true) {

  >>715-771

}
0773デフォルトの名無しさんNGNG
1000!!
0774デフォルトの名無しさんNGNG
Exception in thread "クライアントサイドJavaどうよ? part2" java.lang.OutOfMemoryError
at line 772
0775733NGNG
>>769

ファイルがマッピングされるダイレクトバッファは、JVMインスタンスに対して
関連付けられている状態ですので、プロセス間で共有は出来ませぬ。

Sunは、Javaでスレッドをプロセスの代替として使うことを推進してますでしょ。
第一、プロセスフットプリント分のオーバーヘッドを消費してまでプロセス分け
なきゃいけない理由ってナニヨ。JVM一個でヒープ広く取っておいて、スレッドで
シェアしたって一緒じゃん。
もしJavaでOSつくるなら、OSカーネル=イッコのJVMなんじゃないのかな。
0776デフォルトの名無しさんNGNG
俺もJavaのα版の頃から、Javaアプリやアプレットを作り続けているけど、
SunとMSのバトルで振り回されるのは、もう飽きた。クライアントサイド
にやる気のないSunは市ね(MSとの訴訟は大好きみたいだなw)。

こちとら、年配のコンシューマがターゲットなんで、JREをインストール
しろだなんだと、めんどくさいことさせられねぇのよ。アナログ回線な時
代はそんなことは死刑を宣告するようなもんだった。んで、インストール
ベースの一番多いMicrosoftVMを仕方なく使ってるが(Swingなんて使った
ことねーよバカ!)、バグの修正はもうやってねーし、この間はWindowsXP
SP1aなんか出しやがって。MSVMが入ってねー客はどーすんだオラ。JREダウ
ンロードさせようと思っても、使用許諾画面はなんで英語なんだ?ダウン
ロード方法教えるのがめんどくせーんだよ!Java Plug-inのgetjavaページ
もなんで英語なんだよ。日本語版作れ!ま、SunのVM入れたって、Win98とか
じゃHotSpotが落ちることあるしな。バグ減らせよ。本当に勘弁してくれ。

世間じゃJ2EEだなんだと、サーバサイドや組み込み全盛。展示会のセッショ
ンじゃ、クライアントサイドの話題なんて殆どねーよ。見に行く気にもなら
ん。JavaWebStartはなんで2回目の起動時にショートカットアイコンを作る
ような画面を出すのだ?余計なお世話はやめてくれ。その説明もめんどくさ
いんだよ。今じゃこの辺の制御は出来るようになったのか?

よーしパパ、C#に浮気しちゃうぞ。これならファイルの関連付けもマイドキ
ュメントフォルダも自由自在だ!あ、パイの狭いMac版対応は後回しで許して。

じゃ、バイバイ。
0777デフォルトの名無しさんNGNG
Delphiに浮気したいと思います。
0778776NGNG
まだ言いたいことがある。

おいおまいら。
マリンバはどーした?クライアントサイダーにとって、カスタネットは希望の
星じゃなかったのか?いや、違うな。失礼した。

とにかく、Sunはさっさと安定したVMを出せってんだ。ちょこちょこバー
ジョンアップするな!マウスのクリップ部分の画面表示が崩れるのを
DirectXのせいにして放置するな!グラボのパフォーマンス設定を落と
せだと?ふざけんな!そんなことユーザにさせられるか!VMオプショ
ンでDirectXをOffにしろ?そしたら画面が汚いんだよ!アホ!

BugParadeの大行列を解消しろ!

すっきりしたのでマジバイバイ。
聞いてくれてありがと。
0779デフォルトの名無しさんNGNG
なんかすごく説得力がありますた
0780デフォルトの名無しさんNGNG
マリンバにカスタネットか。
はるか昔に聞いたことがあるような気がするが…。何だっけ?
調べようかと思ったけど別にいいや。

俺は netscape4 についてきた netcaster の糞っぷりが忘れられない。
アクティブデスクトップに対抗したプッシュ配信技術なんだけど、
Java で書かれてたせいで起動に 1 分以上かかったな。
あとは Java で書かれた netscape4 ヘルプの糞鈍重っぷりとか。
あの辺がクライアントサイドの行く末を暗示してたな。

さて、仕事すっか。
0781デフォルトの名無しさんNGNG
>>776
あなたは仕事でJavaやっているの?
0782デフォルトの名無しさんNGNG
>>776 日本人止めて英語人になりましょう
0783デフォルトの名無しさんNGNG
>>782
あなたはよくそんなことを客に言えますね。
0784デフォルトの名無しさんNGNG
客となんか話できない末端コーダーですから
0785デフォルトの名無しさんNGNG
しかし、サーバーサイド=Java、クライアントサイド=.NETで進んでいる現代がむかつく、両方覚えるの大変じゃん
SunでもMSでもいいから、どっちか倒してくれ
0786デフォルトの名無しさんNGNG
クライアントサイドでJavaが覇権を握ることはまずありえないが、
かといって.NETにサーバーサイドを支配させるのはどうかと
0787デフォルトの名無しさんNGNG
起動が軽くなってくれればいいんだけどなー…
0788デフォルトの名無しさんNGNG
独占はどっちにしろ害にしかならんな。
Javaと.NETが相互利用できるようになるのが一番ありがたい。
0789デフォルトの名無しさんNGNG
Sunの内部メモが晒され、Javaに未来がないことがはっきりした。
0790デフォルトの名無しさんNGNG
>>789
(゚Д゚)ハァ? ソースは?
0791デフォルトの名無しさんNGNG
>>789の脳内。
0792デフォルトの名無しさんNGNG
SWT!
0793デフォルトの名無しさんNGNG
Sun 内部メモってむしろ電波ゆんゆんだと思うけどな。
Java マンセー、みたいな。
0794デフォルトの名無しさんNGNG
>>790
http://developers.slashdot.org/article.pl?sid=03/02/09/1347215&mode=nested&tid=108
0795デフォルトの名無しさんNGNG
>>794
肝心の部分が見れないんですけど。
0796デフォルトの名無しさんNGNG
プロ�c
0797デフォルトの名無しさんNGNG
Sunの中の人も大変だな。
0798デフォルトの名無しさんNGNG
自ら否定するのか・・・Sunもヤッテクレル
0799デフォルトの名無しさんNGNG
700 以上もレスがついてやがる。
本家 ./ のでかさって、./-J と桁違いなんだな。
0800799NGNG
ああ、./ じゃなくて /. か。

ぁゃゃか、俺は。
0801デフォルトの名無しさんNGNG
>>795
http://www.internalmemos.com/memos/memodetails.php?memo_id=1321
0802デフォルトの名無しさんNGNG
SunはサーバOSでLinuxに勝てる自信がそんなにあるのか?
0803デフォルトの名無しさんNGNG
斜め読みしてみても何が言いたいのか良く分からん。

とりあえず Sun 自身が「Solaris の Java 実装はイマイチ」と思ってるらしい
ということは読み取れるけど、これは「Java 自体がイマイチ」いってるわけではないよね。

「(Solaris の Java はイマイチだから) Solaris よりも Linux に注力することで
Sun の負担を軽減したい」ということなのか?
でも Enterprise 分野って Solaris 主流なんだよな。よくわからん。

後半は「JREでかすぎ」とか「バージョンでの互換性低すぎ」とか
「とっととバグ直せ」とかこのスレで言い尽くされた内容ばかりだな。
0804デフォルトの名無しさんNGNG
>>803
俺も読んでみたけど、なんだかなぁって感じがした。
Solarisの話されても、ウチでは使ってないし。
0805デフォルトの名無しさんNGNG
>>803-804
漏れもExcite翻訳使って読んだ。
やっぱりSolaris上で動くJavaだけの問題だったか。

>>789は電波だよ。あの全文ちゃんと呼んでいない厨房。
C#死滅スレPart7でさっきまで暴れていたあいつだよ。
なぜか不思議というか奇妙なくらいにかなりJavaを目の敵にしているみたいなんだ。
0806デフォルトの名無しさんNGNG
おいおい、厨房は隔離スレに引きこもってろよ
0807デフォルトの名無しさんNGNG
>>805
放置を覚えられないやつは何をやっても駄目。 みつを
0808デフォルトの名無しさんNGNG
業務でクライアントアプリケーションをJavaで実装します。
1.4 になって実行速度はほとんど問題ないのですが、
起動時間が遅いのが問題です。起動・終了の多いアプリケーションなので。

そこで次のようなものを考えました。(まだ実装していません。)
JVMをあらかじめひとつ起動しておいて待機します。
ソケットで実行したいクラス名をそいつへ通知します(Cで実装します)。
受け取ったクラス名からインスタンスを生成してあげます(別スレッドで)。

アプリケーションの起動 = ソケットで実行したいクラス名を通知 ということです。

ここで問題になるのが、コードの書き方によっては JVM 自体を落としてしまうということです。
呼ばれたクラスで System.exit() なんて書いてたら、呼出元もろとも即死ですよね?
それと、呼ばれたクラスでエラーが発生したら・・・? これは、呼出元で
catch(Throwable t) {} しとけば大丈夫ですよね。

なにかいいアイデアないですかね?
0809デフォルトの名無しさんNGNG
>>808 自前のセキュリティマネージャをインストール。
でも昔全く同じことをやったとき(1.2とかそのへん)、System.exit()を
投げてきたスレッドグループをどうするかでVMごとの違いがあって
はまったな。単純にSystem.exit()してきたグループをkillすると
AWTまわりのオブジェクトを破棄するVMとかかえたままのVMがあったりして。
最近のはわからん。でも自分でクライアントアプリケーションも実装する
なら「System.exitはつかわない。もしつかったらセキュリティマネージャ
で捕まえてassertのメッセージを出す」くらいでいいだろうね。
0810デフォルトの名無しさんNGNG
> 起動時間が遅いのが問題です。
> 起動・終了の多いアプリケーションなので。

その時点でJavaを選択肢から外さないのがおかしい。
0811デフォルトの名無しさんNGNG
>>810
まぁ、回避策はいくつかあるからねぇ。
0812デフォルトの名無しさんNGNG
無駄な苦労を背負い込みたいならともかく、
判断は冷静にしようね。
0813デフォルトの名無しさんNGNG
IBM製やBEA製のJREって、どうよ?
0814デフォルトの名無しさんNGNG
>>812
これから作るんだったらJava以外の選択肢も選べるだろうけど
もー作っちゃってる場合はJavaで起動時間短縮する工夫した方が早いっしょ。
0815デフォルトの名無しさんNGNG
JET3.0使ったやついる?
コレ結構いいよクライアントサイドにはもってこいだな
SWTも使えるし・・・
いま、体験版だけどマジで製品版買おうかな?
JETで作ったSWTのサンプルexeプログラム(Winのエクスプローラ風)ここからDLしてみそ
ttp://www.xlsoft.com/jp/products/jet/jetswt.html
0816デフォルトの名無しさんNGNG
>>814
冷静な判断という言葉の意味を判ってないのね。
0817808NGNG
Java以外に GUI が書ける言語は VB くらいしか知りません。
アプリケーション上に表示されるGUI部品が動的に変わるので
VB には荷が重いかと思いました。

C# のほうが良いとも思うのですが、文法はともかくクラスライブラリの
使い方やクセを覚えるのにそれなりに時間がかかると思いまして。(C#未経験)
(Swingもそれなりに使えるようになるのに時間かかったし…)
0818デフォルトの名無しさんNGNG
>>817
Swingよりハラクダヨ。そんなにディープなことが出来ないようになってるし。
0819808NGNG
>>815
以前ちょっとだけ使ったことがあります。実行速度をちょっとでも速くしたい、
というのならともかく、配布を簡単にしたいということであればオススメしません。

スタンダードエディションでは、実行クライアントへ JRE と JET を
配布する必要があります。結局、足枷が増えるだけですね。

Webで公開されているサンプルのように JRE から独立したフルネイティブで
コンパイルするにはプロフェッショナルエディション + SWT使用 が必要です。
0820808NGNG
>>818
ちょっと本屋に行って、VS.NET体験版付き買ってきます。
0821デフォルトの名無しさんNGNG
iアプリを作るソフトがJavaで糞すぎて.NETアプリになったとどこかにあったが。
0822デフォルトの名無しさんNGNG
>>821
DoJa Builderは、DoJa(iアプリ)アプリケーション開発ツールです。
NTTドコモのiアプリ開発を強力にサポートします!
http://www.skyarts.com/japan/products/programing/dojabuilder/index.html

Q:なぜ.NET Frameworkが必要なのですか?

 DoJa Builder Ver 1.xはJavaアプリケーションでした。しかし、
そのことにより以下の問題点がありました。

起動が遅い
動作が重い
GUIが使いづらい
ホイールマウスが使えない(JDK1.3の場合)
ダイアログが後ろに行くと元に戻しにくい
  これらのことからユーザーの開発効率をあげるためにはVer1.xを引き継いで
Javaアプリケーションのままバージョンアップを行うことは難しいと判断しました。
0823デフォルトの名無しさんNGNG
今のところ
Java ─ めんどい。
.NET ─ らく。高機能。
0824デフォルトの名無しさんNGNG
.NETアプリだと1回目の起動は遅いが(もちろんJavaよりは速い)
2回目以降はものすごく速い。
起動・終了繰り返すものなら適当だと思う。
0825デフォルトの名無しさんNGNG
>>822
そう、それそれ。ありがとう。
悲しい現実ですね。
0826808NGNG
VS.NET評価版付きの書籍買ってきました。これからインストールです。
ところでみなさんクライアントサイドでのJavaあきらめて .NET ですか?
0827デフォルトの名無しさんNGNG
>>816
「冷静な判断という言葉の意味」って何?
0828デフォルトの名無しさんNGNG
>>826 Winでしか動かないものには興味が無いから.NET使う予定無い。
Unix系でしか動かないものなら興味ある。
0829デフォルトの名無しさんNGNG
>>827
意味の意味について問いただすと深いぞ。
0830デフォルトの名無しさんNGNG
>>828
mono試してみて
0831デフォルトの名無しさんNGNG
>>830
動かない on FreeBSD
0832デフォルトの名無しさんNGNG
起動が遅い
動作が重い
GUIが使いづらい

これを2ちゃん以外の場所で目にするとは・・・現実って残酷ですね
0833デフォルトの名無しさんNGNG
>>828
じゃ、Cで決まりですね。
0834デフォルトの名無しさんNGNG
>>832
しかもiアプリ開発に.NETというところがミソですな。
0835デフォルトの名無しさんNGNG
>>832 そういうページをレンタルサーバ使って公開すればいくらでもそんなことかける。
0836デフォルトの名無しさんNGNG
>>832
実際に製品を作って、売ってる人たちの言葉だからな・・・
結構なクレームが来たんだろう。
0837デフォルトの名無しさんNGNG
>>836 とにかく、クライアントサイドJavaがもっと普及するのは
もっと待たないといけないと言うことだな。
ハードウェアの性能向上を待つのみ
0838デフォルトの名無しさんNGNG
>>837
そう言われ始めた頃から既にCPU、メモリともに10倍の進歩を遂げてるけど、
未だに待ち続けてるよね。

待ち疲れますた・・・
0839デフォルトの名無しさんNGNG
結構大きめのシステムになると Javaだから遅い、ということには
ならないすね。誤差になってきます。
たとえば 朝一度立ち上げて 夕方まであげっぱなし、なんて運用の
プログラムだと Javaでも十分いけるです。
Swing部品がいけてない、ってのは たしかに初心者の開発者が
そう誤解しても仕方ない面がありますけど、
好きなだけ いじくりまわせるので、一度凝った部品作ったことがあれば、
VBなら部品購入しなきゃできないような機能も
簡単につくれるようになるす。
わたしは Delphi も VBも C#もさわりますが、Javaのクライアントもいいすよ。
0840デフォルトの名無しさんNGNG
>>836
つまり、一般配布用には使い物にならないってことだよね。
メーカーさんには申し訳ないけど、いい実験例だったと思うよ。
0841デフォルトの名無しさんNGNG
それならネイティブで作ればいいのに。また実験を繰り返してるね、そこ。他人事だけどさ。
0842デフォルトの名無しさんNGNG
ここで妄言を撒き散らすよりはマシなんでネーノ?
0843デフォルトの名無しさんNGNG
>>841
それは言っちゃダメでしょ。
0844デフォルトの名無しさんNGNG
妄言ってたとえば839?
あ、837か。
0845デフォルトの名無しさんNGNG
あきらめが肝心。
0846デフォルトの名無しさんNGNG
>>844
>>1-999 までの全てを妄言と認定します。
0847デフォルトの名無しさんNGNG
>>836 メーカー側のプログラマの作り方が気になる。
一つのメソッドに無駄にオブジェクトをnewしているとか
不要なオブジェクトにnullをポイントしていないとか
ループ文の外側でできることをわざわざ内側で無駄に処理しているとか、
気になる。

>>838 もっと待て。

>>839
Javaは一度起動すると他の言語で作ったものと速度差が少なくなるものが多いんだな。

>>841
SwingがほかのGUIと同じくらいパフォーマンスになるには
どんなコーディングにすればいいのか、という分析をしてからそういう発言をしてくれ。

>>841 代わりになるものが無いからJavaで作っていると思う。
0848デフォルトの名無しさんNGNG
>>822 プログラミングにはJavaで
開発環境だけが.NETということで
携帯電話が.NET対応になったわけじゃないのか。
0849デフォルトの名無しさんNGNG
必死だな
0850デフォルトの名無しさんNGNG
>>849
「(藁」が抜けてますよ。
0851デフォルトの名無しさんNGNG
>>850 NGワードに入れられているからわざとはずしてんじゃね?
0852デフォルトの名無しさんNGNG
>>851
笑った。見ちゃった?
0853デフォルトの名無しさんNGNG
もしかしてリア厨連呼の人か?
死滅スレに引きこもってろよ
0854デフォルトの名無しさんNGNG
何年経ってもダメだと思うが。
0855デフォルトの名無しさんNGNG
OracleとかJBuilderとかが、自分専用JREをインスコしやがるのが
激しくむかつくんですが。

常にランタイム同梱ならSmalltalkで作ったって同じだな。
0856デフォルトの名無しさんNGNG
>>855
Oracle とか Borland に文句言えば?
■ このスレッドは過去ログ倉庫に格納されています