トップページ⇒tech
1001コメント461KB

【初心者】Java質問・相談スレッド94【大歓迎】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/11/21(火) 06:11:54
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/

これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。

前スレッド
【初心者】Java質問・相談スレッド93【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1149349035/

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/

次スレは>>980あたりで。
0002デフォルトの名無しさん2006/11/21(火) 06:12:32
ずるしてらくしてかれいに2げっとかしらかしら〜
000312006/11/21(火) 06:14:35
すまん。
前スレのリンク間違った。

前スレッド
【初心者】Java質問・相談スレッド93【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1161492130/
0004デフォルトの名無しさん2006/11/21(火) 13:41:22
前スレ994です。if文についての回答ありがとうございました!
0005デフォルトの名無しさん2006/11/21(火) 15:30:48
taglibで、チェックボックスとかラジオボタンのnameとかvalue属性以外の属性をセットするのってどうやるん?
例えばid属性とか(´・ω・`)
0006デフォルトの名無しさん2006/11/21(火) 15:34:17
あ、こっちはpurejavaか・・・
スレ違いスマソ(´・ω・`)
0007デフォルトの名無しさん2006/11/21(火) 15:35:02
Server VM とやらを使ってみようと思って -server をつけてみたら,
Error: no `server' JVM at ......
と表示された.
Server VM というのは別にインストールする必要があるんでしょうか?
0008デフォルトの名無しさん2006/11/21(火) 15:44:47
普通は別にインストールする必要は無い。
sunのvmの場合は、ドキュメントを見る限りどちらも同じvmだが、初期パラメータが違うだけっぽい。
特殊なアーキテクチャ・vmなら、そいつはなにか追加インストールが必要かもしらんが
sunのvm + windows なら不要。
0009デフォルトの名無しさん2006/11/21(火) 15:48:39
>>7
そのエラーメッセージの後に表示されたファイルを探して、
それがもしないのなら、java -serverで呼び出しているjavaの実行環境にはserver VMはない。
もし、JDKをインストールしているなら、
JDKをインストールしているディレクトリ下にjre/bin/serverというディレクトリがあることを確認して、
JDKインストールディレクトリの下のbinディレクトリにあるjava実行ファイルを直接フルパスで指定して、
-serverオプションをつけて実行してみて。
001082006/11/21(火) 15:50:21
>>7
すまん。 今書いた内容に嘘が混じっていた。 心から恥じる。
server/clientは別のvmを使っている。
win版なら、jre/bin/{server|client} に別々のjvm.dllが入っている。
かと言って別にインストールする必要は無いが。
0011デフォルトの名無しさん2006/11/21(火) 15:53:27
bin/javaでもjre/bin/javaでもどちらでもいけるかも
0012デフォルトの名無しさん2006/11/21(火) 16:05:44
パスの設定次第だけど、JDKをインストールしたときにJREもインストールすると、
Windowsの場合、JDKインストールディレクトリの下のbinへのパスよりも、
Windowsのシステムディレクトリやその下のsystem32へのパスが優先されていると、
そちらにあるjavaが使うJREはclient VMしかインストールしないので-serverが利かないみたい。
JDKの方にあるJREにはserverとclientの両方がインストールされているので、
直接そちらのjavaを指定して使うか、パスの順番を変更するか、どちらかで対応。
001372006/11/21(火) 18:21:20
>>8-12
アドバイスありがとうございます
環境はSunVM+Winでした

>>12
パスの順番を変更したら解決しました
ありがとうございます
0014デフォルトの名無しさん2006/11/21(火) 23:09:31
hibernateとかibatisみたいなORマッピングツールでやってるみたいに、
プログラムからJavaのソースを作りたいんですけど、
何か上手い方法とかあるでしょうか?
普通にFileWriterとかでせこせこ書いてるのかな?
0015デフォルトの名無しさん2006/11/21(火) 23:16:33
以下のプログラムにおけるMyMouseMotionAdapterクラス(54行目〜)内で
MyMouseAdapterクラス(34行目〜)内でいじっている変数aを使用したいのですが、
今のままでは動かないようです。どう改変したらいいのでしょうか?

http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28745
0016デフォルトの名無しさん2006/11/21(火) 23:42:30
すみません。現在JAVAでパチスロのオリジナルアプリを作っているのですが
1つの絵柄が高さ100ピクセル幅150ピクセルでそれが縦に21個連なったリールを回っているように見せるために
画像をスライドする方法を探しています。
画像を上から下へと一定のスピードでスライドさせるにはどうすればいいのでしょうか?
0017デフォルトの名無しさん2006/11/21(火) 23:50:13
えっと
又基本的なこと質問させてください
ここで学んでいるのはジャヴァアプリーケーションとのことですが
実際のアプリ(業務ソフトウェアなど)を作る場合Windowsの部品を(コマンドボタンなど)
つかうと思うんですが、皆さんはどういう(ソフト?)風に作っているのですか?
よくわからないのですがエクリプス?に、そういう部品をつくる環境があり
それで作るのでしょうか?
(vbなんかはvbのソフトで作りますよね)
なんか外れた質問とは思いますが
for文 do文などわかりますがそういう根本的なことがわかりません
御先輩方よろしくお願いいたします
0018ぴゅあ2006/11/22(水) 00:06:40
>>15
デバッグの手法とかは習ってなかったりするんだろうけど
身に付けた方がいいと思いますよ
闇雲にコードいじりまくっても、なかなか思い通りにならないし
まぐれでできてしまっただけになったりです

>今のままでは動かないようです。
その原因が何処にあるかを探し出すこと
>変数aを使用したいのですが
と言っているところから変数aがうまく扱えていないと考えているんだろうと思いますが
(扱い自身と思っているのか、変数a絡みの何かだろう程度なのかとかは読み取れませんが)
変数aが期待通りになっているかどうかからまず調べることですし

その前に「コードは書いた 動きません」ではなくて
何処がどうなって欲しいのに、どうなってしまってうまく行かないと思っているのか
何処がおかしいと思っているのか等、
質問するなら頭の中にあることをもっと明確に示して欲しいところですけど

それ以前にこのコードでコンパイル通りますか?
0019デフォルトの名無しさん2006/11/22(水) 00:12:02
>>17
Eclipse + VEでやってる。
ただ、JavaのGUIアプリ開発はAWTとSwingを理解してないと辛い。
VBみたいなポトペタを期待してたらがっかりするだろう。

それでも、Web一辺倒だった同僚が「Eclipse + VEでヴィジュアルプログラミング〜」
みたいなタイトルの本で勉強して、それなりにGUIアプリのコードさわれるようになったので、
やればなんとかなるだろう。
0020ぴゅあ2006/11/22(水) 00:13:03
>>17
あちしの場合はEclipse上で
JFrame等諸々を組み合わせたコードをそのまま書いてますが
(いちおそれで十分と思ってコード書いているので)

ちゃんと見てないのでよく判らないですけど
VE(Visual Editor)とかいうプラグインとかが
そのVBの…とか言っているのに相当したりするのかなぁ?
と思っていたりしますけど
使い勝手とかは判らないけど、"Eclipse VE"とかでググれば
色々情報がある筈ですよ

直接コードを書くつもりなら
取り敢えず"JFrame"とかでググッておけばいいと思うけど
0021デフォルトの名無しさん2006/11/22(水) 00:16:14
>>15 は宿題スレにも同じソースで丸投げされているな・・・同じ大学か^^;
0022デフォルトの名無しさん2006/11/22(水) 00:24:01
ユーザID単位でsynchronizedでロックするために、
シングルトンのmapにユーザID詰め込んで、
それをgetしてsynchronized(map.get(key))みたいにしたら
きちんとユーザID単位でロックされますでしょうか?
それともmap.get(key)ではインスタンスのコピーがgetされるだけで
ロックには使えないのでしょうか?
0023デフォルトの名無しさん2006/11/22(水) 00:26:46
>>19 >>20
ご丁寧にありがとうございます
VEですかふむふむ
前スレのお勧めで独習ジャヴァ買ったんですけど
初めてのジャヴァと書いてる内容が似てて隊靴で・・・
JFrame初耳ですググッテみます^^b
0024デフォルトの名無しさん2006/11/22(水) 00:28:42
>>18
ざっと見たが、絶対に通らないとおもうぞ。
12行目でTurnOverを渡しているが、受け取り元がMyMouseAdapterだからな・・・
0025デフォルトの名無しさん2006/11/22(水) 00:36:59
>>23
独習Javaの内容はマスターしたという前提で勧めると、この辺かな。
http://www.amazon.co.jp/gp/product/4798011401/
応用編は、とりあえず今は読まなくていい。
0026ぴゅあ2006/11/22(水) 00:38:33
>>23
>初めてのジャヴァと書いてる内容が似てて隊靴で・・・
更に先に進んでも"独習ジャヴァ"と共にたまには読み直してやってください(何度も)
前に読んでよく解らなかったことも何時の間にか解ってることに気付いたりとか
新たな理解もあったりする筈です

>>24
でしょ
0027デフォルトの名無しさん2006/11/22(水) 00:43:37
24
ども独習もうちっとよんでそっち健闘します
でわ^^ノシ
Zzzz
0028デフォルトの名無しさん2006/11/22(水) 05:07:12
>>27
VBみたいな感覚でGUIアプリケーションを作りたいなら,
Eclipse+VE よりも NetBeans がお勧め。
http://ja.netbeans.org/downloads/55/index.html
動作はちょっと重めだけど,VBみたいに,マウスでコンポーネントを貼り付けて,
それをダブルクリックしてイベントハンドラを書いたり,といったことができるよ。

Hello, World みたいなコンソールアプリケーションとは違って,
派手な GUI アプリが簡単に作れるから,勉強のモチベーションも湧きやすいと思う。

ただし,ちゃんとしたアプリケーションを作るには,
結局 JFrame など Swing の仕組みをきちんと理解してないといけないから,
Swing の仕組みはしっかり勉強した方がいいよ。

そのためにはクラスとかインターフェースとか継承とかはきちんと理解しとくべき。
独習Javaをしっかり読んで,基礎の理解をしっかりとやりつつ,
GUIプログラミングも楽しんでください。
0029デフォルトの名無しさん2006/11/22(水) 08:06:11
アダプターを継承してリスナークラスを使う仕様でプログラムを作っていますが
リスナークラスの使い方がどうもよく分かりません。
2つのアダプターを使いたいのですが、例えば
Aのアダプターを継承したクラスの関数の呼び出しをトリガーとして
Bのアダプターを継承したクラスの関数を呼び出すなど、どう書いたらいいのでしょうか?
以下のプログラムだとmainが2つあるのでコンパイラが通りません。
しかしBのmainを変えたとしてコンパイラが通っても、B内では
Aの関数呼び出し時に値を変更しトリガーとして設定する変数main.varAなんかを
使うことはできませんよねorz
このアダプターを継承している2つのクラス間で変数をやり取りするには
どう改変したらいいのでしょうか?

http://www.za.ztv.ne.jp/yosi-h/
0030デフォルトの名無しさん2006/11/22(水) 08:13:25
>>29
Adapter 使わずに Listener 使えば?

Adapter って匿名クラス作る時とかに、
空のメソッド作る手間省くためにあるだけだし。
0031デフォルトの名無しさん2006/11/22(水) 08:13:51
92の方にも書いてしまったのですがこちらが現行スレの様なのでお願いします。

GUIを使って電卓のようなものを作りたいと思っています。
Label test = new Label();
int key = 0;

0を押した時。
if(key!=0) key=(key*10)+1;
else key=1;
test.setText(Integer.toString(key));

1を押した時。
if(key!=0) key=(key*10)+1;
else key=1;
test.setText(Integer.toString(key));

クリアを押した時。
if(key!=0) if(key>=10) key=key-(key%10);
else key=0;
test.setText(Integer.toString(key));

と作ってみたのですが1を押したら11、2を押したら22、
クリアを押したら0が入力されるようになってしまいました。

1を入力したら1、key=1の時に2を入力したら12の様にするように作りたいです。

どこの部分が間違えているでしょうか?
よろしければご教授ください。
0032302006/11/22(水) 08:16:56
>>30
う、後出しになってしまって申し訳ありません。
学校の宿題の一部として考えているのですが、
アダプタの継承が必須なためそこを変えることができません。
0033デフォルトの名無しさん2006/11/22(水) 08:17:21
日 本 語 で お k
0034デフォルトの名無しさん2006/11/22(水) 08:22:05
>>32
宿題は宿題スレへ。

ってか、>>29 じゃ何を困ってるのか良く分からんぞ。
0035302006/11/22(水) 08:26:59
>>34
だと思ったのですが宿題というだけで
困っていて聞きたいのが一部分だったのでここかと思いました…
分からないのはアダプターを継承したクラス間での変数操作の実装になります。
説明が下手だったら申し訳ないorz
0036ぴゅあ2006/11/22(水) 08:39:29
>>29
>>15のようであるけど、端折りすぎてよく解らんものになってしまってるし
>>29で聞いているのも複数のことが混じってて考えがよくまとまってないような気もします
>トリガー
>mainが2つある
>変数をやり取り

>mainが2つある
と言っているのはよく解らないけど
>変数をやり取り
は、そのよく解らないコードで解決できていないんでしょうか?

>トリガー
と言っているところから推測すると
>変数main.varAなんかを
が変更されたとき
>Aのアダプターを継承したクラスの関数の呼び出しをトリガーとして
がイベントとして
>Bのアダプターを継承したクラスの関数を呼び出すなど
がリスナとして応答する作りが必要になるんではないだろうかと
思えたりしますけど

A,Bにそういう実装(イベント/リスナの仕組みそのもの)が必要
ということではないのかな?
0037302006/11/22(水) 08:53:48
>>36
お付き合いいただきありがとうございます。

今UPしたプログラムですと「メインクラス main;」が2つあるためコンパイルエラーになります。
こう書けば同じmain.varAを操作できるのではと思いましたがやっぱりだめでした。
片方をmainでなく違ったものにすればコンパイルは通りますが、
オリジナルアダプタークラスAで使えるmain.varAは
オリジナルアダプタークラスBではやはり使えず困っています。

イベントはマウス操作やキーボード操作で、
例えばオリジナルアダプタークラスAの関数にはmouseClicked()があって
マウスがクリックされるとそれをトリガーとしてキーボードが入力可能状態になる。
再びクリックされるとキーボードの入力ができなくなる。
というのを2つの派生クラスで行いたいのですが、
トリガーとなる変数の受け渡しができずに困っている状態です。
UPしたプログラムのように、単にif(main.varA ==1) のように使用できたら・・・と思います。
現実はオリジナルアダプタークラスAでインスタンスmainを宣言しているため
main.varAはオリジナルアダプタークラスBでは使用できません。
0038ぴゅあ2006/11/22(水) 09:26:41
>>37
>今UPしたプログラムですと「メインクラス main;」が2つあるためコンパイルエラーになります。
あぁそういうことか
"「メインクラス main;」が2つある"という理解は変じゃないかと思うけど
まず>>29に書いたようなものの通りにコードを書いてあるんであればコンパイルは通るんじゃんないでしょうか

またトリガという言葉を使われていますが
>マウスがクリックされるとそれをトリガーとしてキーボードが入力可能状態になる。
・オリジナルアダプタークラスAでは状態(main.varA)を変更しているだけ
・オリジナルアダプタークラスBでは状態(main.varA)を見て動作を変えるだけ
トリガという言葉は不適切なような気もします

言われている範囲だけならmain.varAについての同期(synchronized)はなくても大丈夫かな
0039デフォルトの名無しさん2006/11/22(水) 10:53:57
>>31
0を押した時。と1を押した時。が全く同じ文面だが1を押した時。に関しては別に問題ないと思う
クリアを押した時。はそれだと 123→クリアを押す→120 になるけど
やりたいことは 123→クリア→12 って事?
それなら123を10で割る(小数点切捨て)だけでいいが…

> 1を押したら11、2を押したら22、
レスの部分だけでは発生しないので予想としては
key=0の時、1を押す→(どこかでkey=1にしてしまう)→更に『1を押した時。』を実行(既にkey=1なので11になる)
とか
0040ぴゅあ2006/11/22(水) 11:23:54
>>31
>1を押したら11、2を押したら22
に関しては挙げられたところに問題があるんではなくて
それらのコードを実装しているところに問題があるんではないでしょうか

それらの処理が"1"とかを押したときのイベントで2回呼び出される実装になってしまっている
ということのようにも思えます
(つまり挙げるならその部分のコードが必要ということ)

些細なことですけど(なので組み方はどっちでもいい)
また学んでいる段階として、以下はまだ考える必要はないのかも知れないですけど

それらのコードに至るまでのところって、押されたキーに対してそのまま文字"1","2"が来てるだろうと思うのですけど
そのままStringとして処理したのでもいいんじゃないかと

>GUIを使って電卓のようなものを
ということなので、"+"とか"-"とかに対して計算を行う際にIntegerなりにして演算してやるとか
コードもスッキリするかも

また"if(key!=0)"は要らないんじゃないかと
示されたコードの+1とか+2とかやっているところは変数に入れて渡すという手がありますよね
(「0を押した時」「1を押した時」とか個別にコードを書く必要がなくなる)

>クリアを押した時。
の動きは>>39に指摘もあるけど
電卓の"→"キーみたいなもののつもりなんでしょうか
クリアと言っているところから"AC","CE"キーのつもりかな?とも
思えたりしますけど
("if(key!=0)"としているところが、また解り難くしているのか?)
0041312006/11/22(水) 11:51:06
携帯からレスで失礼します。
先に結果から言うとインスタンス変数とパラメータが両方ともint keyになっていた
為に発生していた模様です。
thisを使い使い分けるか変数名を変えるということで変数名を変えたら解決しまし
た。

>>39
0と1が同じなのは打ち間違いでした。
クリアについては非常に参考になりましたありがとうございます。

>>40
最近よくレスをいただいています。
ありがとうございます。

Stringでの処理とは受け取った引数をそのまま表示ということですか?

if(key!=0)は不必要だと気づきましたのでクリアに関しては削除しました。
その後のイベント処理はpublic void setKey(int param) というメソッドを作り、
押されたボタンを判断して変数で処理するようにいたしました。

現状では未だオブジェクト指向指向としてプログラムを書けないので今後もお世話に
なると思います。
そのときはまたよろしくお願いします。
0042ぴゅあ2006/11/22(水) 12:15:06
>>41
>Stringでの処理とは受け取った引数をそのまま表示ということですか?
int keyに代わるStringの変数で末尾に引数で受け取った文字を連結する
ということです

>public void setKey(int param)
を呼ぶ前に押されたキー(たぶんcharの文字とか)からint(0〜9の値)に変換して渡し
>test.setText(Integer.toString(key));
でまたStringに戻すようにことになっていません?

int keyに代わる(たぶんフィールドな)変数をStringBufferとかで用意しておき
"1"とか"2"とか押されたときは単に末尾に連結
(押されたキー(文字)の並びにさえなっていればいい筈ですから
またそのためにintにして演算する(更に文字列に変換する)必要はないかと)

クリアは文字列を空にする…この場合は"0"を表示したいのでしょうから文字列"0"を入れる
(あぁそうか この"0"のときに"1"とかが押されたときのためにif文は必要になるか。。。)

"+"とかで計算が発生するときだけintなりにして演算すればいいですよね?

>>31のコードでは"if(key!=0)"不要です
keyが0の場合のkey=1;はkey=(key*10)+1;でも同じことになるでしょ?

いちおまだこの辺はオブジェクト指向とか関係ないところになるでしょう
0043ぴゅあ2006/11/22(水) 12:18:13
イメージが掴めるまでは無理にStringとして扱わないで
今のままでもいいと思いますよ
0044デフォルトの名無しさん2006/11/22(水) 14:27:42
JAVAを独学で初めて二ヵ月になるんですが
メソッドの意味がいまだにわかりません
誰か低脳な俺にもわかるように説明してください
0045デフォルトの名無しさん2006/11/22(水) 14:38:13
"Javaで言うメソッドとは、C言語で言う関数のこと。"
0046デフォルトの名無しさん2006/11/22(水) 14:42:27
*.classファイルの読み方を学ぶにはどこを見ればいいでしょうか?
オブジェクトファイル形式とバイトコードの読み方が知りたいです。
004782006/11/22(水) 14:48:47
>>46
>オブジェクトファイル形式とバイトコードの読み方
ってのが何を指しているのかよくわからんが、逆アセなら javap で可能。
ニーモックの意味はsunのどっかにVM仕様ドキュメントがあったような。
そんな小難しい命令体系ではないので、少しアセンブラ知ってればなんとなく分かる。
0048ぴゅあ2006/11/22(水) 15:44:03
>>45
さすがっ!

そのレスの仕方は思い浮かばなくなってしまってました。。。
0049デフォルトの名無しさん2006/11/22(水) 16:26:11
>>46
ttp://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html
クラスファイル形式は4章、命令セットについては6章あたりかな?
そこだけに限定せず、VM仕様全体にざっと目を通しておくと役に立つこともある。
0050デフォルトの名無しさん2006/11/22(水) 16:36:44
>>47 >>49
丁寧にどうもありがとうです。
0051デフォルトの名無しさん2006/11/22(水) 16:42:15
>>44
ざっくり言えば、
コンピュータに何かをやらせたい時に呼ぶのがメソッド。
どうやらせたいか、その方法(method)を書いてあるのでメソッドという。
0052デフォルトの名無しさん2006/11/22(水) 17:34:21
BigDecimal使うと誤差がなくなると言われたんですけど
どういう意味ですか?
BCDがとうこう〜とも言われたような気がします。
0053デフォルトの名無しさん2006/11/22(水) 17:51:59
こーいう事
言語に関係なく、コンピュータが2進数で浮動小数点数を計算する以上避けられない問題
http://javafaq.jp/S029.html
http://www.kyoto-su.ac.jp/~yamada/programming/float.html
0054デフォルトの名無しさん2006/11/22(水) 20:02:26
すんません質問させてください

Appletの中で、値をメソッドにあてるときに

A.B();

という形で間にピリオドを入れますが
これって値が二つのときは使えますか?
0055デフォルトの名無しさん2006/11/22(水) 20:12:23
意味不明
0056デフォルトの名無しさん2006/11/22(水) 20:44:53
>>54
ピリオド⇒.
セミコロン⇒;
0057デフォルトの名無しさん2006/11/22(水) 23:01:26
LinkedListみたいのを自分で作りたいんですが,
index番目にobjを追加するメソッドを作るにはどう
すれば良いんでしょうか?
自力で調べたいんですが調べてもでてこなくて・・
できれば調べ方などを教えていただけると助かります。
よろしくお願いします。
0058デフォルトの名無しさん2006/11/22(水) 23:09:35
LinkedListのソース見ろよ、タコ
0059デフォルトの名無しさん2006/11/22(水) 23:53:24
>>57
http://www.mpi-sb.mpg.de/~shin/RA/SCCP2001/ex2/linkedlist.html
0060デフォルトの名無しさん2006/11/22(水) 23:57:17
>>57-59
ttp://www.sm.rim.or.jp/~shishido/list1.html
0061デフォルトの名無しさん2006/11/23(木) 00:09:31
連結リスト
  線形リスト
  単方向リスト
0062デフォルトの名無しさん2006/11/23(木) 01:43:47
線形リストを自分で実装する、てのはデータ構造入門の代表的な
例題だからいくらでもあると思うが。

実装によっては再帰の学習にもなる。
0063デフォルトの名無しさん2006/11/23(木) 02:34:47
配列の文字列を変数として使うことは可能でしょうか?

Data dt = new Data(a,b,c);
とあったとして、dtをdt_Aray[0]内の文字列に変更したいです。
0064デフォルトの名無しさん2006/11/23(木) 03:25:30
String[] dt_Aray
Data dt = new Data(a, b, c)

という前提で
dt = dt_aray[0]としたいと言うことなら、無理。
インスタンスを代入できるのは、インスタンスの属するクラスか、
そのクラスの先祖クラスの変数に対してのみ。(あとインターフェイス)

DataでなくObject dtなら可能。
0065ぴゅあ2006/11/23(木) 03:38:17
>>63
いや… それらの文章がどう説明間違いしているのか
色々受け取れて推測し難いんですよね。。。
前者と後者で全然別のことを言っているようにも受け取れるし

もうちょっと考えて
詳しく書き直してみて欲しいです
0066デフォルトの名無しさん2006/11/23(木) 04:10:51
>>64
dt = dt_aray[0]としたいと思ってました。
Data dt_aray[0] = なとどしてみましたがやっぱり無理でした。

>>65
言葉足らずですいませんm(_ _)m
現在、テキストファイルの中に
name1,num1,num2,num3
name2,num1,num2,num3
・
  ・
name3,num1,num2,num3
を形としたデータが入ってまして、dt_Aray[n][4] の中にsplitで分けて入れています。
Data dt = new Data(a,b,c) をn回行い、かつname を Data dt = new Data(a,b,c); のdt 部分
と置き換えて使用できればないいなと、考えています。


64さんの仰った通り無理ということでしたら、
回避策として何かありましたら教えてもらえないでしょうか。
0067デフォルトの名無しさん2006/11/23(木) 04:48:43
Javaに詳しい人いる?
これ、どういうエラーよ?
すげえ急いでるからダッシュで教えてくれ!
マジで大至急!(;´Д`)困ってる

