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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/06/27(水) 07:23:27
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc10.2ch.net/hp/

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下の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 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

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

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

次スレは>>980あたりで。
0002デフォルトの名無しさん2007/06/27(水) 10:29:50
C言語で

int hoge = 100;
char buf[256];
memcpy(&buf[10], hoge, sizeof(hoge));

という処理をJavaで行うにはどのようなコードになりますでしょうか?
0003デフォルトの名無しさん2007/06/27(水) 10:57:21
>>2
char hoge = 100;
char[] buf = new char[256];
Arrays.fill(buf, hoge);

0004デフォルトの名無しさん2007/06/27(水) 11:38:26
>>3
嘘はいけないぞw

>>2
そのような処理は行えない。
char[] hoge = new char[256];
char[] buf = new char[256];
Arrays.fill(buf, hoge);
または、
System.arraycopyを使う
0005デフォルトの名無しさん2007/06/27(水) 12:49:54
バイナリーデータをintに入れたり出したりって
Javaだと難しいのでしょうか?
0006デフォルトの名無しさん2007/06/27(水) 12:57:13
int は4バイトなので
それ以上のデータを入れる場合は高度な圧縮技術が必要であろう
0007デフォルトの名無しさん2007/06/27(水) 12:57:37
>>5
4バイトまでだったらシフトやマスクしてふつーにできますよ。
0008デフォルトの名無しさん2007/06/27(水) 13:00:57
int hoge = 100;
char buf[256];
memcpy(&buf[10], hoge, sizeof(hoge));

コンパイルエラーです
本当にありがとうございました
0009デフォルトの名無しさん2007/06/27(水) 13:01:17
byte配列のことか?
0010デフォルトの名無しさん2007/06/27(水) 13:08:36
>>5
import java.io.*;

