1read 100read
2012年07月プログラム145: JAVAってこんなことも出来ないの? (473)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
【信者】C++の問題点【アンチ】 (375)
ゲームプログラムなら俺に聞け26 (501)
Cygwin + MinGW + GCC 相談室 Part 6 (945)
「OS自作入門」 (318)
VBSで便利なプログラムを作れスレ (545)
VBScriptについて必死に話し合うスレ (335)
JAVAってこんなことも出来ないの?
- 1 :2007/05/19 〜 最終レス :2012/10/28
- mainメソッドから値を返す。
- 2 :
- >>1
System.exit(0);じゃだめかね
- 3 :
- >>1ってプログラム言語もまともに使えないの?
- 4 :
- ごはんを焚く
- 5 :
- 馬鹿キタコレ
- 6 :
- まずお湯を沸かします
- 7 :
- 「苗を植える」からじゃないのか?
- 8 :
- __________ __ ______ _____ ___ ___ ___
/ / / / | / /__ __/ [][] _| |_| |__ _| |_
/_______ /__/ /_ | ____/ / / | _ | |_ レ'~ ̄|
/ / /__ _/ / /____ | |___  ̄| | / / / /| |
/ / / | / __ / \__| | |  ̄ /_ / | |_
/ \ / / / | / | / / |_| |__| \/
.\ \/ / / / /|_| / /| | / /
\ / \// / / / \ V / We are The Real Programmers
\ \ / / / / / \ http://pc11.2ch.net/prog/
\/ /_/ /_/ ∠_/\_\
- 9 :
- ∩___∩
| ノ ヽ/⌒) あばばばばばば
/⌒) (゚) (゚) | .|
/ / ( _●_) ミ/ ∩―−、
.( ヽ |∪| / / (゚) 、_ `ヽ
\ ヽノ / / ( ● (゚) |つ
/ / | /(入__ノ ミ あばばっあびゃばびゃばば
| / 、 (_/ ノ
| /\ \ \___ ノ゙ ─ー
| / ) ) \ _
∪ ( \ \ \
\_)
- 10 :
- 確かにできないね。
何となく必要性はわかるよ。
他のクラスから、既存のロジックを実行するクラスをコールする。
みたいなことでしょ?
で、その「他のクラス」は「既存のロジック」を実行した結果を知りたいんでしょ?
だとしたら、
「既存のロジック」を持っている既存のクラスで、
値の代わりにカスタムExceptionをthrowさせればいいんじゃない?
「他のクラス」はthrowされたExceptionで結果を判別できるでしょ。
ちょっとデザイン的には不細工に思えるけどね。
もしくは、
「他のクラス」からコールする前提のPublic methodを実装すればいいんじゃない?
結果的にはこちらが自然なんだけど。
- 11 :
- >>1低脳乙。もうちっと調べて物を言え。
>>2でも言われているが...
java.lang.System.exit(int status);
現在実行している Java 仮想マシンを終了します。
引数はステータスコードとして作用します。
通例、ゼロ以外のステータスコードは異常終了を示します。
-----終了-----
- 12 :
- 釣りだろ?
- 13 :
- > 4
最近はReal-timeもかなり良くなってるから、Javaで制御する炊飯器って問題なく作れると思う。
- 14 :
- javaってGPUの機能使えるの?
- 15 :
- >>11
return 1;
とか出来ないじゃん。
- 16 :
- そこに何の問題が?
- 17 :
- >>15
static void main(....
なんのためのvoid指定なんだよ
- 18 :
- Javaって
W r i t e O n c e , R u n A n y w h e r e
も、出来ないよね。
- 19 :
- >>18
これができない時点で実は Java の存在意義ってほとんどなくなるんだけどなw
- 20 :
- えっと、いまのところWrite Once, Run Anywhereが一番できることに変わりないのだけど。
少なくとも、Javaの存在意義が発揮できる程度にWrite Once, Run Anywareが実現できてるわけだけど。
- 21 :
- perlの方が
- 22 :
- 例えば Perl はポータブルな GUI 作れないやん
- 23 :
- て言うか、PC アプリに限れば Windows をターゲットにすればどんな言語でも
ほぼ Run Anywhere だからなぁ。
- 24 :
- ププ
- 25 :
- >>21
ファイルパスの扱いは?
あとは、スレッドの扱い。
印刷はどうする?
> 23
Macのユーザーは着実に増えてるわけで。
その程度の動作確率でRun Anywhereといっていいなら、Javaは充分Run Anywareだ。
- 26 :
- Java以外で出来ないとでも思っているのか?
- 27 :
- >>25
> その程度の動作確率でRun Anywhereといっていいなら、
> Javaは充分Run Anywareだ。
その程度の動作確率で充分な世界があるわけで、その世界だと
Java もその他の言語も充分 Run Anywhere
つまり、その世界では Run Anywhere なんて何の自慢にもなら
ないって言ってるんだけど、難しかった?
- 28 :
- >>27 は >>18 はとんだ大間違いだと言いたい訳か
- 29 :
- >>20
うん、まぁ、ある程度はそれができていることは認めるよ。
でも、厳密に Write Once, Run Anywhere ができていない以上は、
この点に関しては他の言語と程度問題の差でしかなく、一線を画す類のもんじゃない。
それでいて実現できてない理想の為にVM上で動かさざるを得ずパフォーマンスは悪い。
現状、それでも使い物にならないってほどじゃないから、妥協した上での選択肢として
Javaがそれなりに利用されてるってだけだってことをお忘れなくw
- 30 :
- それなりねー・・・・
- 31 :
- http://pc11.2ch.net/test/read.cgi/tech/1178945996/10n
>C: ケンシロウ
>C++: ラオウ
>D: トキ
>Java: ジャギ
これ、言いえて妙だと思ったw
- 32 :
- >>29
Run Anywareで問題になってるところって、たとえば何があるの?
- 33 :
- 北斗の拳を知らないのか、プログラミング言語を知らないのか、どっちなんだろう…
- 34 :
- >>32
それは Java 厨のほうがよく知ってることだと思うんだが。
- 35 :
- つまり、想像でRun Anywhereができないと言ってるわけかな?
パフォーマンスが悪いってのも、どういうアプリケーションで問題になるの?
あと、程度問題でも、実用上の差があれば一線を画すわけだが。これはRun Anywhereの問題に限らずね。
- 36 :
- >>35
ハイハイ、じゃヴぁはすごいねぇ。ほんとすごいよ。
これでJavaしかできない劣等プログラマでも一安心だねw
- 37 :
- むしろ、Run Anywareが特に効果を発揮した場所を知りたい。結局プラットフォームごとにデバッグするわけで。
- 38 :
- スペルミスorz
Anyware → Anywhere
- 39 :
- いやぁ、3年前くらいだったら、こういうときに反論できなくなってたのはJava使いの方だったんだけど。
ほんと、Javaもすごくなったもんだ。
CPUが速くなってメモリが安くなったおかげってのもあるんだけど。
Javaしかできなくて心配だった時期もあったんだけど、>36のレスみて一安心した。
ありがとう。
- 40 :
- 単なる興味の話なんだけど、JavaでLANカードのMACって作れるの?
組み込みLinux上で動くJavaVMとかあれば何とかなるんだろうか。
レジスタアクセスとか、物理メモリを直接触る操作とか辛そう。
- 41 :
- >>37
え?
Windowsで開発して、実環境はLinuxというのが大規模アプリのレベルで行われてるわけで。
大規模じゃない場合、WindowsだったりMacだったりLinuxだったり、好きな開発マシンを使えるし。
プラットフォームごとにテストする場合も、同じテストが使えるしな。
あとは、MacとWindowsで共通のアプリを作る場合にもJavaが採用されるな。
Javaのおかげで、開発マシンのOSが自由に選べるのは、結構ありがたい。
- 42 :
- >>40
そういうのはJNI使うだろうな〜。
言い訳としては、そういうアプリではRun Anywhereが求められない、って感じで。
需要が大きければ主要OS用のライブラリを誰か作ってくれて、しばらくするとJDKに取り込まれる。
- 43 :
- >>41
俺はそれと同じことをC++で実際にやってますが、なにか?
- 44 :
- > 43
それは、とても尊敬する。
そういうときって、Windows邪魔だよね。
あ、Cygwin使うのかな?
- 45 :
- C++はRだからなー・・・
- 46 :
- >>44
将来的にはGUIアプリなんかでも同様のことをやろうと思ってるけど、
現時点ではそこまでは及んでない。んで、別にGUIアプリじゃなきゃ
実はそんなに難しいことじゃなかったりする。
Cygwin は Windows 上から Linux 系向けのコードを簡単にテスト
する為の環境として重宝している。
- 47 :
- >>42
JNIは初めて知った。
やっぱJava全然知らんなぁ、俺。
とりあえず外部DLLに頼らざるを得ない部分は出てくるわけか。
>Run Anywhereが求められない
めっちゃ欲しいっす。
MACみたいなハード寄りの組み込みプログラムなんかだと、
ハードウェアとソフトウェア、同時に開発進むこと多いんだ。(うちの会社の場合)
で、ソフトはエミュレータみたいなの使って動作確認やるんだけど、
ハードとの結合でボロボロ不具合出てくる。
でも出来ても結局リソース食うから、コスト的には使われなさそう・・・。>組み込みJavaVM
下手するとCPUすら削って、製造コスト下げようとするからネ!!
- 48 :
- C++というか、周辺ライブラリだよね。
GUI使うと、WORAは結構悲惨。
というか、GUI使ってWORAだと、Javaが最善だと思う。
システムLAFもよくなったし、タスクトレイにアイコン追加できるようになったし。
GIMP見てると、GTKはWindows上で一般向けっていのはかなり難しいし。
- 49 :
- >>47
なんか面白そうだな。
たまにはそんなジャンルの仕事もしてみたい。
いつもそんな仕事じゃいやだけどw
- 50 :
- >>47
MACだけとか単純なものだったら、各環境でJNIやってもそこまで手間にならないと思うから、アプリ部分をJavaにしてWORAになるのはデカイと思う。
EclipseでもNetBeansでもC++の環境があってJNIやりやすくなってるし。
まあ、組み込みだとちょっとつらいかね。
ハードとソフトが同時進行の場合は、いかにハードのモックを作れるかが勝負だね。
- 51 :
- >>49
Web+DBアプリってのは、プログラム的には一番面白くないと思う。
Ajaxなんて、流行りモノじゃなければ、無駄な作業以外の何者でもない。
- 52 :
- >>48
JavaのGUIはSwingでしか作ったこと無いけど、確かに良いね。
多少見た目変わるけど、ほぼ確実に動く。(気がする
>GIMP見てると、GTKはWindows上で一般向けっていのはかなり難しいし。
いまひとつ意味が分からない
(閑話休題)
C/C++のマルチプラットフォームなプログラムは#if、#ifdef、#pragmaの
オンパレードだったりするしなぁ・・・。
こっちの問題は、そもそもC/C++はコンパイラの種類が多すぎる。
そのくせ標準のC/C++の関数だけだと大したこと出来ないし。
WinでもLinuxでも存在するgccは、その辺は強いかも知れない。
- 53 :
- あ、業務アプリ系やってるのかなぁと勝手に推測してみた。
- 54 :
- >>52
GIMPをWindows上で使ってファイル保存ダイアログが表示されるタイムラグとか使用感とか見てると、Windows上でのGTKって普通の人に使わせるにはちょっとつらいかなと。
C++で使えるクロスプラットフォームなGUIって、GTKくらいだよね?実用的なの。
- 55 :
- >>53
>>51 は、なに言ってんのか、意味不明だったけどそういうことかw
おれ自身はいままで幅広くいろんなことをやってきたんでたいていの分野の特色は
ある程度はわかる。ただ、逆に汎用的なプログラマになっちまったせいで、これなら
誰にも負けないぞ的な部分に欠けるのがちと痛い。
汎用的だと潰しはいくらでも利くけど、極端に高い給料がなかなか望めんのよね。
- 56 :
- >>54
知ってる限りではGTKぐらいだなぁ。
>一般的でないって話
なるほど。
んー・・・俺の場合はEtherealがサンプルになるけど、確かに遅いは遅い。
が、2年前ぐらいにJBuilderで作ったJavaのGUIアプリと比べては
そんなにストレスに差は無かった気がするけどなぁ。
2年前とは既に別物なくらい早いとかJBuilderがクソとかなら
ちょっと経験上は比べらんないな。
- 57 :
- >>54
コアの機能だけ移植性が高ければ、プログラミング言語側の都合を抜きにしても
GUIまわりはOS別に構築したほうが俺はいいと思ってるけどなぁ、昔から。
だって、そもそもGUIってプラットフォーム毎に文化が全然違うんだから、
それを無理に共通化するのなんてナンセンスだと思う。
例えば、iTunes を俺は最初に Mac 版で使ってんだけど、Windows 版を
初めて見たときなんかあまりのナンセンスぶりに思わずひとりで大爆笑しち
まったもんだよ。あんなのギャグ以外のなにものでもない。
- 58 :
- >> 56
JDKのバージョンが問題だな。
JDK1.4.0でのSwingと、JDK6のSwingは、速さの点では別物。
JDK1.3だったりすると、話にならないレベル。
今は速さの点でSwingに不満が出ることはないと思うよ。
- 59 :
- >>57
Swing使ってみ。
Mac用のVMをAppleが作ってるってのは、そういう点でかなりいいと思うよ。
Windows上の動作も、バージョン重ねるたびに改善されていってるし。
- 60 :
- >>57
どうだろう。
一理あるけど、レイアウトは独立的でも、
各コンポーネントは共通の方が作りやすいかも。
>>58
JDK5だったかな。
系統的にはどっちになるか分からない。<1.4系?6系?
- 61 :
- JDK5.0だったらかなり速くなってるはずだなぁ。5.0系。
- 62 :
- >>60
確かに(例えば)リストコントロール周りの似たような処理を
OSごとに書くのは馬鹿馬鹿しい気もする
どこまでを共通のフレームワークとするのかはまた別の話だけど
- 63 :
- >>61
んー、そんな個人的にはGTKもSwingも、実用的な速さだと思う。
同じぐらいの速さだった気がするなぁ、って程度の話。
スペック低いPCだと顕著な差が出たりすんのかねぇ。
ではそろそろ寝る。
- 64 :
- > 63
速さ的には、GTKの方が速いと思うんだよね。
ダイアログ表示が待たされるだけで。この遅さが結構つらいと思ったんだけど、それよりなんか使用感に違和感がありすぎて。
ファイル保存ダイアログの表示が遅いからGTK共通かと思ってるんだけど、もしかしてGIMPの保存ダイアログが特別遅いのかな。
- 65 :
- あ、お休み〜ノシ
- 66 :
- まちがえた、65=64
- 67 :
- >>40
MACを作るってのがわからんけど、
MACアドレスなら 1.6 から java.net.NetworkInterface#getHardwareAddress() で取れるぞ。
- 68 :
- >>67
MACソフトは、ハードウェアとドライバの間にあって、
ドライバからの送信要求をハードウェアに
ハードウェアからの受信通知をドライバに
それぞれ橋渡しするソフトウェア。
MACアドレスが取れるとかよりも、ROMやRAMのメモリにどれだけ自由にアクセス出来るか、かな。
具体的に例を挙げると、Ethernetの送信とかだと
ドライバからあるデータを送信しろという命令を受ける
↓
データにEthernetのヘッダをつける
↓
ある物理メモリの0x00210104にヘッダ付きデータの先頭を表すポインタを設定
↓
0x00210100の第3ビットを1にする
↓
ハードウェアがそのパケットを送信する
とかそういうインターフェースをラッピングする。
概念的なMACはまた違うけど、実装にあんま関係ないかな。
- 69 :
- あー、ファームウェアみたいなもんか?
- 70 :
- ていうか、ファームウェアの一種かな。
- 71 :
- そのあたりの処理は NIC によってはドライバでやってる奴もあるし
ファームでやる奴もある。
残念ながら、まだ Java でどうのこうのできるレイヤーじゃなくて、
ASM / C / C++ あたりで書かれる。
- 72 :
- もしそのファームがJavaで書かれてたとしてもPC上のJavaからは使えんから意味ないね。
- 73 :
- 実現したら携帯のアプリをJavaで作るのと同じようなノリになるのか?
- 74 :
- 実践的にJavaでプログラム書いてると
想像以上のぬるぽExceptionの出現の頻度に驚く
まじでCで書いてた時よりも多いよ
Javaってつくづく間抜けだなと思う
- 75 :
- >>74
- 76 :
- ぬるぽに遭遇するのは低級プログラマ
- 77 :
- 自分で組んだプログラムでのぬるぽは、言語の話ではなく単なるコーディング能力。
- 78 :
- Cのスタイルで先頭にまとめて変数宣言するとぬるぽ多発しそうな悪寒。
変数は必要なときに、初期化つきで宣言するが吉。
- 79 :
- TextBox hogehoge = new TextBox();
String fugafuga = hogehoge.getText();
みたいなときに
TextBoxの入力が空だった場合
fugafuga は "" になる? null になる?
- 80 :
- ""
- 81 :
- >>78
クラスのインスタンス変数は先頭にまとめてしまいがちで
コンストラクタで初期化する傾向にありますが
何か良い方法はご存知ないでしょうか?
- 82 :
- >>81
それはCスタイルとは意味が違うと思われ。
まあ、普通に初期化文法が使えるなら使えってのは一緒じゃないの?
- 83 :
- >>74がbug量産プログラマということが証明されたのか、ふんふん
- 84 :
- >>81
1.Eclipseで編集
2.DI(Springなんか)を使ってxml記述にて初期化
- 85 :
- >>74はCでメモリ開放しないでコードかいてたんだよ。きっと。
そしてJavaにきてガーベッジコレクションでメモリ管理されるようになって
ぬるぽが続出しているんだ。
そして74はこれを回避するために一時変数とかをすべてstaticなフィールドにして
最初に初期化するという方法を思いつくんだ!
ぬるぽが出なくなって74は喜ぶが、代わりにロジックの誤りに悩まされてデスマに突入
ガッ
- 86 :
- ぬるぽとがべこれは無関係だろ
- 87 :
- 84が負け組ということはわかった。
- 88 :
- >>85
Cだと概念的にはnullのところがエラーとならずに値が読めてしまう場合あるだろ?
Javaだとそういうところ厳密なわけよ。
それはメモリ管理がガーベッジコレクションによって行われるようになって
プログラマの責務が減ったからからなんだよ。
新言語に搭載される機能が生まれてきた背景は知っても損はないぜ。
- 89 :
- 仮想マシンが null チェックやってるってだけのことだろ。
GC と何の関係もないよ。
- 90 :
- >>54
> C++で使えるクロスプラットフォームなGUIって、GTKくらいだよね?実用的なの。
wxWidgets是非試してみて。
>>57
> GUIまわりはOS別に構築したほうが俺はいいと思ってるけどなぁ、昔から。
wxWidgets使えばGUIもWriteOnce, CompileAnywhere!
- 91 :
- >>77
> 自分で組んだプログラムでのぬるぽは、言語の話ではなく単なるコーディング能力。
「ミスが出易い仕様」という言語の話。
- 92 :
- ミスするのは人
- 93 :
- 確かにミスを洗い出しやすい仕様だな
- 94 :
- >>89
まったく分からん奴だな。
CGがメモリ管理するようになって、alloc、freeみたいに
自力でメモリ確保と開放しなくてよくなったんだよ。
これは背景事情な。
で、自力でメモリ管理やるCの場合は、初期化していないアドレスに
アクセスすることがあったし、開放したメモリにアクセスすることもあった。
Javaの場合は前に使った値がメモリに残っている、とかそういうのはなくて
オブジェクトが生成されてなければ常にnullなんだよ。
だから、Cでメモリ管理ミスってるコードみたいな書き方をした場合は
みんなぬるぽになんの。
たまたま値が残っててそのまま動く、とかそういうことは起こらんの。
そういう見つけにくい、かつ深刻な問題が起こるバグの代わりに
はっきりと初期化されてないよって警告が出るようになったの。
だから、「ミスが露呈しやすい言語仕様」になっただけ。
むしろ発見が早まって生産性いいんだよ
- 95 :
- Cでヌルポインタと言ったらNULLのことで、
初期化されていないポインタや解放済みの領域を指すポインタはまた別だろ。
- 96 :
- >>95
誰に言ってんの?
- 97 :
- http://pc11.2ch.net/test/read.cgi/tech/1168157769/14-15
- 98 :
- 画面作るのが糞めんどくせええ!!!!
SWTイレねーと糞なのにデフォで付いてねえ!!
環境整えるの糞めんどくせーー!!
jsp+servretでやっとMVCの概念覚えたと思ったら
strutsがデフォだからjsp+servret使ったらわかりにくいだってwww
strus糞めんどくせえええ
HTMLタグやっと覚えたと思ったらstrutsタグつかえだと?
jspファイルでhtmlタグとjspタグが混ざってたら見づらいんだってwwww俺は見づらくねえwww
web.xmlとかserver.xmlやっと覚えたと思ったらstruts.xml使えって?
あほかwwwwww今までの、無駄wwwwwww今までのは嘘でしたwwwwwって言われた気分wwwwww
eclipseバージョンあげたらプラグイン動作しねえええ!!!
web系でフォルダ覚えるの糞めんどくせええ!!!
全体的に覚えることが大杉
と思いながらも、独学でjavaやってたが
仕事で使ってるvb.netの使い勝手があまりに良いので
javaの情熱冷めた('A`)
- 99 :
- struts がアレだったのは別にして、>>98はプログラマに向いて無いと思う。
- 100read 1read
- 1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
プログラムに詳しくなりたい (508)
プログラム板 自治スレッド Part5 (821)
訃報: C 言語の開発者、デニス・リッチー氏が死去 (576)
動的言語で大規模開発 (284)
Borland Developer Studio 2006 No.13 (268)
C++11/C++1y 16 (225)
--log9.info------------------
モンスターファームバトルカード (328)
【MTG】デッキ相談所・21束目【構築・診断】 (510)
【遊戯王】トゥーンを語る4ページ目【無敵デース】 (253)
関東圏のカードショップを語るスレ3くらい (473)
【ヴァンガード】VanGuard ONLINE専用スレ2【VO】 (321)
【遊戯王】レート質問に全力で答えるスレpart3 (338)
ジョジョの奇妙な遊戯王2スレ目【戦闘破壊】 (268)
【MTG】関西のイベント主催者ねこやんを語るスレ2 (619)
【MTG】青スレpart30 (276)
【DM】デュエリスト達の電脳チラ裏 2枚目 (553)
【MTG】最弱カード 8マナでDivine Intervention (884)
【MTG】コモンデッキ・Pauperスレpart3 (842)
【遊戯王】恐竜族その13【エヴォル】 (545)
【BS】バトルスピリッツ隔離スレ【バトスピ】 (960)
カードショップにありがちなこと (516)
【遊戯王】バーンデッキ part6【通称焼き】 (386)
--log55.com------------------
TWICE雑談(ID無し)★16
【KARA】ク・ハラ応援スレ☆204【笑顔】
【NTB】ノーティーボーイズ10【NSIF】
【デビュー予定】 ロケットパンチ
【KARA】スンヨン応援スレ☆268【もっとBANG! BANG!】
【エーピンク】Apink シーズン70【清純派6人組】
【HIT】SEVENTEEN ☆25【セブチ】
【脱退】EXID イーエックスアイディー 応援スレ★18 【分離】