エラー内容:
java.lang.UnsatisfiedLinkError : AMD64のプラットホームで、IA32bitのdllを読み込む事はできません。
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1676)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:123)
at org.eclipse.swt.internal.win32.OS.<clinit>(OS.java:18)
at org.eclipse.swt.widgets.Widget.<clinit>(Widget.java:95)

環境:
E: > .\java -version
java version "1.6.0-rc"
Java(TM) SE Runtime Environment (build 1.6.0-rc-b104)
Java HotSpot(TM) 64-Bit Server VM (build 1.6.0-rc-b104, mixed mode)

E: > VER
Microsoft Windows [Version 5.2.3790]
0068デフォルトの名無しさん2006/11/23(木) 04:56:51
これだけだとjava.lang.UnsatisfiedLinkErrorとしか分からないだろ(;´Д`)
どういうプログラムでどういう状況でエラーが出たか
ずっと動いてるプログラムが急にエラー吐いたのか開発段階でのバグとりなのか
とりあえず臭い所にtrycatch噛ませてログとれ
0069デフォルトの名無しさん2006/11/23(木) 04:57:42
こんなエラー出したことがないので推測だが、推測として2点挙げられる。

�@64ビット環境なのに、32ビット専用のDLLを読み込もうとしているので、
 インポートやクラスパス設定ミス。

�AJVMがAMD製の64ビットCPUをサポートしてないので、
 AMD製のCPUに対して命令できない。つまり動かない。
0070デフォルトの名無しさん2006/11/23(木) 05:00:26
まんこくせー
0071デフォルトの名無しさん2006/11/23(木) 05:08:29
dsに弾き解除してと伝えてくれ(;´Д`)
0072デフォルトの名無しさん2006/11/23(木) 05:11:43
ちんぽしごけええええええええええええええーーーーーーーーーーーーーーーーーーーーーー
0073デフォルトの名無しさん2006/11/23(木) 05:16:51
ネタ元はこちら
ttp://strangeworld-honten.com/cgi-bin/bbs.cgi
0074デフォルトの名無しさん2006/11/23(木) 05:21:22
おまいらあやしいわーるどに釣られてアフォかとw
0075デフォルトの名無しさん2006/11/23(木) 06:16:08
>>67
とりあえず、起動する時に
-d32 オプションで上げてみるとかだな
0076デフォルトの名無しさん2006/11/23(木) 06:25:02
今日の注目すべき馬鹿書き込み  投稿者:   投稿日:2006/11/23(木)06時24分04秒  ■  ★ 

