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

★★Java質問・相談スレッド143★★

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2011/01/25(火) 03:07:32
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。

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

前スレッド
★★Java質問・相談スレッド142★★
http://hibari.2ch.net/test/read.cgi/tech/1290103530/

次スレは>>950あたりで。

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
0232デフォルトの名無しさん2011/02/11(金) 23:28:01
>>231
間違ってますか?ちなみに自分が見ているサイトのURLは下記です。
Firefoxでソースの表示からmetaタグをコピペしました。
http://japanese.engadget.com/2011/02/11/q-a-android-meego/
0233デフォルトの名無しさん2011/02/11(金) 23:56:28
>>232
まあ、正式な文法がわからない以上、あとはど根性とカンと運でなんとかするしかないでしょう。
0234デフォルトの名無しさん2011/02/11(金) 23:59:30
ろくでもないな。
0235デフォルトの名無しさん2011/02/12(土) 07:14:03
糞スレあげ
0236デフォルトの名無しさん2011/02/12(土) 08:03:08
恥ずかしいからageないで!
0237デフォルトの名無しさん2011/02/12(土) 08:55:19
『つくって覚えるJava入門』(オフィス加減 ASCI)
の38Pについて質問です。
「Writeの項目で、Androidアプリケーション実行時に最初に呼び出されるonCreateメソッド
の中に次のソースを加えてみましょう。」と記述されていますが、Androidアプリケーション実行
は、どうすればいいのでしょう?
具体的にどういう操作をすればいいのか記述されていないので、困っています。
0238デフォルトの名無しさん2011/02/12(土) 09:20:53
2章開発環境を準備しようとかに書いて無いのかよ
0239デフォルトの名無しさん2011/02/12(土) 11:17:21
たしかに回答者はアホしかいないが、もう少し高度な質問にしてくれたまえ
0240デフォルトの名無しさん2011/02/12(土) 11:20:22
2章で開発環境を準備しました。
しかし、「Androidアプリケーション実行」をどうすればいいのか
分からないのです。
ImageViewMainを宣言したいのですが。
0241デフォルトの名無しさん2011/02/12(土) 23:57:38
>>230
domで取ればいいんでない
0242デフォルトの名無しさん2011/02/13(日) 00:05:20
>>230
コピペするからにはよく調べて書いてあることを理解してからコピペした方がいい。
ネットには正しくないものもあるってことを忘れちゃいけない。
0243デフォルトの名無しさん2011/02/13(日) 02:13:34
>>241
調べてみます。

>>242
気を付けます。
0244デフォルトの名無しさん2011/02/13(日) 02:39:49
>>243
>>233にレスをもらってから「正式な文法」は調べたか?
本人じゃないが>>233のレスは「根性とカンでしか無理」って意味じゃないぞ?

正しいかどうか判断できない素人がどっかの糞サイトみて根拠もなく信じこむんじゃなくて、
お前自信が参考にした糞サイトのDOCTYPEにも書いてあるんだからまずDTDを確認することだ。

で、確認したら次に回答者に伝えるべきことがある。
間違ったソースから解析する方法を知りたいのか?
正しいソースから取得する方法がわかればよいのか?

的確な回答がほしけりゃ的確な質問を心がけろよ。
0245デフォルトの名無しさん2011/02/13(日) 02:42:42
垂直落下式DTD
0246デフォルトの名無しさん2011/02/13(日) 09:00:27
バカが質問してバカがトンチンカンな回答するから全然解決しないw
0247デフォルトの名無しさん2011/02/13(日) 09:10:52
エスパーに任せるしかないw
>>264答えてあげなさい。
0248デフォルトの名無しさん2011/02/13(日) 10:08:58
>>244
すみません。文法云々を知りたいのではないので。
取得するAPIとかあればそれで済む話です。
0249デフォルトの名無しさん2011/02/13(日) 11:00:13
質問です。
パソコンを軽くしたいので、コントロールパネルを見てたら

Java(TM) 6 Update 11
Java(TM) 6 Update 5
Java(TM) 6 Update 7