public class TestBinary{
public static void main(String[] args){
try{
int i = 100;
BufferedWriter bw = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("a.bin", true)
)
);
bw.write(i);
bw.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
0011デフォルトの名無しさん2007/06/27(水) 13:11:17
InputStreamReader isr = new InputStreamReader(
new FileInputStream("a.bin")
);
int j;
j = isr.read();
System.out.println(Integer.toString(j));
isr.close();
0012デフォルトの名無しさん2007/06/27(水) 13:18:29
>>7
はい。計算すればできるってのはわかってました。
後だしですみません。
ただ、もうちょっと普通にできるのではないかと思ったので。

>>10
ファイルを使うっすか?
これのメモリー版ってないっすか?
0013デフォルトの名無しさん2007/06/27(水) 13:21:04
>>8
ごめんなさい。
memcpy(&buf[10], &hoge, sizeof(hoge));

でお願いします。
0014デフォルトの名無しさん2007/06/27(水) 13:23:33
>>12
ここまで出たんだからJavaDocでも調べろよ
InputStream系のクラスを組みあせればできるだろう
0015デフォルトの名無しさん2007/06/27(水) 13:24:22
getByte()
0016デフォルトの名無しさん2007/06/27(水) 13:28:56
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/nio/channels/FileChannel.html
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/nio/MappedByteBuffer.html
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/nio/ByteBuffer.html
0017デフォルトの名無しさん2007/06/27(水) 13:31:04
>>16
これだ!(・∀・)イイ!!
0018デフォルトの名無しさん2007/06/27(水) 13:47:28
import java.io.FileInputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

public class GetBytesTest{
public static void main(String[] args) throws Exception{
FileInputStream inStream = new FileInputStream(”filename”);
FileChannel channel = inStream.getChannel();
ByteBuffer buffer = ByteBuffer.allocate((int)channel.size());
channel.read(buffer);
buffer.clear();
byte[] bytes = new byte[buffer.capacity()];
buffer.get(bytes);
channel.close();
}
}
0019デフォルトの名無しさん2007/06/27(水) 13:48:17
http://www.itarchitect.jp/beginners/-/46269-1.html
http://www.itarchitect.jp/beginners/-/46269-2.html
http://www.itarchitect.jp/beginners/-/46269-3.html
http://www.itarchitect.jp/beginners/-/46269-4.html
http://www.itarchitect.jp/beginners/-/46269-5.html
http://www.itarchitect.jp/beginners/-/46269-6.html
0020デフォルトの名無しさん2007/06/27(水) 14:58:12
Servlet から AWT を使うことってできる?
使うときに注意しなければいけないことってあるかな?

Toolkit.getDefaultToolkit();
を呼び出すと、AWT のスレッドが生成されるそうですけど、
Servlet から何度も呼び出しても、AWT スレッドは1つしか生成されないのかな。
0021デフォルトの名無しさん2007/06/27(水) 15:18:35
>>20
鯖でGUI開くの?w
蔵のGUIとしてAWTにしたいってならば全く別の話
0022デフォルトの名無しさん2007/06/27(水) 15:31:26
一応開くことは開くだろ
クライアントからアクセスあるたびにポップアップしまくるから
セッション終了したら閉じるように作っておくことが
とりあえず気をつけることかな
0023デフォルトの名無しさん2007/06/27(水) 16:21:01
ポップアップするのはクライアント側で?それともサーバ側で?
0024デフォルトの名無しさん2007/06/27(水) 16:30:38
サーバ側で
0025デフォルトの名無しさん2007/06/27(水) 16:46:37
てことは
クライアント側からサーバサイドのGUIをつかえると言うわけではないの?
0026デフォルトの名無しさん2007/06/27(水) 16:59:10
>>25
ん?
使えるが結果を見られないってことでは?
0027デフォルトの名無しさん2007/06/27(水) 17:12:23
headlessモードについての話じゃない??
0028デフォルトの名無しさん2007/06/27(水) 17:54:11
結果を見られないってどういうこと?
クライアント側でGUIは表示されるけど、イベントは受付けないとか?

apptet以外にクライアント側でGUI表示できるの知らなかったんで
詳しくお願いします。
0029デフォルトの名無しさん2007/06/27(水) 17:56:54
>>28
> apptet以外にクライアント側でGUI表示できる

そんなこと誰も書いてないと思うが。
0030デフォルトの名無しさん2007/06/27(水) 18:04:41
そういうことじゃないの?
0031デフォルトの名無しさん2007/06/27(水) 18:18:26
というか、>>20 早く帰ってきて収拾してくれwww
0032デフォルトの名無しさん2007/06/27(水) 18:32:38
ていうか誰が誰だよw
idない板はこれだからややこしい
0033デフォルトの名無しさん2007/06/27(水) 19:26:06
servletがクライアントに渡すのは基本的にはHTMLや画像なんだから、ク
ライアントにAWTのウィンドウ等が表示されるわけないでしょ。どこで
JVMが動いているか考えればあたりまえ。

servletでAWTのウィンドウを出したりすると、とうぜんservletが動いて
いるサーバの画面にウィンドウが出ることになる。そんなことして意味
があることはまずないが、できないわけじゃない。(>>22)

画像処理などのためにservlet内でAWTを使うことがある。そういうとき
のために headless モードというのがある。(>>27)
0034デフォルトの名無しさん2007/06/27(水) 19:32:52
今までphp+mysqlでやってたものですが、
jdbc+postgreSQLに手を出してみました。

php+mysqlのときみたいにaddslashをして
エスケープをしたいのですが、どうやったらいいかわかりません(涙)
java.sqlの中にはそういうものはないみたいだし・・・

0035デフォルトの名無しさん2007/06/27(水) 19:48:52
涙を出す前にJDBCについて調べる気は無かったのだろうか?
0036デフォルトの名無しさん2007/06/27(水) 19:53:47
なんでheadlessっていうの?
brainlessの印象を受けるからfacelessの方が良かった
0037デフォルトの名無しさん2007/06/27(水) 21:10:26
>>28
GWT
0038デフォルトの名無しさん2007/06/27(水) 22:55:55
>>34
PreparedStatementが勝手にやってくれる
0039デフォルトの名無しさん2007/06/27(水) 23:32:07
LGPLが適用されているライブラリを利用する場合、
作成したプログラムの再配布の際にはソースコードの公開が必要でしょうか?

「動的なリンク、であれば利用元のプログラムはLGPLの呪縛から逃れられる」
というような解釈のようですが、動的なリンクとはJavaではどこまで該当するのでしょうか?
0040デフォルトの名無しさん2007/06/27(水) 23:38:12
ソースコードを使うかバイナリを使うかじゃない?
0041デフォルトの名無しさん2007/06/28(木) 00:11:12
入力した値が文字(列)か数か判定したのですが、どのような条件で判定できますか?
0042デフォルトの名無しさん2007/06/28(木) 01:23:29
文字列.matches("\\d+")か文字列.matches("\\d*")
0043デフォルトの名無しさん2007/06/28(木) 03:26:37
未だなにも調べてない状態なのですが
java3Dの中のvecmathパッケージについて
このパッケージでできるベクトル計算の利点はどんなところにあるんでしょうか
また、java3Dの直近の日本語Documentを探しているのですが見つからず、
できたらURLを教えていただけないでしょうか
0044デフォルトの名無しさん2007/06/28(木) 06:40:37
>>42
「.」とか「-」とかは?
0045デフォルトの名無しさん2007/06/28(木) 08:34:54
Javaでゲーム開発を考えているんですが、思考ルーチン関連での入門書で最適な本ってありませんか?
ゲーム理論系を探すと経済学関連のが多くて選択しにくいもので、実際のプログラム例などが載っている本がいいです。
言語はJavaが得意ですが、Cなども最低限の知識はあります。
0046デフォルトの名無しさん2007/06/28(木) 08:39:51
>>45
ゲームという大きな括りではなく、どういう種類のゲームを作るかによって
学ぶものは変わってくると思うが。
0047デフォルトの名無しさん2007/06/28(木) 08:44:00
>>46
確かにそうですね。
やりたい種類は、ターン制のストラテジーゲームです。
手札などに制限が多く、打てる手数は高々10〜20程度。
ただし、先読みの要素が多いという感じです。
ぐぐってみたりするとげミニマックス法とか色々でてくるのですが、本として1冊は欲しいもので
0048デフォルトの名無しさん2007/06/28(木) 08:57:05
>>40
ありがとうございます
単純に実行部分のバイトコードを添付するだけでいいわけですか
↓の部分が適用されるってことですか?

>もし著作物が『ライブラリ』とリ ンクされた実行形式ならば、著作物を完全かつ機械読み取り可能な
>「『ラ イブラリ』を利用する著作物」のオブジェクトコードあるいはソースコー ド(どちらかでも可) と一緒にし、
>ユーザが『ライブラリ』を改変した後 に再リンクして、改変された『ライブラリ』を含む改変された実行形式を
>作成できるようにする
0049デフォルトの名無しさん2007/06/28(木) 11:16:54
postgresqlに接続しようとしてるんだけど

org.postgresql.util.PSQLException: The connection attempt failed.
Caused by: java.net.UnknownHostException: localhost

こんなエラーがでて接続できないんだけど、
これってJDBCドライバ自体は認識できてるんかな?
ずっと「JDBCドライバがないYO」って言われてたんで、そこが気になる。
誰か教えてくれー
0050デフォルトの名無しさん2007/06/28(木) 11:53:45
>>49
いえす
localhost が解らんって言われているけど、postgresqlならば
jdbc:postgresql://localhost:5432/test
のようにURL指定してないとか?
それでもダメなら、localhost を 127.0.0.1 で試す。
後、WindowsのFireWallの可能性もあるかな?
0051492007/06/28(木) 13:37:37
>>50
レスありがとう。
なんとか動きました。

postgresqlにTCP接続する設定をやっていなかった。
// これがダメだったのかな?

postgresql.confを編集して
URL指定に「jdbc:postgresql://127.0.0.1:5432/hoge」で接続できました。
loclhostだと失敗したんで根本的な解決はしてない気もするけど、とりあえず動いたからおk!!!
0052342007/06/28(木) 13:52:52
>>38

ありがとうございます。
さっそく実行してみたのですが、次は

org.postgresql.util.PSQLException: The column index is out of range: 2, number of columns: 1.

と表示されてしまいます。
?の数とsetStringやsetIntの数が違うのかなと思ったのですが、
一緒でわかりません・・・


0053デフォルトの名無しさん2007/06/28(木) 14:02:01
>>45
「15歳からはじめる〜」って本を良く耳にする。でも読んだ事はない。

Javaでゲーム作成 2本目
http://pc11.2ch.net/test/read.cgi/gamedev/1130373830/
0054デフォルトの名無しさん2007/06/28(木) 14:25:08
>>52
配列の要素数が0で始まるのか1で始まるのかをもういちど確認してくれ
0055デフォルトの名無しさん2007/06/28(木) 14:34:25
現在の実行コンテキストが Applet として実行されているかどうかを判定することってできる?
0056デフォルトの名無しさん2007/06/28(木) 14:44:03
getCodeBase()
0057デフォルトの名無しさん2007/06/28(木) 15:10:44
Eclipse使ってたら・・・

PreparedStatement のメソッド setDate(int, Date) は引数 (int, Date) に適用できません。

どういうことだよorz
0058デフォルトの名無しさん2007/06/28(木) 15:15:27
要するに

setDate(int, java.sql.Date) は引数 (int, java.lang.Date) に適用できません。

ってことだ。エラーメッセージが悪い。
0059デフォルトの名無しさん2007/06/28(木) 15:44:17
サーブレットから別のデーモン スレッドを実行した場合、
そのスレッドを長時間実行してもタイムアウトになることはありませんよね?
0060452007/06/28(木) 15:47:26
>>53
それは既に読了です。
いい本ですが、あくまでSwing関連のJavaの入門書でした
0061デフォルトの名無しさん2007/06/28(木) 18:35:06
>>60
まぁ、>>47みてやりたいことは大体判った。
結局のところ探索、評価の繰り返しをいかに精確かつ高速にやるか、というところが肝なわけで…
まともにやろうとすると結構専門的なところまで踏み込むことになるけれども一応参考資料(英語ですが)
ttp://www.cs.ualberta.ca/~mburo/publications.html
もともとはリバーシのアルゴリズム解説だけれど、探索や評価のアルゴリズムは他にも応用がききそうなので。
日本語の資料だとつっこんだところまで解説したものってみたことないので情報工学とか数学関係の専門書を
あたった方が早いかもです。
0062デフォルトの名無しさん2007/06/28(木) 19:28:14
>>60
ボーンデジタル
0063452007/06/28(木) 20:45:50
>>61
やはり専門的な分野になると英語になるのかぁ・・・
最初の1〜2冊は日本語で勉強したかったんです。

Amazonで漁っていくつか候補があったのでとりあえず片っ端から買ってみますw
0064デフォルトの名無しさん2007/06/28(木) 20:51:31
>>62
これですか・・・
ttp://www.amazon.co.jp/Game-Programming-Gems-Mark-DeLoura/dp/4939007286/ref=pd_sim_b_1_img/249-4142550-3954713?ie=UTF8&qid=1183031211&sr=8-11
流石にいい値段しますが興味はあります・・・むぅ
0065デフォルトの名無しさん2007/06/28(木) 22:39:12
HttpURLConnectionで取得したデータ(画像)のnputStreamを
複数回読みたいんですが、どうしたらいいですか?
0066デフォルトの名無しさん2007/06/28(木) 22:55:51
>>65
できない

InputStreamのStreamの意味を調べたことあるか?
尚、普通の人は画像データを変数に格納するだろう
0067デフォルトの名無しさん2007/06/28(木) 22:58:41
>>65
一回closeしてしまったら、もう読み込めないから、もう一回接続して新しいInputStreamで読み込む。
もしくは、最初のInputStreamで読んだデータは手元にあるはずだから、それを利用する。
0068デフォルトの名無しさん2007/06/28(木) 23:02:55
>>66
> InputStreamのStreamの意味を調べたことあるか? 
あります、すみません
resetメソッドとかよくわからずに使ってうまくいかなかったもので…

> 尚、普通の人は画像データを変数に格納するだろう 
InputStreamが引数なメソッドを2つ呼び出す必要があるんですが、
やっぱそのたびに生成しなきゃいけないんでしょうか。
↑これがよくわからんかったのでリサイクルしたいと思いました。

>>67
接続は1回にしたいです。
0069デフォルトの名無しさん2007/06/28(木) 23:05:13
ああ、closeしてなくても一回読み出したデータをもう一回読み出すのはInputStreamでは無理だから、
頭からもう一度とはいかない。全データのプッシュバックをサポートするstreamを作って、
HttpURLConnectionのInputStreamに接げばいけるかもだが、
それは最初に読んだデータを再利用するようにした方がいいような気が。
0070662007/06/28(木) 23:11:05
>>68
言い方がきつかった、すまん
ただ、Streamってのは流れなんだ、流れてくるものを2回読むことはできない
だからデータを溜めておかなければならない。

ちなみに、使うメソッドがInputStreamで引数を持つという事自体がおかしいということはないか?
Imageで受けたり、byte[]で受けたり出来ないような特殊な事情があるのか、検討して欲しい。

それでも、どうしてもInputStreamにしなければならないならば、byte[]等でキャッシュしておき、自前で再度流すようにコーディングする必要があるな
0071デフォルトの名無しさん2007/06/28(木) 23:11:30
>>68
InputStreamのサブクラスにはByteArrayInputStreamというものもある。
何もネットから読み込むだけのストリームではない。
最初にそのメソッドを呼ぶ前にHttpURLConnectionでバイト配列にデータを読んで、
そのメソッドにはバイト配列をバッファにしたByteArrayInputStreamを渡してやればいい。
0072デフォルトの名無しさん2007/06/28(木) 23:31:38
>>70
最終的にはswtのImageを作るんですが、
その前に元のデータのハッシュを取る必要があるんです。
最初はImageを作って それからgetImageData().dataのハッシュを
取ればいいかと思ってたんですが、dataってビットマップ(広義)と知って…

>>71
そうですね、
一旦bete[]にバッファしてそれぞれByteArrayInputStream作ることにします。

ご協力ありがとうございました。
0073572007/06/29(金) 00:12:38
>>58

ありがとう やっと意味がわかったよ

0074デフォルトの名無しさん2007/06/29(金) 00:22:36
>>72
そういうのってNIOでやるんじゃない?
0075デフォルトの名無しさん2007/06/29(金) 00:29:41
>>72
DigestInputStream
0076デフォルトの名無しさん2007/06/29(金) 00:51:14
Javaを使って遠隔機械操作をしたいんですが関連するパッケージを
教えてください。

RMIとかなんでしょうか
0077デフォルトの名無しさん2007/06/29(金) 00:54:31
>>76
遠隔機器操作だけじゃわからん。どういう事をやりたいか具体的に書く。
0078デフォルトの名無しさん2007/06/29(金) 01:05:56
サーボモーターの制御及び遠隔監視ですが、被制御側にJAVAとCのプログラムを配する予定です。
知りたいのは、ネットワークのストリームの確立方法と制御命令の伝達方法、及び監視情報のリアルタイム
での送受信方法です。

0079デフォルトの名無しさん2007/06/29(金) 01:10:10
78の補足
回線は優先無線の両方を考えてますが、とりあえず有線の方法、通常のインターネット経由の方法で
教えていただけたらと思います。
0080デフォルトの名無しさん2007/06/29(金) 01:17:50
Cも使うのならベタにSocket使えばいいんじゃね。
0081デフォルトの名無しさん2007/06/29(金) 01:20:20
Set<Foo> set = new HashSet<Foo>();
for(Foo f: set) {
    // ここで set を変更
}

で ConcurrentModificationException が出るときの解決案って

for(Foo f: set.toArray(new Foo[set.size()])) {
    // ここで set を変更
}

以外にどのようなものがありますか?
0082デフォルトの名無しさん2007/06/29(金) 01:43:20
なんか1.5ぐらいからJavaの文法、複雑になっちゃったな
>>81とか俺には理解できない・・・
0083812007/06/29(金) 02:14:21
>>82
大丈夫。Java7 あたりから俺もわからなくなる。
0084デフォルトの名無しさん2007/06/29(金) 02:26:47
やさしいjavaで勉強初めて一週間程たちます。
色々調べたのですがわからなかったので、初歩的な質問ですが教えてください。

class Car
{
int n;
}
とした時に

Car car[ ] = new Car[3];

のような配列ぽい変数にできるのでしょうか?
今試しているのですがエラーになります。
コンストラクタを使ってオブジェクトを作る時は配列は使用できないのでしょうか?
先のページには出来ている様なコードが書いてあるのですが、抽象クラスでないとダメなんでしょうか?
0085デフォルトの名無しさん2007/06/29(金) 02:27:12
>>80
失礼Cはマイコン用のCで低レベルの制御用にのみ使うものです、通信そのもは複雑なネットワークに
も対応できるようにJAVAを使おうと思っています。
0086デフォルトの名無しさん2007/06/29(金) 02:29:50
>>84
配列要素それぞれをnew Car()で生成する必要があります
Vector使ったほうが簡単では?
0087デフォルトの名無しさん2007/06/29(金) 02:31:17
>>84
エラーの種類がわからないから断定は出来ないけど、
おそらく発生しているエラーは NullPointerException だと思う。

Car[] car = new Car[3];
for (int i = 0; i < car.length; i++)
    car[i] = new Car();
0088デフォルトの名無しさん2007/06/29(金) 02:34:24
>>86
>>87
なるほど!!
まずは配列要素それぞれで生成するわけですね。
早速試してみます。
0089882007/06/29(金) 02:42:00
>>87さんのコードを書き加えたら出来ました!
ありがとうございました!
0090デフォルトの名無しさん2007/06/29(金) 03:11:34
Javaアプレット(ファイル名:abc.jar)でOKボタンを押したときのイベントで、Javaアプレット自身を再起動させるプログラムを書きましたが、時々動作しなかったりしています。

OKボタンを押したときのイベントの中にRuntime.exec()で2つのシェルスクリプトを実行するプログラムを書きましたが、
1つ目のJavaアプレットのプロセスをkill するスクリプトは常に動作しますが、2つ目のJavaアプレットを起動するスクリプトが動作したり、動作しなかったりしています。
・1つ目 stop.sh:(abc.jarのプロセスをkill するスクリプト)
・2つ目 start.sh:java -jar abc.jar

String[] cmd= {"stop.sh", "start.sh"};
Runtime.getRuntime().exec(cmd)
でcmdにスクリプトを渡すようにしています。
この書き方はだめなのでしょうか?

ソースは手元にありません。すみません。
よろしくお願いします。
0091デフォルトの名無しさん2007/06/29(金) 03:22:45
アプレットから Runtime.exec ですか。実に危険だな。
0092デフォルトの名無しさん2007/06/29(金) 03:35:31
>>90
2つ目動作することある?

Runtime#exec(String[]) の2つ目以降の要素は1つ目の要素の引数ではないか?
0093902007/06/29(金) 03:47:39
すみません。間違えていたと思います。

>String[] cmd= {"stop.sh", "start.sh"};
>Runtime.getRuntime().exec(cmd)

String cmd[] = new String[2];
cmd[0]="stop.sh"
cmd[1]="start.sh"
Runtime.getRuntime().exec(cmd[0])
Runtime.getRuntime().exec(cmd[1])

0094デフォルトの名無しさん2007/06/29(金) 04:39:48
>>85
組み込み用Cしか動かないような環境でJava動くの?
0095デフォルトの名無しさん2007/06/29(金) 04:43:53
>>90
どうせネタだろうけど

Runtime.getRuntime().exec(cmd[1]);
Runtime.getRuntime().exec(cmd[0]);

これでいいよ
0096デフォルトの名無しさん2007/06/29(金) 06:48:01
>>81
setの変更がremoveのみなら、こういう手も。
for(Iterator<Foo> iter = set.iterator(); iter.hasNext();){
 Foo f = iter.next();
 if(...){
  iter.remove();
 }
}
せっかくの enhanced for loop が使えないのはもったいないけど。
0097デフォルトの名無しさん2007/06/29(金) 07:45:23
>>81
こんな感じにする
Set<Foo> set = new HashSet<Foo>();
Set<Foo> temp = new HashSet<Foo>(set); // 丸々コピー
for(Foo f: set) {
    // ここで temp を変更
}
set.clear();  // 一度、空にしてから
set.addAll(temp); // 全部詰めなおす

参照の問題が起きないのであれば、2行を、set = temp;としてもいいけど、
このメソッドでSetを生成して返すのでもなければ、clear addAll のコンボのがいいと思う。
もし、他のスレッドからsetの更新の可能性があるならば、同期も取ろう
0098デフォルトの名無しさん2007/06/29(金) 15:40:33
URLConectionでリクエスト送信→レスポンス受信な処理をやろうとしてるんですが、
ループ内でリクエスト送信後、レスポンス受信の前に次のリクエストを送る事ってできないんでしょうか?
レスポンスを待たずにリクエストを送りたいと思っています。
こういうのはthreadを使うべきなんでしょうか?
0099デフォルトの名無しさん2007/06/29(金) 17:11:46
threadを使うべき
■ このスレッドは過去ログ倉庫に格納されています