>   投稿者:   投稿日:2006/11/23(木)06時21分13秒  ■  ★  ◆

> > あのときはゲスッとアブナイからだな
> 両者とも跡形もなく消えたな 笑

ゲスッはiRCになっただろ

参考:2006/11/23(木)06時02分03秒

0077デフォルトの名無しさん2006/11/23(木) 06:30:41
更なる高みを目指した、超絶馬鹿書き込み

 投稿者:   投稿日:2006/11/23(木)06時29分39秒  ■  ★ 

なあ、ゲスッってiRCになったのか?
0078デフォルトの名無しさん2006/11/23(木) 08:27:10
すんません。運用SEでjavaプログラムほとんどやらないので質問。

threadのwhileループ内で、Socketオブジェクトをnewしては(connectした後)
closeするのを繰り返してるんだけど、長時間経つと非ヒープ領域がリークして
いきます。close後にnullはしているんだけどリークしていきます。


0079デフォルトの名無しさん2006/11/23(木) 08:28:33
こんな感じ(thread内のrun定義)

public void run(){
while( true ){

SocketAddress socketAddress = null;
Socket socket = null;
try {

socket = new Socket();
socket.setKeepAlive(true);

byte[] ip = InetAddress.getByName(this.serverAddress).getAddress();
InetAddress addr = InetAddress.getByAddress(this.serverAddress, ip);

socketAddress = new InetSocketAddress(addr, this.port);
SocketAddress bindAddress = new InetSocketAddress(this.bindip, socket.getPort());
socket.bind(bindAddress);

socket.connect(socketAddress, this.timeout);

socket.close();
socket = null;

} catch (Exception e) {
// 注 : UnknownHostExceptionとか複数の例外もすべて同様
socket.close();
socket = null;
}
}
}
0080デフォルトの名無しさん2006/11/23(木) 08:29:13
JVMの(バグ?の)せいだ!とかファビョられてるんだけど、どうなんでせう。