とあったのですが、11以外削除していいのでしょうか?
よろしくお願いいたします。
0250デフォルトの名無しさん2011/02/13(日) 11:15:33
>>249
基本的には最新の入れたら古いのは削除していい。

古いバージョンの挙動に依存してるアプリ使ってる場合は
古いの消したらそのアプリが動かなくなるってだけ。
0251デフォルトの名無しさん2011/02/13(日) 11:25:07
チャットシステムを作ろうと思い他の方が制作されたソースコードを拝見させて頂いたのですがよくわかりませんでした。

よくわからなかったのは読込・書込処理の部分です。
どういう流れで会話のやり取りが行われているのかよくわかりません。
例えば、Aさんが書き込んでBさんがその書き込みを見るまで、のような一連の流れです。

・読込処理
URL wi_url = new URL(p_url+"chat1.cgi");
URLConnection wi_connect = wi_url.openConnection();
wi_connect.setDoInput(true);
wi_connect.setDoOutput(true);
wi_connect.setUseCaches(false);
OutputStream wo_stream = wi_connect.getOutputStream();
BufferedWriter wo_buffer = new BufferedWriter(new OutputStreamWriter(wo_stream));
wo_buffer.write("read", 0, 4);
wo_buffer.flush();
wo_buffer.close();
InputStream wi_stream = wi_connect.getInputStream();
BufferedReader wi_buffer= new BufferedReader(new InputStreamReader(wi_stream));

書込処理はchat1.cgiの部分がchat2.cgiになっているだけで他は同じです。
0252デフォルトの名無しさん2011/02/13(日) 13:51:41
それはcgiの中まで見ないとわからない
0253デフォルトの名無しさん2011/02/13(日) 17:17:22
シンボルを見つけられません。
シンボル: 変数 afile
場所 : sorting の クラス

afileの中にあるs_assign_data.datはsorting.javaと同じ階層です。
afileからデータ引っ張ってきたいんですが、afileの中身がない?状態なんですかね。
一応afileの生成に関係あるところだけ抜粋します。
ご教授よろしくお願いします。