何度も同じオブジェクトのnewとnullを繰り返してるコーディング自体が
java的にはあんまりよくねーとか、コーディングの問題もあるんでないの?
とかも思います。
(nullせずに、addressとかのプロパティ上書きして再connectするか、
thread自体抜けて起こしなおすとか・・newの前のSocketオブジェクト宣言
自体がwhile内で何度も呼ばれてるのも気になるが。)
こういうコーディングってそれ自体問題があるとはただちに言えないんでしょうか。

ちなみにおんなじthreadが100個ぐらい並列で起きていています。
0081デフォルトの名無しさん2006/11/23(木) 12:36:08
javaの書き込みを何度もしてる本人はおもしろいんだろうけど
周りからみるとちっともおもしろくない
それに気付けないところが痛いんだよな
なんか実生活でもういてそうな感じ
0082デフォルトの名無しさん2006/11/23(木) 12:36:52
渾身のギャグが出来たと同僚1人1人に見せてまわるタイプ
0083デフォルトの名無しさん2006/11/23(木) 12:40:12
あの一連のJAVAの書き込みってひょっとして晒してるつもりなの?(;´Д`)うわあ
0084デフォルトの名無しさん2006/11/23(木) 12:42:26
Java貼り付けの子がプチ切れた
0085デフォルトの名無しさん2006/11/23(木) 12:43:59
javaのひとは午前4時くらいからやってるだろ(;´Д`)なんどもなんども
0086デフォルトの名無しさん2006/11/23(木) 12:44:40
うぜえから死ねよ
0087デフォルトの名無しさん2006/11/23(木) 12:49:30
public void run() throws Exception {

synchronized( this ){

SocketAddress socketAddress = null;
Socket socket = null;
try {

socket = new Socket();
socket.setKeepAlive(true);

byte[] ip = InetAddress.getByName(this.serverAddress).getAddress();
InetAddress addr = InetAddress.getByAddress(this.serverAddress, ip);

socketAddress = new InetSocketAddress(addr, this.port);
SocketAddress bindAddress = new InetSocketAddress(this.bindip, socket.getPort());
socket.bind(bindAddress);

socket.connect(socketAddress, this.timeout);

socket.close();
socket = null;

} catch (Exception e) {
// 注 : UnknownHostExceptionとか複数の例外もすべて同様
socket.close();
socket = null;
}
}
}
0088ぴゅあ2006/11/23(木) 12:52:57
>>66
なるほど

>name を Data dt = new Data(a,b,c); のdt 部分
>と置き換えて使用できればないいなと
dtとかの"変数名"はプログラムの記述上、人が見て判り易いように付けるもの
変数dtの内に入れられる"値"のように、プログラム実行中に自由に変える(宣言する)ことはできないです

Map(HashMapとか)を使い、nameをkey,new Data(a,b,c)をvalueとして
格納してやってはどうでしょうか

nameをdt部分と置き換えたいということでしたから
nameが一意であることにも問題ないんでしょう

(仮にdt部分と置き換えることが出来たとして
後に続くコードでその変数名をどう扱うつもりだったのかも判らないけど…)
同様に
テキストファイルにある並びに対する順序性についても
重要ではないだろうと思うので問題ないんでしょう

ということでどうですか?
0089デフォルトの名無しさん2006/11/23(木) 12:56:19
暫定荒らしてるのと同じ子だろうなぁ(;´Д`)
暫定でも子供扱いされておもちゃにされて(;´Д`)本店でも子供扱いされて・・・なんか憐れだ
0090デフォルトの名無しさん2006/11/23(木) 13:05:47
2006年11月23日
コラム:iRCはゲスッに吸収されたのか

最近本店で、iRCがゲスッになったというまことしやかなデマが流れた。