public static void main(String args[])
throws IOException,FileNotFoundException
{
try{
BufferedReader afile=new BufferedReader(new FileReader("s_assign_data.dat"));
}catch(FileNotFoundException e){
System.out.println(e);
}
0254デフォルトの名無しさん2011/02/13(日) 17:23:36
javaじゃなくてクラスファイルと同じ場所に入れなさいよ
0255デフォルトの名無しさん2011/02/13(日) 17:36:18
じゃなくて、afileという変数がそのエラーが出たところで見つからないと言っている
0256デフォルトの名無しさん2011/02/13(日) 17:45:40
String line = afile.readLine();
でafileないよ〜と言われます。
クラスはコンパイルできれば、でるんじゃなかったでしたっけ?
javacでエラーがでてます。

ちなみにdatの中身は下のようなものです
1, 田中 実,41,21,13
0257デフォルトの名無しさん2011/02/13(日) 17:50:55
try{
BufferedReader afile=new BufferedReader(new FileReader("s_assign_data.dat"));
}catch(FileNotFoundException e){
System.out.println(e);
}
String line = afile.readLine();

ではなく

BufferedReader afile = null;
try{
afile=new BufferedReader(new FileReader("s_assign_data.dat"));
String line = afile.readLine();
}catch(FileNotFoundException e){
System.out.println(e);
}
finally {
 ・・・
}

ってことか?
コンパイルくらい通せ
0258デフォルトの名無しさん2011/02/13(日) 17:57:12
>>257
その通りでした。エスパーありがとうござます。
tryの中にString line = afile.readLine();をいれたら解決しました。
0259デフォルトの名無しさん2011/02/13(日) 18:08:28
アホしかいないんだからこの程度の難易度の質問で頼むよ
0260デフォルトの名無しさん2011/02/13(日) 18:09:53
自己紹介乙
0261デフォルトの名無しさん2011/02/13(日) 18:25:50
変数のスコープ覚えろ
0262デフォルトの名無しさん2011/02/13(日) 23:43:57
1, 田中 実,41,21,13
このデータをリストに読み込みなさいという課題がでています。方向性を教えていただけると助かります。
今自分がやろうとしているのは、ArrayListでそれぞれ全列を読み込み、さらにlist1.add(list2);みたいな形でつなげようと考えています。
こんなことは可能でしょうか?
それとも多次元配列とかmapとか使った方がいいんでしょうか?
0263デフォルトの名無しさん2011/02/13(日) 23:46:58
>>262
「みたいな形でつなげ」がわからなかった。
0264デフォルトの名無しさん2011/02/13(日) 23:51:32
読み込んで何したいか書けよ
てか聞いてたら課題にならんのじゃないか?
0265デフォルトの名無しさん2011/02/13(日) 23:56:08
>>263
1, 田中 実,41,21,13
2, 田中 けい,22,11,23
↑  ↑
list1,list2
listは1列ごとしか読み込めないと自分は思ってて、それらを最後横から結合できないかなと思ってたんですが、調べるとできなそうでした。
多次元配列が一番自分の中で格納するイメージがわくんですが、型が違ってもいけるんですか?

>>264
ソートしたいです。選択法とかバブルソートとか。
もう7時間ぐらいやってるので、ヒントだけください。
0266デフォルトの名無しさん2011/02/14(月) 00:22:33
「横から結合」の意味がわからなかったけど、
まともな説明とか無理そうだったら Object 型の多次元配列にしちゃえば?
0267デフォルトの名無しさん2011/02/14(月) 00:27:02
>>266
ありがとうございます。それで行きます。
0268デフォルトの名無しさん2011/02/14(月) 00:32:16
コレクションの要素に配列入れられるぞ
0269デフォルトの名無しさん2011/02/14(月) 00:33:04
「注:〜は推奨されないAPIを仕様またはオーバーライドしています。
注:詳細については、-Xlint:deprecationオプションを指定して再コンパイルしてください。」

これって javac -deprecation ○○.java でコンパイルできる?
0270デフォルトの名無しさん2011/02/14(月) 00:35:00
Objectの多次元配列にするくらいなら
一行ずつクラスを作りそうだが

public class Person {
 private int no;
 private String name;
 ・・・
}

みたいなクラス作って一行ずつそのクラスをnewして
Listに追加していく
0271デフォルトの名無しさん2011/02/14(月) 00:42:18
result = ImageIO.write(img, "jpeg", new File("test.jpeg"));
で画像保存したのですが青のプレーンだけ無視されて黄色がかった画像になってしまったのですが
これは何が原因でしょうか?
またjpeg以外で保存することはできないんでしょうか?
0272デフォルトの名無しさん2011/02/14(月) 00:55:17
>>270
そんな応用はできません><
2次元配列にデータを格納できました。うれしいです。
0273デフォルトの名無しさん2011/02/14(月) 01:03:13
配列を使えるようになるのに7時間もかかる奴なんてのはそもそもこの世界に向いてない
0274デフォルトの名無しさん2011/02/14(月) 01:10:27
配列は全ての基本だ。とても難しい。
じっくり時間をかけてマスターしろって
エリッククラプトンが言ってたよ。
0275デフォルトの名無しさん2011/02/14(月) 01:13:04
ボタンとテキストボックスが置いてあるウィンドウを一個開いて、ボタンを押すと
テキストボックスにhogehogeと追記するようなプログラムがあるとします。

・適当に一個クラスを作り、main関数を置く。
・main関数の中で、JFrameを継承したクラスAのインスタンスを一個作る。
 クラスAのフィールドとして、ボタン(クラスB)とテキストボックス(クラスC)を宣言しておく。
・BにはクラスA型のフィールド(仮にX)を持たせ、AのコンストラクタでBのインスタンスを作成するときに、
 XにA自身への参照を保持しておく。
・Bを押すと、(X)->Cと参照し、Cのメソッドを使って、Cにhogehogeと追記。

とりあえずこういう作り方をしてみて、一応動いてはいるんですが、Bの再利用性とか考えると、
なんか間違ってる気がします(Aじゃないクラスの中にBを置くとおかしなことになるような)。

でも、クラス間で会話できないとならないとすると、
階層が同じ他のクラスを参照する方法は必要みたいに思えます。
何かほかにいい方法があるのでしょうか。
0276デフォルトの名無しさん2011/02/14(月) 01:40:06
そんなゴミクズ再利用できないからどうでもいいだろ
0277デフォルトの名無しさん2011/02/14(月) 01:46:33
再利用する時が本当にあるのかという気もするが
@ITのJFrameの記事でも読んでみろ
0278デフォルトの名無しさん2011/02/14(月) 01:57:51
>>276-277
ありがとうございます。@ITの記事参考になりました。
私の場合、どうも処理を書く場所が根本的にマズイみたいですね。
明日作り直してみます。
0279デフォルトの名無しさん2011/02/14(月) 03:02:42
チャットでよく名前の前辺りとかにアイコンを表示させることができるものがありますが、どんなプログラムでやっているんですか?
0280デフォルトの名無しさん2011/02/14(月) 07:34:11
>>279
エスパーか占い師か霊媒師にでも聞きに行け。
02812532011/02/14(月) 08:23:52
1, 田中 実,41,21,13
2, 田中 けい,22,11,23
データをリストにいれた後、選択法でのソートについて教えてください。
今上記のデータをlistArrayでsortListに格納し、sortList.get(0)でprintすると0~150まででてきます。
これらを選択法で指定した列でソートしたいんですが、一度配列にしないとできないように思いました。
どうすればいいでしょうか?
Selection(array A){//選択法の関数
for(i=1;i<n;i++){
min=i;
for(j=j+1;j<n+1;j++){
if(A[j]<A[min])min=j;
}
swap(A[i],A[min]);
}
}
0282デフォルトの名無しさん2011/02/14(月) 10:03:00
これは本格的にセンスないな
0283デフォルトの名無しさん2011/02/14(月) 10:07:43
スルーしろ
0284デフォルトの名無しさん2011/02/14(月) 10:55:25
>>281
いやだから普通に 1, 田中 実,41,21,13 をクラスにすべきなんだが・・
0285デフォルトの名無しさん2011/02/14(月) 11:08:25
>>281
できるできないはあなたの判断なので、できないと思うのなら、できないで納得すればいいでしょう。
ArrayListとかCollectionとかのマニュアルを読んでも無駄そうなので、一度配列にしましょう。
Comparatorとかあなたには無理。
0286デフォルトの名無しさん2011/02/14(月) 12:31:45
>sortList.get(0)でprintすると0~150まででてきます。
これは何の冗談だ?
0287デフォルトの名無しさん2011/02/14(月) 13:34:54
田中 実さんの人気に嫉妬
0288デフォルトの名無しさん2011/02/14(月) 13:43:42
awt.eventではなくsignal/slotのようなことをやとうとしたらどうやって書きますか?
0289デフォルトの名無しさん2011/02/14(月) 16:18:21
田中実さん・・・
その名前を聞いたのは、「刑事貴族」の再放送を見て以来だ
0290デフォルトの名無しさん2011/02/14(月) 16:35:54
>>271
たしかimgのカラーモデルが、ImageIO.writeで使われてるカラーモデルと一致しないとそういうことがおきる。
解決法はimgからTYPE_INT_RGB(たぶん)のカラーモデルでBufferedImageを作成して書き出す。
それでダメならwriteのショートカットメソッドは使わないで、ImageWriterから細かく設定するしかないんじゃないか
jpeg以外の保存法はjavadriveのページに書いてあるぞ
0291デフォルトの名無しさん2011/02/14(月) 17:42:01
>>290
TYPE_INT_RGBで作ったimgにコピーしてからセーブすることで全て解決しました。
ありがとうございます。
0292デフォルトの名無しさん2011/02/15(火) 17:49:51
たとえばプリコンパイラ命令みたいなもので
実行環境によってコードを切り替えられるようにすることはできますか?
0293名無しさん2011/02/15(火) 18:03:04
>>292
プロパティなどで指定したクラスを使うようにすればいいんじゃない。
0294デフォルトの名無しさん2011/02/15(火) 18:36:36
なるほどSystem.Propertiesでしょうか?
ありがとうございます。
0295デフォルトの名無しさん2011/02/15(火) 21:57:17
>>292
コードの切り替えはできなくても実装クラスの切り替えはできる

そういうのはDIコンテナとか使用して、UTやIT環境で実装を切り替えたりするのがいい
0296デフォルトの名無しさん2011/02/15(火) 21:58:56
SystemOutしたのに表示されません
どこに表示されるでしょうか
0297デフォルトの名無しさん2011/02/15(火) 23:32:38
最初に
contain.add(MyPanel);
pack();
してあるものを
後からイメージの大きさを変えて
全体枠をリサイズすることは可能ですか?
どういう方法がありますか?
0298デフォルトの名無しさん2011/02/15(火) 23:54:21
JavaでhttpClientを使ってwebサイトのソースコードを取得するプログラムを
作ってますが、javascriptが出力するソースコードが取得できません。
firefoxの「選択した部分のソースコードを表示」の機能で表示することはできます。
どうしたらJavaのプログラムから取得できますでしょうか。

0299デフォルトの名無しさん2011/02/15(火) 23:54:50
>>296
「SystemOutしたのに表示されません 」が正しければ
どこにも表示されないが正解だよね。
0300デフォルトの名無しさん2011/02/15(火) 23:58:14
>>298
Java と JavaScript は別言語だから無理なんじゃないかな?
0301デフォルトの名無しさん2011/02/16(水) 00:04:41
>>298
ブラウザをエミュレートしないと無理じゃね
C#でやった方が簡単そう
0302デフォルトの名無しさん2011/02/16(水) 00:09:24
>>301
javascriptのinnerHTMLとか叩けば
表示せれるのですが、javaからjavasctipt叩いても無駄ですよね?
C#ならどうやるのでしょうか。あ、スレチか。
0303デフォルトの名無しさん2011/02/16(水) 01:12:55
javaからjavasctipt叩くとは?
0304デフォルトの名無しさん2011/02/16(水) 01:28:18
JDK6のScriptEngine使って、すごい頑張るとか……?
JavaScriptサポートしてたよね?
0305デフォルトの名無しさん2011/02/16(水) 01:33:36
innerHTMLとか言ってるレベルがjdk1.6なんかを触れるわけないだろ
0306デフォルトの名無しさん2011/02/16(水) 01:40:56
>>297
revalidate
pack
0307デフォルトの名無しさん2011/02/16(水) 01:55:29
>>305
だからすごい頑張れとw
ScriptEngine上のJavaScriptからJava側を触ることができるんだから、
HTMLをJava側でパースしてラップしたDOMオブジェクトをScript上から触るみたいなことはできないだろうかと。

まぁ、そこまでやったら変態だが。
0308デフォルトの名無しさん2011/02/16(水) 01:56:12
おまえら日本語で喋れ
0309デフォルトの名無しさん2011/02/16(水) 02:03:56
JCOMやSWTとか使ってIEコンポーネント叩く方が現実的かもね……。
0310デフォルトの名無しさん2011/02/16(水) 02:10:39
引数をいんすうと読む先生がいるのですが
間違っちゃあいないのでしょうか
0311デフォルトの名無しさん2011/02/16(水) 02:35:57
「DOM」と書いてあるのを見つけるとガンダムのことをいつも思い出してしまう・・
0312デフォルトの名無しさん2011/02/16(水) 02:42:40
DownloadOnlyMember
パソ通時代はライブラリからダウンロードして
お礼も何も書かなかったな
フリーソフトなんてそんなもん
0313デフォルトの名無しさん2011/02/16(水) 05:41:39
おれはmp3だったよ
今じゃyoutubeだもんな
そら音楽売れんわ
0314デフォルトの名無しさん2011/02/16(水) 08:02:10
DOMわかるww
SOAPもなかなか
0315デフォルトの名無しさん2011/02/16(水) 08:06:36
そんなこといってたら「JSON」はどーなるの?(笑)
0316デフォルトの名無しさん2011/02/16(水) 10:30:48
Java6 update24をインストールしたけど、
javaのページで確認したらupdate21になっている
システム確認したらupdate24に確かになっているのに...
どういうことなの?
0317デフォルトの名無しさん2011/02/16(水) 11:10:38
そういうこと
0318デフォルトの名無しさん2011/02/16(水) 11:37:33
ちょっと作りたい物があってjavascriptを勉強しているのですが
ランダムで1桁の数字(画像で1~9)が表示され
それぞれの数字に対応して別の動作をさせることは可能ですよね?
0319デフォルトの名無しさん2011/02/16(水) 11:41:26
その一桁のランダムな数字というのは自分で決めるのか?
それとも、外部の別の何かが勝手に作った画像を読み取って処理するのか?
前者なら楽勝
後者なら地獄
03203192011/02/16(水) 11:48:44
よく見たらJavaScriptか
それなら後者でも画像のURL見ればだいたい分かるな
スレ違い
0321デフォルトの名無しさん2011/02/16(水) 11:59:18
失礼しました
ありがとう
0322デフォルトの名無しさん2011/02/16(水) 13:45:55
乱打舞図
0323デフォルトの名無しさん2011/02/16(水) 22:56:26
すみません・・。Windows7 Premier HomeでSDKダウンロードインストールしてPathの設定をしているところなのですが、

javac は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチファイルとして認識されていません。


と出ます。

Pathはプログラムファイルのjava、sdkのbinフォルダを指定したのですが。


何か考えられる原因はありますでしょうか?
0324デフォルトの名無しさん2011/02/16(水) 23:07:54
>>323

パソコンを起動したら自己解決。
初歩的なミスだ。。

0325デフォルトの名無しさん2011/02/16(水) 23:16:04
下記のように10MBの値をmarkの引数にセットしたら、
その時点で10MBのバッファが確保されるのでしょうか?

BufferedInputStream.mark(10 * 1024 * 1024);
0326デフォルトの名無しさん2011/02/16(水) 23:19:57
俺たちが唯一答えられる質問だったのに…
0327デフォルトの名無しさん2011/02/16(水) 23:47:16
>>325
コンストラクタで10MB以上確保してなければ
必要になったとき2倍ずつどんどん増やしてって
最終的にmarkで与えた分確保するんだったような

仕様的には、どーゆー実装にしてもOKなんじゃね?
つまり継承クラスからbuf直接触る場合は決めうちしない方がいいかもしれん。
あんまし気にしすぎるとハゲるけどね。
0328デフォルトの名無しさん2011/02/17(木) 00:17:51
>>327
bufは弄らないのでこのまま使ってみようと思います。
ただ、resetで例外が発生する場合があるので、
そこだけどうにかしないと…。
リミットサイズがあらかじめ分からないので、
ある程度大きなサイズを確保しておくしか無さそうです。
0329デフォルトの名無しさん2011/02/18(金) 00:33:01
>>328
いったんローカルファイルに全部保存しておいて
RandomAccessFileなりFileChannelなり使った方が楽だと思うよ。
0330デフォルトの名無しさん2011/02/18(金) 00:43:40
(abc)このような文字列から英数字を抜き出したいので、以下のような正規表現のパターンを考えました。
Pattern.compile("^\(\"([a-zA-Z0-9]+)\"\)$");
ですが、これだとエスケープシーケンスがなんとかでエラーになってしまいます。
どう書くのが正しいのでしょうか?
0331デフォルトの名無しさん2011/02/18(金) 00:45:22
「なんとか」の部分をちゃんと読めば解決する
■ このスレッドは過去ログ倉庫に格納されています