ここでゲスッについて振り返っておきたい。
ゲスッが誕生したのは1996年、あやしいが県人会に引っ越してくる前である。
当初単なるアングラ掲示板であったゲスッ掲示板は、
あやしいから追い出された一部の過激派メンバーによって掲示板荒らしグループへと変貌した。
そして翌97年、組織的に掲示板を荒らす初のグループとして誕生したのである。

その後ゲスッは98年のありがとう黒マグロ事件を経て徐々に規模を縮小、
99年のゲスッメモリアル閉鎖にともない歴史上から姿を消した。
しかし2004年、突如として彼らはiRCに出現したのだ。

ゲスッがiRCを吸収したのではない。iRCがゲスッを吸収したのである。
これによりiRC幹部だったVVSおじたんがゲスッ幹部に移籍するなどの事件が発生したが、
ゲスッ統括の権限はすべてiRCに委譲されたのだ。
以後ゲスッによる様々な掲示板へのiRC宣伝などが行われ、
iRCといえば荒らし、といった現在の体制が構築されたのである。
0091デフォルトの名無しさん2006/11/23(木) 13:16:44
何が半年ROMれだ。そんなあやしいわーるどのような俺ルール押し付けんな。
俺を新人扱いすんな。セガBBS古参なめんな。2CHの歴史なんざまだ6年ほどだろ確か。
確かに見るようになったのはネバダ事件以降だがアングラ常連のわびさびぐらい心得てる。
アングラ常連の分際で吼えるな。
0092デフォルトの名無しさん2006/11/23(木) 13:17:45
なんか凄いことになってるぞ
http://book3.2ch.net/test/read.cgi/poem/1164122962/
0093デフォルトの名無しさん2006/11/23(木) 13:18:40
なんでもかんでも茶化せばオッケー、盛り上がればVIPクオリティ、ってか。
おちょくり派の心の闇は深いね。
俺トリップを使わない。2ちゃんねるのわびさびが殺がれるしな。
余裕を持てボケ
0094高等遊民2006/11/23(木) 13:18:47
Amazonで買ってds様にお布施しろよ
0095デフォルトの名無しさん2006/11/23(木) 13:19:58
おちょくり派は帰れ
0096ザンコロ2006/11/23(木) 13:22:52
まだ暫定やられてんのか(;´Д`)
0097デフォルトの名無しさん2006/11/23(木) 13:25:22
わざわざ寿司屋に行って、なんで上やら並を頼むんだ?
特上頼まないと勿体無いだろ
0098高等遊民2006/11/23(木) 13:26:05
私は気に入ったものをずーっと使い続けるタイプです
0099デフォルトの名無しさん2006/11/23(木) 13:28:10
今日もちんぽをシコシコしながら
おまんこ教への祈りをヽ(´ー`)ノ
0100デフォルトの名無しさん2006/11/23(木) 13:33:03
あきこちゃんの人がいる(;´Д`)わかる!!!1」1
0101デフォルトの名無しさん2006/11/23(木) 13:38:06
なんだかんだ言って暫定退避のポテンシャルに嫉妬してんだろ
■ このスレッドは過去ログ倉庫に格納されています