[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 06/11 10:36 / Filesize : 275 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 19:48:24 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。pc10.2ch.net/hp/

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

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

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

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

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

102 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:42:27 ]
何で配列?

103 名前:デフォルトの名無しさん [2008/02/10(日) 14:50:59 ]
>>92
エラーが表示するライブラリを順に追加していったら動くようになりました!
ありがとうございます。

104 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 19:40:54 ]
こんばんは。質問よろしいですか。
Linuxコマンド(diff)を実行し、その結果を出力するだけのプログラムなのですが、
なぜかその実行結果がNULLになります。
ソースは以下の通りです。宜しくお願いします。
fileA,fileBは共にテキストファイルで、コマンドの誤りは何度も試したのでないと思います。

public class b {
public static void main(String[] args) {
try {
// プロセスオブジェクトを生成
String str ="diff fileA fileB";
// System.out.println("command:"+str);
Process process = Runtime.getRuntime().exec(str);
// process.waitFor();
// 外部コマンドの標準出力を取得するための入力ストリームを取得
InputStream is = process.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
// 標準出力を1行づつ取り出します
String line = br.readLine();
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}


105 名前:104 mailto:sage [2008/02/10(日) 19:57:29 ]
申し訳ありません。自己解決しました。
原因は、もしかすると、fileAとfileBの場所が遠かった(コマンドが長すぎた)せいだと思います。
ご迷惑をおかけしました。

106 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:34:38 ]
アニキ、Ant から起動したら XML パースが使えなくなりやしたぜ。どうしやしょう。

107 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:16:06 ]
放置しとけ

108 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 01:05:22 ]
Log4j って作者抜けてから開発停滞してね? J2SE 5.0 に対応させるとか言ってた
2.0 とかの開発今どうなってんの?

109 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 01:22:17 ]
log4jメーリングリストのアーカイブ嫁

110 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 01:32:18 ]
このスレ並の質問ばっかで開発状況の話なんて全然ねーじゃん。



111 名前:デフォルトの名無しさん [2008/02/11(月) 02:08:30 ]
秘密の漏えいを期待してるのか?
かね出さずに?

112 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 09:40:34 ]
Javaをアンインストールしたらどうなりますか?
windows vista

113 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 10:18:26 ]
削除されます
windows vista

114 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 10:25:58 ]
Javaをアンインストールても、windows vistaは正常に作動しますか?

115 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 11:59:33 ]
SOAPってスレッド使ってもいいの?
仕様的に。

116 名前:デフォルトの名無しさん [2008/02/11(月) 13:21:47 ]
プログラムを実行するごとにint型の変数の値を1ずつインクリメントするのってどうやったらできるんですか〜−−;

117 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 14:02:08 ]
>>116
プラシーボで良ければ、int型の値を確保し、それをインクリメントするだけのプログラムを。

でなければ、実行されるプログラムが使用するメモリ以外の部分に、実行時の値を保存する。
レジストリやらHDDなど外部記憶装置やら。

参考
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/util/Properties.html
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/util/prefs/Preferences.html

118 名前:デフォルトの名無しさん [2008/02/11(月) 14:09:32 ]
>>117
ありがとうございます!
今からちょっと用事があるので帰ってきてから実装してみたいと思います。

119 名前:デフォルトの名無しさん [2008/02/11(月) 15:03:20 ]
必ず表示されるフォントってありますか?

120 名前:デフォルトの名無しさん [2008/02/11(月) 15:05:47 ]
今のところ
Calendar.SUNDAY == 1
Calendar.MONDAY == 2
 (略)
Calendar.SATURDAY == 7
みたいですが、これを前提にコード書いたらやっぱまずいですか?
SUNDAYからMONDAYまでがこの順に連続した整数であることも
全く保証されて……ないんですよね、やっぱり。
SUNDAY→0, MONDAY→1, ..., SATURDAY→6 を得たいんですけど、
いちいち走査するしかないのかなあ。



121 名前:デフォルトの名無しさん [2008/02/11(月) 15:05:51 ]
String s = ?(97);
s.equals("a")にするための?の部分を教えてください。

122 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:09:44 ]
>>119
どの環境でも使えるフォント名ってことなら"Serif"、"SansSerif"、"Monospaced"、"Dialog"、"DialogInput"

123 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:13:23 ]
>>121
Character.toString( (char)97 )

124 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:16:57 ]
>>120
作法としてまずいかどうかは知らないが
将来バージョンアップで値が変わったりとかはしないはずなので大丈夫かと
(そんなことしたら既存のプログラムが動かなくなるし)

125 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:39:47 ]
qa3765663

126 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 16:52:34 ]
質問です。

JNIで呼び出すCのライブラリの中でファイルを参照するのですが、
ファイルの読み込みは一度だけにして常にメモリ中に展開しておき、
2度目以降は読み込み処理をやらなくてすむようにはできるでしょうか?

127 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 17:34:06 ]
>>120
APIドキュメントで対応する数値が明記されていない以上、
変更されて機能しなくなる可能性がないとはいえないが、
まあたぶん変えられることはなさそうだし前提にしてもいいんじゃないかな。
Calendar.SUNDAYとかはpublic static final intで宣言された定数なので、
使用側のコードに直接値が埋め込まれるため、
変更されるような事態になったら全部コンパイルし直しになるので。

128 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:05:38 ]
>>125
okwaveとのマルチか

129 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:17:05 ]
>>128
どこかがつぶれてもいいような分散技術を使った高度な質問技。
しかし技を使ったことがバレると回答されにくくなる諸刃の剣。

130 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:02:29 ]
ただのクロスポストだろ。なにが高度なんだ



131 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:29:06 ]
>>120
必要が無ければやるべきではない印象を持つが、必要として考えると…

定数の値は公開されて確認ができるので、クラスの使用条件を
「Calendar.SUNDAY から Calendar.SATURDAY が連続した整数値を取ること」
としていれば、Java のバージョンが変わったときも、それを確認するだけで使えると思う。

もしくは、static の初期化子などでそれらが連続することを確認し、
そうでは無い場合には何らかの処置をする、とか

132 名前:120 mailto:sage [2008/02/11(月) 22:28:27 ]
レスありがとうございました。
書いた直後に出かけていて返事が書けませんでした、ごめんなさい。

>>124
いくら public とはいえ、SUNDAY と "1" という値とは本来何の繋がりもない、
Calendar クラスの中だけの約束事でしかないので、
定数をこういう風に使っていいのかなぁという疑問がずっと消えなくて。

>>127
やっぱり明記はされてないんですよね。
ただ、「使用側のコードに直接埋め込まれる」には思わず手を打ちました。
定数が変わるときにはどのみちコンパイルし直しになるんだから
そのときにチェックが入るだろう、という考え方ですね。
建国記念の日とか春分とかの「日本の休日」を扱うクラスは
(どうせあと数十年中に休日が増減するから)とりあえず21世紀中だけ
使えることにしておけばいいよ、ってのと似たような話でしょうか。
ちょっと違うかもですが。

>>131
その発想はなかったっ。
どうせ将来にわたっても定数が変更されることはないだろうけど、
もし万が一……というところで悩んでいたので、
その注意書きを選ぶことにします。
お三方ともありがとうございました。

133 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:03:36 ]
>>132
>建国記念の日とか春分とかの「日本の休日」を扱うクラスは・・・
祝日ってDBかファイル持ちだち思うんだ

134 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:06:09 ]
>>132
それなら自分でMap持てば済む話じゃないの?

135 名前:デフォルトの名無しさん [2008/02/12(火) 00:59:23 ]
JavaBeansの仕様で質問です。
String a_1 = null;
というフィールドがあった場合、仕様として正しい
geterは
getA_1なのでしょうか?

136 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:09:58 ]
逆に考えるんだ
「get,set,isに続くものをプロパティ名とする」と
フィールド名は関係ない

137 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:27:58 ]
質問です。

クラス名や変数名に「hoge」という文字が頻繁に使われていますが、
なぜ「hoge」なんですか?

138 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:32:23 ]
>>137
ほげを考えるページ
ttp://kmaebashi.com/programmer/hoge.html

139 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:34:19 ]
そんなググれば出てくるような質問を
テレビのイの字と同じようなものだよ

140 名前:デフォルトの名無しさん [2008/02/12(火) 01:44:56 ]
javamailを使ってメールの複数送信をしようと思います。
送信先をXMLデータベースから抜き出してループさせたいのですが,
internetaddressクラスの配列使用の場合と
SAXとの組み合わせ方が今ひとつわかりませんのでどなたか解説お願いします。





141 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 02:19:43 ]
>>138
つまり、名前をつけるのが面倒なときにつけるんですね?
ありがとうございました

142 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 03:48:51 ]
初歩的なことなんですが、
javaプログラムから新たなテキストファイルを作成するにはどうすればいいのでしょうか?
ファイル作成のためのクラスとかありますか?

143 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 03:50:55 ]
FileWriter

144 名前:142 mailto:sage [2008/02/12(火) 04:19:25 ]
>>143
FileWriterで書き込んだりReaderで読み込んだりすることは出来るのですが、ファイルを作成することが出来ないんです。
具体的には、絶対パスではなく自分より二つ上の階層に新しいテキストファイルを作成したいのですが、
ネットで調べてもファイルへの読み書きの仕方しか出てきません。

145 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 04:25:32 ]
作成したいファイル名で new FileWriter("../../hoge.txt") すれば勝手にできる。
例外が発生するって言うならその例外の意味を調べろ。

146 名前:142 mailto:sage [2008/02/12(火) 06:47:29 ]
>>145
FileWriterで作成までしてくれるとは知りませんでした。
ありがとうございました。

147 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 09:41:05 ]
>>135
getterですよ

148 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 14:05:33 ]
現在メニューバー作成のためにサンプルプログラムを動かそうと
してるんだがコンパイラは通るんだがappletviewerが起動しない・・・。
コンパイラが通る時にMenuFrame2.classと同時に
MenuFrame2$1.class(プログラム中に記載はされてない)
という謎物ができるんだがこれが原因なのか?

↓とりあえずサンプルプログラム
ttp://www.dotup.org/uploda/www.dotup.org2840.java.html
Passはjava

149 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 14:15:07 ]
>>148
それアプレットじゃないじゃん
普通に java MenuFrame2 で起動してみ

150 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 14:21:45 ]
そうなんですか。
とりあえずIP抜かせてもらいました(^^v



151 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 14:23:37 ]
穴があったら入りたいと思ったが穴が無かったので
小さいかまくらを作った。入れなかった。
アプレットだと思ってた俺がバカでした。回答thx。

152 名前:デフォルトの名無しさん [2008/02/12(火) 14:53:19 ]
>>150
厨房( ´,_ゝ`)プッ


153 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 15:08:43 ]
tes01/tes02/tes03/sample.class という階層があって、
sample.classには、package tes03; の宣言がされています。
コマンドプロンプトから実行するとき、
tes02ディレクトリからでは java tes03/sample で実行出来るのですが、
tes01ディレクトリとtes03ディレクトリから実行出来ません。
例えばtes01ディレクトリから、java tes02/tes03/sample としてもエラーが出ます。
どうすればいいのでしょうか

154 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 15:22:02 ]
>>153
つjava -cp test02 test03/sample

155 名前:153 mailto:sage [2008/02/12(火) 17:17:22 ]
>>154
ありがとうございます!無事実行できました。

156 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 17:28:24 ]
JDBCでテーブル一覧を取得したいんですが、
どうやったらいいのでしょうか?

157 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:00:54 ]
Connection#getDatabaseMetaData()

158 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:23:28 ]
JNI で質問なんですけど、C/C++ から呼んだ Java のメソッドで new で確保したオブジェクト
返した場合、JNI でそのオブジェクト参照してても GC の対象になるよね?

public byte[] foo(){ new byte[1024]; }

jobject value = env->CallObjectMethod(clazz, method);

159 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:02:54 ]
>>158
ネイティブメソッドから返るまでは掴んだまま
返れば GC の対象になる
明示的に放したい場合は DeleteLocalRef を呼ぶ

160 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:26:36 ]
おまいら親切過ぎる
職場の上司もこんな優しく教えてくれたらなぁー



161 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 20:37:22 ]
Threadのrunメソッドに引数を渡すことは出来ないんでしょうか?
スレッドを複数作成してそれぞれのスレッドに異なる情報を渡して違った処理を実行させたいのですが。

162 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 20:54:41 ]
メンバ変数に持たせときゃいいじゃん

163 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:46:47 ]
>>159
そうなんですか。Java VM が参照見失うかと思ったんですがそうではないんですね。
ひょっとして env->NewByteArray() とかもちょあんt

164 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 22:00:56 ]
お前のほうが色々見失っているよ

165 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 22:26:02 ]
「うまいこと言った!」



そう考える 164 であった。

166 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 22:46:48 ]
馬鹿っぽい質問だけど
インスタンス変数はよくprivateにするのに
クラス変数はどうしてpublicばっかなの?
private static 〜 なんてのはあまり見ない気がする

167 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:29:05 ]
スコープについて学べ

168 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:31:36 ]
>>160
プロとしての自覚を持て
先輩の何十分の1程度の生産性しか出せないくせに
給料は同じくらいもらってんだろ?

169 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:36:06 ]
普通後輩の方が安いはずなんだが

170 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:38:56 ]
何十分の1なのか?w



171 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:40:45 ]
>>169
>>168の書き込みなんて気にすんなw

172 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:44:24 ]
先輩になっても給料変わらん会社にお勤めなんじゃないのか。

173 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:46:37 ]
>>169
おまいも経験積んだら、高い生産性出せるようになるさ

174 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:48:26 ]
今できない香具師はずっとできない希ガス

175 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:55:03 ]
>>169は管理職で残業代出る後輩のが手取りは多い、とか。

176 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:59:00 ]
>>175
それはありそうだな
生産性が低ければそれだけ残業するしな


177 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:12:03 ]
30過ぎて月給25万の俺を慰めてくれよ

178 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:39:15 ]
愚痴るならマ板池

179 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:56:10 ]
25万ももらえば十分だろ
贅沢言ってんじゃねえよカス

180 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:57:54 ]
import,例外処理は省略します
public class ComServer{
private ServerSocket sock; private Socket client;
public final static int portNo = 10500; private BufferedWriter writer;
private BufferedReader reader; private String msg = null;
ComServer() init();
void init(){
if(sock == null){
sock = new ServerSocket(ComServer.portNo,1);
client = sock.accept();
client.setKeepAlive(false);
System.out.println("Client connected");
}
if(reader == null) reader = new BufferedReader( new InputStreamReader(client.getInputStream()));}
String receive(){
if(reader == null)init();
String msg = null;
msg = reader.readLine();
return msg;
}
class s extends Thread {
private BufferedWriter writer;
private String msg;
s(String masg)this.msg = masg;
if(writer == null) writer = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
public void run(){
writer.write(msg,0,msg.length());
writer.flush();
}}}
すいません。たぶん根本的な間違いとおもいますがエラーがでてコンパイルできないです
申し訳ないですがバグを見つけてもらえないでしょうか?おねがいします. 環境はeclipse3.3.1.1 jre1.6.0_03です



181 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 01:11:43 ]
いやだ。

182 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 01:13:59 ]
>>180
エラーどこ、main どこ。クラスの先頭は大文字で。
eclipse ならエラーの対処方法も出るでしょうに。

183 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 01:14:28 ]
>>180
問題点の候補はコンパイラが見つけて教えてくれてるだろ
エラーメッセージを読んで理解しろ

184 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:23:07 ]
reader = new BufferedReader(new FileReader("./hoge"));
で実行ファイルと同じディレクトリのファイルを読み込むGUIアプリを作っているのですが、
実行ファイルが置いてあるディレクトリとは別のディレクトリのファイル(例えばデスクトップ)を引数に
そのアプリを立ち上げると
カレントディレクトリが
C:\Program Files\Common Files\System\MAPI\1041\nt\
と、よくわからないディレクトリになります。
何ででしょうか?

改善するためには、実行ファイルが置いてあるディレクトリを基点に
ファイルを読み込むようにすればいいと思うのですが
そのディレクトリを取得する方法がわかりません。
どうすればよいでしょうか?

185 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:31:52 ]
そんな方法はない。
固定ファイルならリソース使え。設定ファイルなら Preferences 使え。

186 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 10:35:03 ]
java.class.pathをとって、自分で探索していけば分かるかもしれない。

187 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:28:43 ]
>>180
さらっと見ただけだが、

>ComServer() init();

こんな構文ないだろう

188 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:40:54 ]
>>180
コンパイル出来ないのはバグじゃない。
なんでもバグで片付けようとするなよ馬鹿。

189 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:05:05 ]
>>184
Mainクラスにmain()があるとして、

URL url = (new Main()).getClass().getResource("Main.class");
String dir = url.toString();

みたいなかんじでどう?
jarから起動のときはそこからちょっと処理しないといけないけど

190 名前:デフォルトの名無しさん [2008/02/13(水) 12:27:21 ]
Graphicsを画像保存したいのですが
GraphicsオブジェクトからImageオブジェクトに変換できますか?




191 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 13:20:15 ]
>>190
BufferedImageに描画するようにして、それを保存したらどうよ?

192 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 13:20:21 ]
>>190
BufferedImage image = new BufferedImage(1000, 1000, BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
好きなように g に描く
g.dispose();
image げっと!

193 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 20:09:53 ]
明解Javaとかいう本、糞すぎる
前半はいいとして後半がめちゃくちゃ
結城さんのプログラミングレッスンのほうがはるかに信頼できるわ

194 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 20:12:10 ]
悪かったな。じゃあおまえが書けよ。

195 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 20:59:44 ]
例外オブジェクトって何ですか

196 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 21:00:30 ]
明解Javaって糞本なのか?
持ってないから解らんがw

197 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 21:09:19 ]
Java SE なんてどの本も同じだろw
つーかネットの連載とかで十分だし
本を糞と評価する奴が頭悪いだけって方が多いよな

198 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 21:10:38 ]
TeX で組んでない技術本は総じて糞。

199 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 21:11:39 ]
オライリは頑張って買ったw
英語版はつらいから日本語版待ってOrz..

200 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:11:16 ]
いみふ



201 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:20:11 ]
oh jesus
my jesus
I pleded my heart

202 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:20:46 ]
>>197
おまえ生意気だな
口の利き方に気をつけろよ
誰に話してると思ってんだ?
知らぬが仏とはいうがたいがいにしとけよ

203 名前:デフォルトの名無しさん [2008/02/14(木) 01:40:52 ]
byte[] b;
int i;

//DoJa5.1がコンパイルエラー
try {
byte[] b = new byte[1000];
i = b.length;
} catch(Exception e) {
System.out.println("" + i + e);
}

//DoJa5.1がコンパイル成功
try {
byte[] b = new byte[1000];
i = b.length;
i = 5; //なぜこれを書くとコンパイルが成功するんですか?
} catch(Exception e) {
System.out.println("" + i + e);
}

204 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 01:55:04 ]
て言うかそもそも b を二回定義してるのがおかしい気が…

205 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:10:55 ]
>>195
検索で大体意味はつかめると思うのだが…

まぁ、言語規定によると「オブジェクトは、クラスのインスタンス又は配列」とある。
当てはめると、「例外クラスのインスタンス又は例外配列」ということになる。

そもそも、オブジェクトを配列の意味で使ってる文は少ないし、
例外は配列としないことが普通だろう。として限定すると、前者の意だろう。

>>203
エラー詳細も張らずに質問とな?

206 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:17:23 ]
>>203
try節の中でbを二重定義しているのはおいておいて、
i=5;をそこに書いてもコンパイルに成功しない気が。
上が失敗するのはi=b.length;を評価する前に例外が発生して、
catch節に飛んでしまう可能性があるから、
その場合はiが初期化されていないのでコンパイルエラーを起こす。
int i;の段階でint i=0;とかで初期化すればエラーは出ないはず。
動作として正しいかどうかは別として。

207 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:40:30 ]
>>204,>>206
2重定義でした。ありがとうございました。

208 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:44:59 ]
そっちかよw
でもiの未初期化でもエラーが起こらなかった?

209 名前: ◆xkgLgN/H4. [2008/02/14(木) 10:24:06 ]
Sun認定Javaプログラマの試験対策問題集で納得できない部分があったので
質問させてください。

----------

問:アサーションの使用方法として適切なものを選びなさい。

【A】
public void method(int data) {
  assert data < 0: "dataが負数";
}

【B】文法間違いなので割愛

【C】
public void method(int data) {
  assert check(data): "checkメソッドがfalseを返した";
}
private boolean check(int data) {
  if (data < 0) {return false;}
  return true;
}

続く...

210 名前:209 ◆xkgLgN/H4. mailto:sage [2008/02/14(木) 10:25:50 ]
...続き

【D】
public void method(int data) {
  boolean checked = check(data);
  assert checked: "checkメソッドがfalseを返した"
}
private boolean check(int data) {
  if (data < 0) {return false;}
  return true;
}

正解は【D】なのですが、その解説が

【A】publicなメソッドの引数チェックをアサーションで行うのは不適切
【C】デバッグ時のみ使用し本番では使用しなくなるアサーションで
   メソッドの呼び出しを行うのは不適切
【D】内容は【C】と同じだが、メソッドの戻り値を変数へ格納し、その変数を
   アサーションでチェックしているので適切

というものでした。
【C】も【D】も「publicなメソッドの引数チェックをアサーションで行うのは不適切」に
該当する感じがして納得できないのですが、どう考えるべきですか?

また、【C】の解説が言わんとすることは、
アサーション有効時と無効時で呼び出されるメソッドが違う等の条件の違いがあっては
デバッグ作業として良くない
ということでOKですか?

よろしくお願いします。




211 名前:209 ◆xkgLgN/H4. mailto:sage [2008/02/14(木) 10:31:18 ]
訂正
【D】のassert行の末尾にセミコロンが抜けてました。
本来はセミコロンは付いています。

212 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:44:59 ]
Eclipseで製作したプロジェクトをjarファイルにエクスポートする際、
ImgaIconに使った画像や、プラグインとして使用したjarファイルが
含まれずに生成されてしまいます。どうすればよいでしょうか?


213 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:50:09 ]
>>210
しょせん試験なんてそんなもの。
問題作ったやつがアホだったんだろう。

214 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:54:36 ]
>>209
あら、俺は【C】で書いてるよ・・・。

215 名前:デフォルトの名無しさん [2008/02/14(木) 10:54:40 ]
long a,b;

aとbを比較したいのですが、a<bではダメなのですか??

216 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:55:33 ]
>>212
jarにエクスポートするとき、含めるファイルと含めないファイルを選択できると思うが
含めたい画像ファイルやjarファイルにチェックマークを付ければいいんでないか

217 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:56:05 ]
>>215
a<bでいいよ

218 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 11:00:01 ]
>>216
その際、srcフォルダの.javaにはチェックボックスが現れるのですが、
画像やプラグインには現れませんでした
別に設定すべき箇所があるのでしょうか?

219 名前:デフォルトの名無しさん [2008/02/14(木) 11:00:32 ]
>>217
それですると
Exception in thread "main" java.io.IOException: Bad file descriptor
でてくるんですけど・・・。

220 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 11:05:23 ]
>>219
long値a,bの比較は a < b の形式で問題ない。
その周辺のコードが悪いんだろうよ。



221 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 11:06:37 ]
>>219
longの比較でIOExceptionが出るわけないだろうと思うが・・・
スタックトレースは?

222 名前:デフォルトの名無しさん [2008/02/14(木) 11:13:12 ]
>>220.221
すいません、正確には
RandomAccessFile bin1 = new RandomAccessFile(new File(FileName1),"r");
RandomAccessFile bin2 = new RandomAccessFile(new File(FileName2),"r");

if(bin1.length()>=bin2.length())
c=bin2.length();
if(bin1.length()<bin2.length())
c=bin1.length();
としており、long型のcに短い方のファイルサイズをいれたいのです。。
この部分に問題があるのは確かなのですが・・。


223 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 11:32:53 ]
>>218
ビルドパスに入ってるjarファイルは出ないみたいだけど、画像はなんだろう・・?
ところで、jarにjarを含めても読み込めないよ
そういう場合はFatJarプラグインを使うといいかもしんない

224 名前:デフォルトの名無しさん [2008/02/14(木) 12:01:55 ]
jconsoleのリモート接続ができないのですがどんな理由が考えられますでしょうか?
接続対象の環境は
Windows2003
Java HotSpot(TM) Server VM バージョン 10.0-b19
VM引数として
-Dcom.sun.management.jmxremote.port=8888
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
を設定しています。
接続元からportqryコマンドで8888がLISTENING状態になっているのは確認済みです。

225 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 12:49:51 ]
>>209
CとDとの違いは、Assertionを有効にしない実行時にcheckメソッドが通るか否かという点は理解できているな?

これは試験用のサンプルだからわかりにくいけど、
int result = dao.update(entity);
assert result == 1;
というサンプルならばCはNGでDがOKと解るだろう。
わざわざcheckというメソッドで引数をチェックさせているのは意地悪な引っ掛けだね。

226 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 12:55:32 ]
>>225
俺は、A を却下してる時点で、C や D も却下されるべきだと思うな。
assertion 使わずに、変な引数にもちゃんと対応しろって言ってるように見えるのに、
C と D のどちらもそのガイドラインに沿っていない。

227 名前:225 mailto:sage [2008/02/14(木) 12:56:28 ]
追記
>213
アホはお前。
「アサーションの使用方法として適切なもの」であるから、CDは「publicメソッドで引数チェックのやり方は不適切」だがアサーションの使用方法に関してはDが正しい。

228 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 12:58:14 ]
>>222
その先何をやるのかわからないけど、必要なければ RandomAccessFile を使わない方が無難。
native なメソッドで追跡不能。例えば、ファイル長なら File.length でも可。

229 名前:デフォルトの名無しさん [2008/02/14(木) 13:10:20 ]
int型配列の最大要素数はどんだけ?

230 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:21:33 ]
>>229
言語規定によると…
> 配列は,int値によってインデクス付けしなくてはならない。
で、int型の最大値 (Integer.MAX_VALUE) は 2,147,483,647 なので、要素数はその -1 まで。



231 名前:230 mailto:sage [2008/02/14(木) 13:27:25 ]
自己レス。
要素数が最大値でインデクス値が最大値-1。かな…
まぁ、確保した時点で普通は OutOfMemoryError かと。

232 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:32:03 ]
>>230
ありがとうございます。十分な量です。

233 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 14:24:53 ]
Jakarta Projectスレがなくなっていたのでスレを立てた

Apache Jakarta Project関連統合【Java】
pc11.2ch.net/test/read.cgi/tech/1202966638/

234 名前:デフォルトの名無しさん [2008/02/14(木) 16:12:12 ]
質問です。

現在、mainクラスのガベージコレクションを、
多重継承されたインスタンスからコントロールしています。

ただ、Heap領域にアクセスする場合について、
そのコレクションフレームワークからマルチスレッド化させると、
ローカルにremoveしようとしても同期的な排他制御が取れません。
やはりラッパークラスのプリミティブ型は、エレメントのイテレータもhasNext()メソッドもどきで
volatile修飾子のシリアライゼーションをさせるのが絶対条件なのでしょうか。

ちなみに、もしコマンドライン引数によってJava.langのStringBufferまでimportしたとしても、
SetインターフェースのisEmptyメソッドにするとなぜかStackOverflowErrorの例外が発生します。
staticなyield()メソッドを汎用させるため、
throwsで例外ハンドラをコンストラクタなアサーションをしているのですが・・・。

C言語が腐るほど考えたのですが、
バイナリでのファイル操作がなかなかまとまらないため質問した次第ですので、
どうかお答えお願いします。

235 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 16:15:02 ]
不覚にも吹いたw
プログラミングを何も知らない初心者が見たら、
めちゃくちゃ高度なことに見えるんだろうなぁ

236 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 16:22:04 ]
未消化な単語ばかり並べてるけど、まあ初心者板なのだから。
やりたいことを自分の言葉やコードで示せば回答もあると思うよ。

237 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 16:32:42 ]
スイーツ(笑)

238 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 16:33:08 ]
>>234
まず、「てにをは」だけでも見直してみたらどうか?

239 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 16:36:31 ]
まるで自動生成したかのような意味の通らなさだ

240 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 16:38:26 ]
釣られてみる。
多重継承 :無理
GCのコントロール:原則としてできない
Heap領域にアクセス:??
ローカルにremove:??
ダメだ、突っ込みようもないわ



241 名前:デフォルトの名無しさん [2008/02/14(木) 18:22:37 ]
JLabelのpaintComponent(Graphics g)をオーバーライドして、
中でg.draw(new Line2D.Double(x, y))

とやると直線が引けました。
この直線を半透明にグラデーションさせたいのですが、どのようにするのがよいでしょうか?


242 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 18:29:49 ]
AGGへのラッパーを書く。

243 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 19:22:35 ]
>>222
小さいほうの値を選ぶだけなら static long Math.min(long, long) を。(if文を消せる。

244 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 19:56:19 ]
>>241
GradientPaint と AlphaComposite を調べろ

245 名前:241 [2008/02/14(木) 20:19:12 ]
ありがとうございます。
とりあえず直線はおいておくことにして、任意のShapeについて半透明グラデーション
させられるかを考えることにしました。

AlphaCompositeを利用すると一様にアルファ値が適用されてしまうようです(当たり前ですね)。
これを徐々に変化させるような処理というのはどういうプロセスになるのでしょうか・・・

かなり考えたのですが、すみません、ヒントいただけませんか?

246 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 20:30:35 ]
少し描画して変更して、また少し描画する、あとは適当なタイミングになるように工夫して繰り返せ

247 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 20:48:02 ]
ああ、少しずつ描画すればいいわけですね。
このY座標までは0.6fで、次からはもっと薄く・・・とか。
ありがとうございます。

しかし、タイミングって関係あるんでしょうか?
ひょっとして「徐々に」というのが時間的に捉えられてたとか・・・
すみません。これは距離的にということでした。

248 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 21:12:25 ]
GradientPaintとか

249 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 22:41:53 ]
速度が与えられれば時間的≒距離的だろう。
中学生レベルの理科か算数の話じゃねーか

250 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 23:09:02 ]
>>244のヒントであとは自力でできないようなら他のことを教えられてもできそうにない
あきらめたほうがいい



251 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 23:31:23 ]
いや、速度とか言ってるけど何か動かすような話じゃないと思うよ。
要するに図形を半透明にグラデーションさせたいわけだろ?
領域の面積で考えれば済む話じゃないか。しかももう判りかけてるみたいだし。

>>249,250はもうちょっと考えた方がいい。

252 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 00:14:39 ]
「釣られて見る」 と宣言すればネタに無粋な突っ込みして許されるってもんでもないぞ。

253 名前:デフォルトの名無しさん [2008/02/15(金) 00:25:57 ]
すいません、質問です。
ゲームを作っているのですが、方向キーを押したときに画像が
切り替わるようにするにはどうしたら良いでしょうか。
歩いているように見せたいんです。
現在、方向キーを押すと画像が動くようにはできています。
分かりにくかったらすいません。

254 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 00:29:46 ]
10個以上も上のやつのネタに突っ込みするんだからレス番ぐらいつけなきゃ無粋なんじゃ?

255 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 00:33:10 ]
>>253
普通に描画するだけなんじゃ?
ていうか質問の件よりは動かすほうが難しいと思うんだが

256 名前:デフォルトの名無しさん [2008/02/15(金) 00:33:24 ]
ふと思ったんだが
やっぱり、strutsよりJSFの方が良くないか?

257 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 00:34:11 ]
Struts が良いものと思ってる奴なんて居るのか?

258 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 01:14:43 ]
>>255
キャラが左右に滑るだけでまだ手足が動かないということなんじゃ?

259 名前:253 [2008/02/15(金) 01:23:33 ]
>>258
そういうことです。いいクラスライブラリがあるのでしょうか?

260 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 01:36:05 ]
JSF って JSTL と何か違うの?



261 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 01:36:47 ]
>>259
座標を適当な数で割った余りによってキャラを切り替えていくというのは?

262 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 01:37:17 ]
何を考える余地があるんだ?
ちょっと考えたほうがいいのは241だろ
アルファ値込みでグラデーション設定したGradientPaintをsetPaintで設定したグラフィックコンテクストを使って
drawなりdrawLineなりで直線引けば終わりじゃないか
>>244でGradientPaintってヒントが与えられてるのに
AlphaCompositeで一様にしかアルファを設定できないって言ってるやつが変

263 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 01:44:13 ]
GradientPaintで力不足ならAPIドキュメントでGradientPaint周りをぶらつけばLinearGradientPaintとかにも行き当たる

264 名前:195 [2008/02/15(金) 01:47:42 ]
>>205

激しく遅レスでごめんなさい。

言葉足らずだった、というか話が長くなる予定だったので最初は簡単に意向と思ったというか。

Java(というかJVM?)でも、普通にメソッドを呼び出すと引数とかリターンアドレスとか
ローカル変数とかをスタックに積んでいくんだと思うんですよ。

でも呼び出し先で「例外」投げると呼んだメソッドへのリターンではなくって、
メソッド呼び出しを含むtry節に対応したcatchのところに(しかも例外の種類にあったcatchのところ)へ
一足飛びに戻ってくるわけですね。

そしてそこでキャッチした例外のインスタンスには、
そこから上のスタックがごそっと詰まっているように見えるわけです。

そんなこんなで、tryを実行するとJVMがどっかにcatchのアドレスと例外の型を保存していて、
呼び出し先のどこかで「例外を投げる」を行うと、スタックをこれまたどこかに保存したうえで、
もともと保存してあったcatchのアドレスにまで一足飛びにジャンプして、というのを考えると、
それというのはGotoなんかよりよっぽどたち悪くないか、なんて思ったりするんですけど、
それでも例外は使うな、なんて話は別に聞かないですし、そんなもんかとも思うんですが、
例外処理書くときにもやもやするのは確かなのです。

そういう例外処理機構がくわしくわかるようなWebとかないでしょうか。

265 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 01:49:02 ]
名前空間付きの XML (DOM) に対して:

<foo xmlns:xsi="www.w3.org/2001/XMLSchema-instance"
  xmlns="foo-uri"
  xsi:schemaLocation="foo-uri foo.xsd">
<bar>...</bar>


XPath でノードを参照してみたんですけどノードと一致しません。

NodeList nl = (NodeList)xpath.evaluate("/foo/bar", doc, XPathConstants.NODESET);
// nl.getLength() == 0 になる

XML から名前空間の指定を取り除くと一致するため、検索時にパスの名前空間が考慮されてない
動きだと思うのですが、XPath に名前空間を意識させるにはどうすれば良いでしょうか?

DOM を構築するときにファクトリへ setNamespaceAware(true) は行っています。

266 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 01:49:30 ]
>>256
Feedaのほうがいい

267 名前:デフォルトの名無しさん [2008/02/15(金) 02:01:33 ]
先ほどスレ立てるまでもない質問スレで質問させてもらったんですが、板違いってことで
こちらで再度質問させてくださいまし。

一昨日からずっとこの問題を考えているのですが、基礎知識があまりに不足していて全くわからないで困っています。
プログラムに詳しい方いましたら長いですが完全解答を導き出していただけませんでしょうか?
以下に掲げたおこずかい帳プログラムの説明を書きなさい。ただし、書き方は次の例
を参考にすること。<form name=f><input type=text name=i value=""><input type=button value="偶奇判定" onClick="check()"></form><script>function chech()
{var a=Number(document.f.i.value);a=a+1;if(evenp(a)) alert("偶数");else alert("奇数");}function evenp(a){return a%2==0}</script>
【説明例】formタグとinputタグによって、画面にテキスト文字表示窓と偶奇判定用のボタンを表示。この際、ボタンをクリックした時、関数check()を呼び出すように設定する。
関数checkは、テキスト文字窓から入力された値(document.f.i.value)を関数Numberによって数値に変換し、これを変数aに代入する。ついで、aの値を1増やし、関数evenpによって変数aの
値が偶数か、奇数か判別し、偶数の時は"偶数"、奇数の時は"奇数"とalertウィンドウに表示する。関数evenpは、与えられた値(a)が偶数かどうか判別(aを2で割った余りが0かどうかで判定)し、結果(trueかfalse)を返す。


268 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 02:12:47 ]
何だこれ?
読む気しねえ

269 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 02:13:55 ]
>>267
板違い
Web 作成板池

270 名前:265 mailto:sage [2008/02/15(金) 02:40:39 ]
XPath の表記に接頭辞付けて、その接頭辞に対する URI (XML のと同じ URI) を返す
NamespaceContext サブクラス作らなきゃいけないみたいですね。



271 名前:デフォルトの名無しさん [2008/02/15(金) 03:14:39 ]
>>267
板違いって言われてなお同じ板の別スレに投げるとは
web制作板へ行ってもそのままじゃ誰も読んでくれんぞ
あっちの板で質問するときはせめて改行を入れろ
長くなるようならうpろだにあげろ

272 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 03:42:55 ]
>>264
お察しの通り、例外が発生した際の手順は見かけ以上に多く、議論の的になります。
例外を使う場面に関する検索キーワードとしては「java 例外 コスト」などでしょうか。

条件分岐目的で例外を発生させる書き方は、好まれていないように思えます。
instanceof とキャストと例外の話も面白い。

273 名前:デフォルトの名無しさん [2008/02/15(金) 05:59:57 ]
httpclientを使用してログインが必要なサイトにアクセスしたはいいものの
リダイレクトされて、html情報を取得できません。。。

ググってもリダイレクト先のURLを取得する方法がわかりませんー!
どなたかご存じありませんか><

274 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 06:04:52 ]
Location ヘッダを取れ。
つかリダイレクトを自動処理する設定くらいないのか。

275 名前:209 ◆xkgLgN/H4. mailto:sage [2008/02/15(金) 09:06:24 ]
>>213-214,225-227
レスありがとうございました。
メソッドの事後条件チェックにアサーションを使用した例と
考えることにします。
引数チェックに見えるのが腑に落ちないですが、
そこは問題作成者の思いやりが足りなかったと思うことにします。

276 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 11:39:42 ]
>>264
処理の重さが気になるって話なら、実際に例外が発生しない限りほとんどノーコストなんだし、
実際に例外が発生した場合にコストが高いのは、まぁエラー発生時のみだからと割り切る。

gotoっぽくてイヤって話なら、returnでエラーコード返す処理を連ねてくのに比べればマシかと。

277 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 12:30:20 ]
paint(Graphics g)やupdate(Graphics g)のgの部分を他のクラスから使う方法はありますか?

今はエラーを表示するだけなのに、

paint(Graphics g){
 test(g);
}

test(Graphics g){
 ………
 tset_error(g);
}

test_error(Graphics g){
 g..drawString("エラーがでたよ",0,0);
}

こんな感じの入れ子が数段連なってます。
なんだかガベージコレクトも頻発してるみたいなのでGraphics gを無くしたいのです。

278 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 12:33:26 ]
根本的な使い方が間違っていると思われ

279 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 12:38:47 ]
エラーに限らずほとんどのクラスにGraphicsが付いてるんですよ。
なんとかしたいでつ(>_<)

280 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 12:52:03 ]
作ったやつに氏ねと言ってくれ



281 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 12:57:06 ]
>>277
設計を見直すべきかと
paintの中で描画以外の処理をやってないか?
paintでは描画に集中し、ほかの事はやらない

設計に問題がないのなら、gを渡すのは仕方ない
あとガベージコレクションはgを渡してるのとはおそらく関係ない

282 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 13:11:25 ]
>>281
Graphicsの入れ子はガベージコレクト的に問題ないと言うことですね。それを聞いて安心しました。
ということはImageや整数配列の入れ子が問題なのかな。

Cみたいな参照変数になってるのか、なってないのかがよく分からなくて。

283 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 13:22:23 ]
Javaには参照渡ししかない。

284 名前:デフォルトの名無しさん [2008/02/15(金) 13:22:26 ]
直線のデータをdに入れます。
dは配列です。1次元目が開始位置、2次元目が終端です。
1次元目、2次元目がそれぞれx,yの座標を持っているので、
int d[][]型です。
int d[][] = new int[2][2];
配列dのメモリ確保はこれでよいですか?
C言語のようにd = new int[2]を実行してから、2次元目はforで回しながら
newしなくてはならないのでしょうか?

285 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 13:23:32 ]
ごめん、うそついた。
Javaの変数は、オブジェクトについてはすべて参照。
引数はすべて値渡しだが、オブジェクト自身を渡すことはできない。

286 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 13:26:54 ]
>>284 www.javaroad.jp/java_array3.htm

287 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 13:52:34 ]
>>285
試してみたら、Imageはコピーでした。Graphicsは参照。
全部試してみればよかったんだね。

288 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 15:39:04 ]
java3級 落ちてきたオイラに一言。

289 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 15:46:37 ]
java3級ってなに?

290 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 16:12:36 ]
サーティファイか



291 名前:デフォルトの名無しさん [2008/02/15(金) 17:14:19 ]
propertiesファイルで

firstname = taro
lastname = yamada
fullname = ${lastname} ${firstname}

みたいなことって無理ですか?

292 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 17:44:10 ]
>>234
なんか、完ぺき主義者みたいだな。
ところどころで主語や目的語が抜けて凄いな。
何を多重継承したのかわからんし、何をどのようにコントロールしているのかもわからない。
5W1Hがなっていないというか。

293 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:17:48 ]
>291
無理

294 名前:デフォルトの名無しさん [2008/02/15(金) 20:22:43 ]
anko1;;あんこ
anko2;;あんこ2

このような形式の辞書ファイル(100MB)を
ランダムアクセスファイルで分割してメモリに読み込み
検索する辞書検索プログラムを作っているのですが
検索はできるのですが、かなり時間がかかり困っております

ハッシュ系のコレクションフレームワークを使えとヒントをもらったのですが
100MBのデータをハッシュ化すると当然メモリがたりなくなりました

大量のデータをハッシュで高速に検索する方法をおしえていただけないでしょうか





295 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 20:28:00 ]
>>292
KY

296 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 20:31:16 ]
>>294
メモリ増設
てか、ヒープを256MBくらいにすればいいだろ

297 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 20:34:56 ]
>>294
普通にデータベース使え。
それが嫌ならその辞書ファイルにインデックスでも付けろよ。

298 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 20:49:22 ]
SAX パーサに Schema やなんかの Validator が設定できないみたいなんすけど
解析しながら ヴァリデーション ができるようには作れないんでしょうか。

299 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 21:29:55 ]
>>294
他の人も書いてるけど、
普通にJavaDBでEmbeddedでやれば何も考えずに楽勝だと思うんだけど。

辞書ファイルがテキスト形式絶対でも
nioだったらヒープ外にバッファが取られるから
それほど遅くならんと思うがなぁ。
コマンドライン引数指定はしないとまずいし、今やってないかもしれないしなぁ、
どの程度のレスポンスで遅いって言ってるか解らないし。

300 名前:デフォルトの名無しさん [2008/02/15(金) 23:46:17 ]
アプリの中のデフォルトフォントを設定したい。
Label l = new Label("");
l.setFont(f);
をいちいちインスタンスごとにやるのではなくて、main()が始まったらすぐに
デフォルトフォントを設定して、Label l = new Label("");した時点で
そのフォントが適用されているようにはできませんか?



301 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 23:49:50 ]
Labelをextendsしたらあかんの?
自前の俺Label作ったらええやん

302 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 23:52:16 ]
>>300
Javadocには親のフォントを継承するかのように書いてあるから、
FrameにsetFontすればいいんじゃなかろうか

303 名前:デフォルトの名無しさん [2008/02/15(金) 23:52:59 ]
Javaのソースコードを構文解析木に変換したいです。
たとえば
a = max(b,c/2);
だったら
  =
/ \
a   max
   / \
  b    /
     / \
    c    2
のような木を得たいです。出力のフォーマットはどのようなものでも構いません。
何かご存知の方いらっしゃいましたらよろしくお願いします。

304 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 23:56:01 ]
JavaCCでググれ。

BNFが有るのが前提だったら楽。

305 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 00:34:55 ]
>>301
Label.setFont()がありましたが、setDefaultFont()で解決しました。

306 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 00:50:02 ]
>>302
ありがとうございます。あきらめました。
public class OrigApp extends IApplication {
 public OrigPanel oPanel;
 public void start() {
  oPanel = new OrigPanel();
  oPanel.setFont(Font.getFont(Font.FACE_SYSTEM | Font.SIZE_SMALL | Font.STYLE_PLAIN));
  Display.setCurrent(oPanel);

307 名前:デフォルトの名無しさん [2008/02/16(土) 00:52:49 ]
↑import com.nttdocomo.ui.Font;
が無いとFontのシンボルが解決でないというコンパイルエラーです。
Fontというクラス名が衝突しているのですか?

308 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 00:55:39 ]
iアプリかよ・・・・・。

>>307
いみがわからん。
インポートしちゃいかんの???

309 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 00:59:36 ]
>>308
import com.nttdocomo.ui.*
こう書けばFontが使えると思っていましたが、
>>306のソースでは
import com.nttdocomo.ui.Font;
でなくてはコンパイルできない理由が分かりません。

310 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:09:57 ]
なるほど。
じゃぁ、Fontというクラス名の衝突という認識で正しい。

import java.awt.*;
とかやってないかい?
そこのFontクラスがある。

つーか普通Fontっていうとjava.awt.Fontだとおもうんだが。

まぁ、ソースに明示的に
oPanel.setFont(com.nttdocomo.ui.Font.getFont(com.nttdocomo.ui.Font.FACE_SYSTEM | com.nttdocomo.ui.Font.SIZE_SMALL | com.nttdocomo.ui.Font.STYLE_PLAIN));
って書いてもいいけどなw

ま、Eclipseとか使えってことだ。



311 名前:デフォルトの名無しさん [2008/02/16(土) 01:17:23 ]
java初心者です
Cだとif文で〜のときは変数○に値□を入れて
ーのときは変数○に値△をいれる

ってのができるのにjavaはスコープの関係上それができません><
一体どうやってやるんですか??

312 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:18:04 ]
>>310
import java.awt.Font;は、携帯用のコンパイラだからエラーでしたが
クラス名の衝突なんでしょうね。?
Eclipse使ってないことまでバレちゃうんだな。
Eclipse使えと言われているんだが。

313 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:20:36 ]
>>311
何を言っているんだ C のスコープも同じだろ (最近の ANSI C/C++ は違うのか?)。

String ○ = null;
if(〜){
 ○ = "□";
} else if(ー){
 ○ = "△";
}

314 名前:デフォルトの名無しさん mailto:sge [2008/02/16(土) 01:21:09 ]
>>311
おそらくキャストが間違っている

315 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:22:04 ]
>>311
おそらく再起動したら直る

316 名前:デフォルトの名無しさん [2008/02/16(土) 01:23:22 ]
>>311
おそらく激しく勘違い

317 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:25:15 ]
>>312
あーごめん。
おれiアプリとか書いたこと無いから「クラス名の衝突」に関してはウソかもシレン。

IDE使ってないのが解るのは
import java.awt.*;
とかでアスタリスクを使ってるから。
Eclipseだったら使ってるクラスのみをインポートするし
作法的にも衝突が起きないように省略するとかしない。

スタティックインポートとかつかえんよね?iアプリだと。

コンパイルする前からエラー教えてくれるし、俺は初心者であっても使うべきだと思う。
今ならEclipseじゃなくてNetBeansでもいいとおもう。



318 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:26:58 ]
なんか日本語むちゃくちゃだなorz.

まだ会社なんだ・・・・・許してくれ。

319 名前:311 [2008/02/16(土) 01:28:52 ]
初期化してなかっただけでした\(^o^)/

320 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:37:47 ]
>>317
スタティックインポートって聞いたことがありません。
まだインポがうまく使いこなせていませんが、
「Java謎+落とし穴徹底解明」を読んで、クラス名の衝突なのでは、と思いました。



321 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:45:24 ]
Java5から導入されたんだが、
クラス名から書かなくてもメンバを参照できるってだけ。
この場合だと

import static com.nttdocomo.ui.Font.FACE_SYSTEM

って宣言しておけば
Font.getFont(FACE_SYSTEM ・・・
って書けるってだけ。
あんまり便利でもないし、積極的に使う場面でもないな。

322 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 03:18:28 ]
<? extends Hoge> と <? super Hoge> とかってどう違うの?

323 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 03:20:57 ]
Hogeのサブクラスに限定するか、Hogeのスーパークラスに限定するかの違い

324 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 03:23:09 ]
<? extends T> Tの派生クラスだったらなんでもいい
<? super T> Tのスーパクラスだったらなんでもいい

325 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 03:58:46 ]
class A{}
class B extends A{}
class C extends B{}

とした場合、

List<? extends B> には B, C が入れられ
List<? super B> には A, B (Object も) が入れられる

って事で良いの? スーパークラスに限定が必要性ってどういう状況で出るんだろ。

326 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 04:04:25 ]
別にクラスだけじゃなくて、インターフェースも指定できるから、
状況的にはあるとおもうが。

327 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 04:08:26 ]
ん? ゲネリクス の型チェックってコンパイル時の静的な奴だから
<? super B> としても A にキャストした C のオブジェクトは OK になっちゃうんじゃないの?

328 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 04:15:07 ]
>>325
たとえば、java.util.Collections#copyとか。
<? extends T>なListの要素を<? super T>なListにコピーするメソッド。
Tのサブクラスが入ったListはTのスーパークラスを入れられるListにコピー可能。

329 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 04:35:17 ]
List<? extends B> bext1 = new ArrayList<A>(); // エラー
List<? extends B> bext2 = new ArrayList<B>();
List<? extends B> bext3 = new ArrayList<C>();
List<? super B> bsup1 = new ArrayList<A>();
List<? super B> bsup2 = new ArrayList<B>();
List<? super B> bsup3 = new ArrayList<C>(); // エラー

↑これはまぁ分かりますと。

List<? extends B> bext = new ArrayList<C>();
bext.add(new A()); // エラー
bext.add(new B()); // エラー
bext.add(new C()); // エラー

↑何で全滅やねん!

List<? super B> bsup = new ArrayList<A>();
bsup.add(new A()); // エラー
bsup.add(new B());
bsup.add(new C());

↑B のスーパークラスってのは代入の時のみで、
実際に適用するオブジェクトの型を上位に限定するんじゃないのか。

330 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 04:47:20 ]
>>329
>List<? extends B> bext

List<? extends B> ってことは、たとえば List<D> だったら
add の引数は D でなければならないわけで、
その場合は A も B も C も add 出来ないことになる。
? が確定しない限り、安易に add 出来ない。

>List<? super B> bsup = new ArrayList<A>(); 

こっちは、? が D ではありえない。List<Object> か List<A> か List<B> しかない。
List<B> かもしれないことを考えると、A は add できない。
B だったら、List<Object> でも List<A> でも List<B> でも OK だ。



331 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 05:06:04 ]
>>330
前半、全て NG なら何のためにそういった書き方が出来るんでしょうか?
さらに別に参照を受け渡すためか class D extends C{} を作って
List<D> dlist = bext; とかしてみましたがエラーでした。

後半、言語設計する側の理屈で言えばそうですね。使う側の立場で宣言だけ見ると
B のスーパークラスだけ add できるリストなのかと思ってしまいそうですが。

何でこうゲネリックウsって消化悪いんでしょうか。誰ですか設計したのは。

332 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 06:07:25 ]
>>330
なるほど。ありがとうございます。(質問者じゃないけれど)
かなり理解が進みました。

// 代入文を見ると、ついつい右辺の型で考えてしまうのよね…

333 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 10:25:49 ]
独習Javaをやっているんですが、
本が厚すぎてコードを打っているうちにパタンと閉じてしまいます。
何かいい方法はありませんか?

334 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 10:33:37 ]
板違い

335 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 10:55:08 ]
章ごとに小分けして製本する。

336 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 10:57:36 ]
>>333
独習Javaをやらない。

337 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 11:01:09 ]
>>333
お買い上げありがとうございます。
ttp://www.amazon.co.jp/dp/B0001CQAAQ

ワニクリップか洗濯バサミか何かでもいいけど。

338 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 11:25:58 ]
独習Java読んでみたけどあれはひどいね。
J2SE5.0対応を謳ってるくせに、
実際は1.3以前の内容しか載ってない。
例えば、キーワードにassertやenumが無かったり。
よくあんな本が売れるもんだ。

339 名前:333 mailto:sage [2008/02/16(土) 11:26:25 ]
>>337
今、購入しました。
商品が届くまでは本に「やさしいJAVA」を乗せておくことにします。

340 名前:333 mailto:sage [2008/02/16(土) 11:34:57 ]
>>338
それを聞くとモチベーション下がるなぁ。まだ第2章だっていうのに。
このスレには独習にお世話になった人はどのくらいいるのだろうか。



341 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 11:48:09 ]

お世話になったよ。
5.0は対応しているだけで、5.0用ってわけじゃないからなぁ。
1.4系を独習するという事で割り切れば今でも良本。

そもそも5.0系でまともな入門本ってあるかい?

342 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 12:09:23 ]
>>331
Java言語仕様一通り読んだけど、Genericsまわりははっきり言ってわけわからん。
つか、理解を完全に放棄したw
何らかの数学的背景があって、その範疇で整合性を取っているような感じだったが……。


343 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 12:18:37 ]
>>341
assertが載ってないから1.3系だよ。
1.4系の独習なら、他にもっといい本があるだろう。
5.0系の入門書は知らないけど、
1.4系なら結城さんの本とかいいんじゃないの?
5.0に対応してたかも知れないし。

344 名前:デフォルトの名無しさん [2008/02/16(土) 12:22:00 ]
java(TM)plug-inの致命的エラー

XP IE7 導入

JAVAの再インストール
すべてやってもエラーでみれません
対処方法教えていただけませんか?

345 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 12:31:02 ]
>>331
>前半、全て NG なら何のためにそういった書き方が出来るんでしょうか? 

それは、get の方を考えてみればわかる。
List<? extends B> の場合、保持してる要素は少なくとも B か
そのサブクラスであることがわかってるから、get は B を返すことができる。
List<? super B> の場合、List<Object> という可能性があるから、
get は Object でしか返せない。

>List<D> dlist = bext;

それは無理。
bext は List<A> かもしれないし。
List<D> の get は D を返すわけだから、A とか入ってたら困るだろう。

346 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 12:39:20 ]
javaVM1.2以降の時だけGraphics2Dを使いたいのですが、
バージョンをチェックして振り分けてもMSjava1.1だとランタイムエラーになってしまいます。
SUNjava1.1はキチンと振り分けられて動いています。

これって対処できますか?

347 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 12:39:26 ]
理由を聞けばもっともだとは思うが、あんだけ時間かけといて何でこんなgdgdなんだろうか。
まぁ誰の声が一番でかいかを争ってたんだろうというのは想像に難くないけど。

348 名前:346 mailto:sage [2008/02/16(土) 12:55:07 ]
具体的にはClassNotFoundExceptionが出ます。
if文で1.1以下の時だけそのクラスを使わない処理にしたら、
sun-java1.1はエラーを吐かなくなりましたが、
ms-java1.1はエラーで止まってしまいます。


349 名前:hage [2008/02/16(土) 12:57:37 ]
質問です。(コードは以下に連投します)
キャンバス上に JComboBox を混ぜたプログラムを作ってるのですが、
マウスドラッグ中に JComboBox がちらついてしまうのが嫌なのですが、
なんとかなりませんでしょうか?
import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class Test extends JFrame{
private Image offs; private JComboBox cb; private Point mp;
public Test(){ init(); }
private void init(){
Container c = getContentPane();
c.setPreferredSize(new Dimension(300, 300));
c.setLayout(null); // レイアウト無し

// JComboBox の設定
String[] ss = {"hage", "hige", "huge", "hege", "hoge"};
cb = new JComboBox(ss); c.add(cb); cb.setBounds(30, 30, 100, 20);

pack(); repaint(); setResizable(false); setVisible(true);

// ドラッグで再描画
this.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent me){
offs = null; mp = me.getPoint(); repaint();
}
});
}

350 名前:hage [2008/02/16(土) 13:00:11 ]
public void paint(Graphics g){
if (offs == null){
offs = createImage(getWidth(), getHeight());
Graphics g2 = offs.getGraphics();
g2.setColor(Color.BLUE);
g2.fillRect(0, 0, getWidth(), getHeight());
g2.setColor(Color.RED);
if (mp != null) g2.fillOval(mp.x - 2, mp.y - 2, 4, 4);
cb.repaint();
}
g.drawImage(offs, 0, 0, null);
}

public static void main(String[] args){ new Test(); }
}




351 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:01:23 ]
>>346
Graphics2D を使う部分だけ別のクラスに分けておいて、通常のクラス名で new する代わりに
Class#forName でロードして Class#newInstance でインスタンス化すれば大丈夫かと思うが、、、
(Graphics2D を使うクラスの名前は Class#forName の引数以外には一切書かない)
そんな昔の、切り捨てたら?

352 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:12:32 ]
>>349
とりあえず、JFrameに直接描くな。
JComponentを派生して自前のキャンバスクラスを作り、そのpaintComponentで描け。

353 名前:hage [2008/02/16(土) 13:19:04 ]
すいません。書き直しました。本来のプログラムのほうも、構成はこんな感じになっています。
(以下、連投)
import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class Test extends JFrame{
public static void main(String[] args){ new Test(); }
public Test(){ init(); }
private void init(){
MyCanvas canvas = new MyCanvas();
getContentPane().add(canvas);
pack(); repaint(); setResizable(false); setVisible(true);
}
}

354 名前:hage [2008/02/16(土) 13:22:11 ]
class MyCanvas extends JComponent{
private Image offs; private JComboBox cb; private Point mp;
public MyCanvas(){ init(); }
private void init(){
this.setPreferredSize(new Dimension(300, 300));
this.setLayout(null); // レイアウト無し
String[] ss = {"hage", "hige", "huge", "hege", "hoge"}; // JComboBox の設定
cb = new JComboBox(ss); this.add(cb); cb.setBounds(30, 30, 100, 20);
// ドラッグで再描画
this.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent me){
offs = null; mp = me.getPoint(); repaint();}});
}
public void paint(Graphics g){
if (offs == null){
offs = createImage(getWidth(), getHeight()); Graphics g2 = offs.getGraphics();
g2.setColor(Color.BLUE); g2.fillRect(0, 0, getWidth(), getHeight());
g2.setColor(Color.RED);
if (mp != null) g2.fillOval(mp.x - 2, mp.y - 2, 4, 4);
}
g.drawImage(offs, 0, 0, null);
cb.repaint();
}
}
と、途中で気づいたのですが、 paint を paintComponent にすると治りました・・・
paintComponent というのをはじめて知りました orz
勉強になりました。ありがとうございました

355 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:22:14 ]
>>351
Java 系のグループじゃそう言われてるけどなぁ、先日ニュース系の板から秘密で誘導して
統計とって見たら一番多かった Java 6 に続いて 5.0 と MS JVM 1.1 がほぼ同じだったよ。
もっとも、入れてもない奴がダントツだったけど。

356 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 14:52:42 ]
>>351
ありがとうございました。でもさっぱりわかりません。

>>355
ライバルが1.1サポートなんですよ(^^;

どうやらクラスローダーの挙動が違うのが原因なのかな。

357 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 15:03:36 ]
xmlをhttpでpostするサンプルをください!

358 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 15:56:33 ]
本みながらやってるんだけど
Iteratorとかvectorに<E>みたいなのをつけろって
eclipseでやると注意されるのですが
そこにIteretorでStringをあつかうとき<String>みたいに
やったら動きました。
本には書いてないので<>がなにかわかりません。
本だとIteratorでObjectにして好きなクラスを返すみたいになってるけど、
それはできないんですか?

359 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 16:06:35 ]
5.0で導入されたジェネリクス。
本に従ってやるならば、Eclipseでコンパイラレベルを1.4に汁

360 名前:デフォルトの名無しさん [2008/02/16(土) 16:37:08 ]
正規表現で
hoge[0]=○○
という文字列を検索したいのですが
半角[]をどうやって表現すればいいのかわかりません><



361 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 16:45:53 ]
>>355
www.adobe.com/products/player_census/flashplayer/

Flashのアドビの発表でjavaの普及率が84.6%ってなってるけど?
これだけあれば個人的には十分。

2ちゃんねらは過去にFlashのリンクを何度も踏まされてるから
インストール率が高いとかかも。

362 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 16:57:59 ]
>>350
正規表現としては\でエスケープすればOK
Javaの文字列としては・・・
\\[で[にマッチするということになるな

363 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 17:33:57 ]
>>356
ClassNotFoundが出たら1.1だと判断すれば?

で、>>351が言うように、1.1に存在しないクラスを直接参照しないようにする。

364 名前:デフォルトの名無しさん [2008/02/16(土) 17:40:55 ]
>>362
ありがとうございます!
てっきり\ひとつだけだと思ってました><;

365 名前:デフォルトの名無しさん [2008/02/16(土) 17:59:34 ]
Derbyの使い方について教えてください

366 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 18:23:57 ]
>>365
このスレでDerbyの使い方講座を開講しろっていうのか?
Apacheのページへ行ってDerbyのドキュメントを読め。webで検索しろ。
ここで質問するならもっと質問を具体的にして絞り込め。

367 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 18:35:23 ]
>>365
(1) derby.jarファイルにクラスパスを通す
(2) Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); を呼ぶ
(3) DriverManager.getConnection("jdbc:derby:test;create=true") で Connection を取得する
(4) 好きなSQL文を実行する
(5) Connection を閉じる
(6) DriverManager.getConnection("jdbc:derby:;shutdown=true"); を呼んでシャットダウンする

368 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 20:40:35 ]
>>331
T な変数には、<? extends T> なものを代入できるし、
<? super T> な変数には、Tはものを代入できるので、
返値に対してコバリアント的にしたい場合は、extends にして
引数に対してコバリアント的にしたい場合は、super にする

369 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 21:27:43 ]
制御文について質問なのですが
if(a||b||c&&d)というのはaもしくはbまたはcかつdがtrueの時if文を実行ですよね?
ではif(a||b&&c||d)というのはaもしくはbがtrueかつcまたはdがtrueの時if文を実行。
ということで良いんですか?この仮定が合ってるとすると条件式の順番にも気をつけなくてはいけませんよね?

370 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 21:28:43 ]
>>356
ClassNotFoundException は、それを実行しようとしているかどうかに関わらず
それが分かったらいつVMが投げても構わないって仕様じゃなかったっけ。

それぞれの実装を別のクラスローダで読み込むのがいいんじゃまいか



371 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 21:35:42 ]
>>369
日本語でおk

372 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 21:47:12 ]
>>369
Java とは関係なさそうだけど。
* と + に優先順位があるのと同じ。
a || b || c && d => a || b || (c && d)
a || b && c || d => a || (b && c) || d

373 名前:369 mailto:sage [2008/02/16(土) 21:51:17 ]
今一良く分かりませんorzここから先はGoogle先生に聞いてみます。
ありがとうございました。

374 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 22:34:42 ]
>369
もう少し解りやすく、他人に伝わるよう書く努力が欲しい。

if(a||b||c&&d)というのは、『a』もしくは『b』または『cかつd』のいずれかがtrueの時にif文を実行ですよね?
ではif(a||b&&c||d)というのは、『aもしくはbがtrue』かつ『cまたはdがtrue』の時if文を実行。
ということで良いんですか?

質問はこういう意味? なら>>372
ググるときは、『Java』、『演算子』、『優先順位』でOK。

375 名前:デフォルトの名無しさん [2008/02/16(土) 22:45:04 ]
古いデータと新しいデータを比較するプログラムを作ってます
データを取得してテキスト形式で保存→新たに取得して比較→二日以上たったデータは削除
という感じなのですが、二日たったことを判断するのはどういう風にすればいいのか悩みます。。
ちなみにデータ取得時の日時は年/月/日/時/分まで保存してます

簡単に日にちで比較すると31日とか30日の判断もあるし、うるう年とかもあるので悩んでます><
いいアイディアはないでしょうか?


376 名前:375 [2008/02/16(土) 22:50:32 ]
良い方法をひらめきました!
どうもすいませんでした><;

377 名前:デフォルトの名無しさん [2008/02/16(土) 23:15:14 ]
ひらめいたならいいけど、そういうのはミリ秒で保存しといた方が良いよー

378 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 00:07:31 ]
>>361
そんないつの時期に取ったか分からん統計出されても知らんがな。 Win に MSJVM が
デフォルトインストールだった時代や JavaScript のアプレット enable フラグだけ見てたら
それくらい行くだろうね。少なくとも 30 秒以上滞在してアプレットが起動しない環境は
倍以上居る。

379 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 00:35:10 ]
HashMapのKeyと値にそれぞれ変数から代入したんですが保存されないみたいなんです
上記の方法で次々に値を代入していくにはどうすればいいですか?

380 名前:デフォルトの名無しさん [2008/02/17(日) 00:41:28 ]
>>379
HashMapにaddするときに使ってる変数を変に使いまわしていないか?
HashMapに代入されるのは結局の所は参照なので参照先を書き換えると変わるぞ



381 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 00:55:40 ]
>>380
ありがとうございます
参照先が変わってるのかなあ
やろうとしていることは HTMLで入力した値を
サーブレットに渡してintにランダム変数を入れて
それをhashmapのkeyにして値も代入
一回目はうまくいくんですけど二回目以降に値が
リセットされてしまいます

382 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 01:04:26 ]
>>381
…?
HashMap のインスタンスが毎回生成されてる、なんてオチは無いデスヨね

383 名前:デフォルトの名無しさん [2008/02/17(日) 01:12:22 ]
>>382
た、たぶんそれです
ありがとうございますOrz
もう少しがんばってみます

384 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 01:15:16 ]
サーブレットとか知る前にやることがある気がするんだが。

385 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 01:18:07 ]
自分でもまったくそう思いまする

386 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:15:50 ]
手元の W-ZERO3 に JBlend が乗ってるんで暇つぶしに何か作れないかと思ったんだけど
いかんせん組み込みっぽいのはやったことがなくて。MIDP 2.0? とやらに対応させれば
良いんでしょうか? それとも専用の SDK でも買わなければけいないんでしょうか?
携帯の開発情報はそこそこありますがそれと同じと思って良いんでしょうか。

387 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:21:17 ]
「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
PATHの設定がどうしても出来ないためこれが出てしまっていると思うんですが、
>>1に書かれているURLが消えているのか飛べないです。
他に本も色々なサイトも見ましたが分かりません。
どこか分かりやすく説明しているところは無いでしょうか?

388 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:28:48 ]
ttp://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLD,GGLD:2005-13,GGLD:ja&q=java+path+%e8%a8%ad%e5%ae%9a

389 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:44:22 ]
ありがとうございます。
しかしやはりどうも落としたバージョン(jdk-6-doc-ja)
だと上手くいかないようなので、申し訳ないのですが、質問を変えます。
改めてj2sdkを落としたいんですが、場所がどこなのか分かりません。
Javaの公式サイトから探しましたが、日本語に変換しても
別のページに飛ぶとまたすぐ英語になってしまうので、読めませんし訳が分かりません。
具体的なURLを直接教えて下さると大変助かります

390 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:45:34 ]
> jdk-6-doc-ja

コーヒー返せwww



391 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:47:56 ]
やはり何かおかしかったですかねw
やたら重いんで何かおかしいと思ったんですが。
でも英語だらけで分からないんですよ、ほんと。
国際派じゃないとこれから生きていけそうもないな

392 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:54:44 ]
doc

document

393 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:55:53 ]
国際派じゃなくても>>388見れば普通は何が言いたいか解る

ググれカス

394 名前:387 mailto:sage [2008/02/17(日) 11:56:23 ]
困ったな…調べてみてはいるんですが、どうもありそうにないですね。
ほんとに日本語でおkという感じなんですが…読めない。
やさしいJAVA2版に書かれていたURLも消えているようですし、
今の主流はもうj2sdkじゃないんでしょうか?

395 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:58:13 ]
>>389
確かにJDKとは書いてありますが、ドキュメントの方を取得されたようで。

Java SE Downloads
ttp://java.sun.com/javase/ja/6/download.html

リンク先には、JDK, J2EE, NetBeans, JRE と並んでいますが、
それぞれの説明を読む等で適切なものを選んでインストールしてください。

>>391
ま、ゆっくりやってくださいな。好きこそ物の上手なれとも言いますし。
アルファベットが読めないとか辞書を触ると目が見えなくなるとか言う人なら
更に教育を受けるか、病院に行った方が良いと思いますが。

396 名前:387 mailto:sage [2008/02/17(日) 11:58:16 ]
やっと見つかった…検索の仕方がまずかったみたいです。
お騒がせしました

397 名前:387 mailto:sage [2008/02/17(日) 12:00:23 ]
>>395
ご立派な嫌味をどうもw
知識が豊富で羨ましいです

398 名前:デフォルトの名無しさん [2008/02/17(日) 12:01:48 ]
本当ご立派な

399 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 12:06:24 ]
>>397は人格に問題ありすぎだな。
あんなに懇切丁寧なレスを嫌味だなんて。

というか、有用な情報を見いだす目が著しく欠如しているってことか。

JDK落とすだけでこれだから、この先は想像を絶するいばらの道が待っていることだろう。


400 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 12:13:34 ]
初心者相手にいちいち優位に立とうとするなよ。



401 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 12:43:04 ]
Java初心者ってか対人関係初心者だけどなw

402 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 12:47:28 ]
おまいも十分そう見えるが。

403 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 12:57:40 ]
>>402
>>387本人乙。

404 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:14:00 ]
そう思いたいのですね。

405 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:36:39 ]
そのほうが面白いし。

406 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:37:24 ]
そうか。

407 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:48:17 ]
うん。

408 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:53:49 ]
こ。

409 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:16:04 ]
ころころうんこ

410 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:17:25 ]
食物繊維取れ



411 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:39:49 ]
普通にSunのページわかりにくい

412 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:46:13 ]
非開発者向けではどう見てもないよな。
母さんにあそこから最新の JRE 落として入れろとはとても言えない。

413 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 16:01:35 ]
ほんと、SUNにはもっと普及率を上げるための努力をしてもらいたい。
まずはインストールをもっと簡単にして。

414 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 16:50:00 ]
>>1 のリンク死んでるな。というかサーバが停止してるようだが。

415 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 17:55:48 ]
>>412
もっともです。テンプレっぽいのに追加で。

**** 開発環境が必要の場合は ****
>>5

**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja/

416 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 17:59:58 ]
ム板なんだし JRE の落とし方はどうでも良くない?
かえって混乱すると思う。

417 名前:369 mailto:sage [2008/02/17(日) 18:54:29 ]
なるほど!何とか理解できました。>374 さん thx

418 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 18:59:59 ]
>>416
ところがEclipseを使うのにJDKは不要だ罠

新人研修等ではじめからEclipseでスタートする場合、
JDKを入れたことがないという人も出てきそうなご時世だね。

419 名前:デフォルトの名無しさん [2008/02/17(日) 20:16:41 ]
Arrays.sortを使って数値の配列をソートしたんですが
これってソート後の配列の添え字情報とかも取得できないんですか??

たとえば
ソート前
a[0]= 2
a[1]= 1
a[2]= 3
 ↓ ソート
ソート後
a[1]= 1
a[0]= 2
a[2]= 3

の[1],[0],[2]の情報を取得したいですー!何か方法ありませんかー!

420 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 20:25:55 ]
その添え字情報を何に使うんだ?
ただ単に安定なソートがしたい、ってだけなら、

List<Integer> lst = Arrays.asList(2, 1, 3);
Collections.sort(lst);

でOKじゃない?



421 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 20:35:50 ]
class Hoge { public int ソート前のインデックス; public int 値; }
こういうラッパーをかぶせてからソートすればいいんじゃね

422 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:09:07 ]
>>419
一番高速なのは、quicksortのコードを自分でいじって実装することかな。
値をスワップするところで、添え字もスワップすればいい

423 名前:419 [2008/02/17(日) 21:09:52 ]
>>420,421
返答ありがとうございます

hoge[0] = 3423
hoge[1] = 4123
hoge[2] = 4142

a[0]= 2
a[1]= 1
a[2]= 3

みたいにhogeにID、aに値を保存していて、それぞれ添え字で=を確認してたんです
(つまり添え字が0ならID;3423→2みたいにです)
あとaには同じ値がたくさんはいっているのでソート後に値で確認もできないんです。。。

もしかして他にいい保存方法あったりしますかね^^;

424 名前:デフォルトの名無しさん [2008/02/17(日) 21:10:48 ]
>>422
やっぱ自分で実装するのが一番早いですかね?。。

425 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:16:03 ]
クラス使えよ
class IDAndValue { int id; int value; }
ソートはComparatorを自分で実装すればいいだけ

426 名前:デフォルトの名無しさん [2008/02/17(日) 21:21:10 ]
>>425
ありがとうございます
やってみます!

427 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:27:25 ]
Comparableでもいいよ

428 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 22:31:34 ]
ファイルを後ろから読み込むにはどうすればいいのでしょうか?
BufferedReaderのreadLineのように一行ずつ読み込めるものがあると良いのですが、、、

429 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 22:45:34 ]
そんなに大きくないならListに全部読み込んで、後ろから取り出せば?

430 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 22:45:43 ]
多分だけど、どうしてそれがしたいかを説明すると
よりハッピーになると思う



431 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 23:05:38 ]
>>378
>>361のページに↓のようにいつ統計を採ったのかを書いてある
Millward Brown survey, conducted December 2007.
See Methodology Section for details on the Millward Brown study.

432 名前:デフォルトの名無しさん [2008/02/17(日) 23:24:14 ]
public ShortTimer t;
t.start();
これでタイマーが開始しましたが、再びここで
t.start();
すると実行時エラーになります。
そこで t が t.start(); されているかを知る方法を教えてください。

433 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 00:01:19 ]
>>432
>>2 Good Luck!

434 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 01:07:55 ]
428です。
後ろに行くほど新しい情報が書いてあるログファイルなので後ろから読み込めたらいいなと。
容量はそれほど大きくもないのですが、、、

435 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 02:22:54 ]
>>434
それは tail コマンドと同じ機能っぽい印象を受けました。

そして、あまりに便利なコマンドだから、かっこいいことをしてるハズだ
と、そう思って検索してみました。すると…

勘違いしていました。tail.c
ttp://programamemo2.blogspot.com/2008/02/tailc.html

バッファサイズ決めて、(最初はファイル長を割って余った分だけ)ファイルから読み込んで
改行文字数を数えて、必要数たまったら、そのバイトから最後まで出力っぽい感じ。
ファイルが更新された時の処理も、そのブログ記事にあるとおりで、なんともはや…

436 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 02:36:16 ]
んなもん tail の動き見てりゃ 1 秒ごとに監視してるだけくらい想像付くべ。
ファイルのケツから数kB〜数十kB ごとに読み込んで行数カウント、必要行数に
達したらそこから開始位置まで出力、達しなければその前のブロックを評価が定番。

437 名前:デフォルトの名無しさん [2008/02/18(月) 08:34:15 ]
class Test {
int sum(int[] date){
int r=0;
int i;
for(i=0; i<date.length; i++)
r += date[i];
return r;
}
}

public class sample34{
public static void main(String[] args) {
Test test =new Test();
int[] date1 = new int[]{1,2,3,4,5};
int result;
result=test.sum(date1);
System.out.println(result);
}
}
これで15が返ってくる理由教えてください。
私の考えはsum(int[] date)ここに{1,2,3,4,5}を入れるわけですよね?
でdate.lengthとなっているから、その個数5だと思うんですけど
すいません意味不明で・・・

438 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 08:54:32 ]
配列のインデックスは0から始まる

439 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 09:21:12 ]
>>437
配列型の変数 date の length は int型で、この場合の値は 5 です。よって
L5: i が 5 未満の場合、L6 へ進む。そうでなければL7へ進む。
L6: r と date[i] を加算し、r にその結果を入れる。(i に 1 加える。L5へ進む。)
L7: r を返す。
// 何をしてるかと言えば、配列の各要素の値を加算した値を返してるだけ。

よって、Test のインスタンスメソッド sum(int[]) に
date1 を入れて実行すると 15 が返される。
// 各要素の値、1 から 5 までを加算した値

後は手元の本などで for文の仕組みを調べ直してください。

蛇足。制御文 if, else, for, while, do-while の "{ }" を省略した場合、
直後の1文が制御対象になりますが、見易さや事故防止等の為、
省略しないことをお勧めします。

440 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 09:26:03 ]
data.length
  Σ data[i]
  i=0



441 名前:デフォルトの名無しさん [2008/02/18(月) 09:36:09 ]
ありがとうございます。分かりました!!!
これからも勉強頑張っていきます!

442 名前:デフォルトの名無しさん [2008/02/18(月) 13:40:38 ]
TreeMapでデータをソートしたのですが
Entryで得たvalueとkeyをStringにキャストしてInteger.parseIntをつかってから
int型にしてint型変数に格納しようとするとkeyだけキャストできないというエラーが出てしまいます

原因がわかりませんー・・・

443 名前:デフォルトの名無しさん [2008/02/18(月) 14:01:46 ]
OSのタイムゾーン設定では日本時間なのに
JavaのデフォルトタイムゾーンがGMTになっています。
デフォルトのタイムゾーンってどこをいじれば変更できるのでしょうか?
環境はJava1.6.0_04 Windows 2003 です。

444 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 14:06:03 ]
>>442
コードを見せてみれ
エラーメッセージも正確に

445 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 14:07:15 ]
>>442
キャストできないエラーというのは、「Stringにキャストして」の部分なのでしょうか?
1.5以降ならジェネリクスをお勧めします。

原因としては TreeMap に格納する際に何型を使ったのか、が怪しいところです。

446 名前:442 [2008/02/18(月) 14:14:34 ]
public class Sort {
public Sortdata sort(Difference dif){
int i = 0;
String change_sm = null;
String change_play = null;
Sortdata data = new Sortdata();
NumericComparator c = new NumericComparator();
TreeMap map = new TreeMap(c);
while(i < dif.number){
change_sm = Integer.toString(dif.sm[i]);
map.put(new Integer(dif.replay[i]), change_sm);
i++;
}
Set s = map.entrySet();
i = 0;
Iterator it=s.iterator();
while(it.hasNext()){
Map.Entry e = (Map.Entry) it.next();
change_sm = (String) e.getValue();
change_play =(String) e.getKey(); //getKeyだけキャストがおかしいというエラーがでる
data.sm[i] = Integer.parseInt(change_sm);
data.replay[i] = Integer.parseInt(change_play);
System.out.println(data.sm[i]+":"+data.replay[i]);
i++;
}
return data; }
class NumericComparator implements Comparator {
public int compare(Object o1, Object o2) {
int result=((Integer)o1).compareTo((Integer)o2);
if(result==0) result=1;
return result;
} } }

447 名前:442 [2008/02/18(月) 14:16:22 ]
すいません初心者でコピペで作ったようなプログラムなのでどこを載せればいいのかわかりませんでしたTT
エラーは

Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at Sort.sort(Sort.java:34)

行は書き込むときに編集してしまったので違うかもです
change_play =(String) e.getKey(); //getKeyだけキャストがおかしいというエラーがでる
とりあえず↑を指してます

448 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 14:21:41 ]
そらだめだよ。
Integerで格納したんだから、Stringにはキャスト出来ない。

449 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 14:24:24 ]
>>446
Mapにputするときはkeyの部分をInteger型で入れている。
Integer型なのにString型へキャストしようとするからエラーになる。

450 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 14:31:02 ]
>>446
重ねてJ2SE1.5(5.0)以降ならジェネリクスをお勧めします。
ついでに autoboxing も機能するので更に見やすくなります。

> map.put(new Integer(dif.replay[i]), change_sm);
key が Integer, value が String。そりゃ key でキャストエラーになります。

以下蛇足。
・変数は使う直前で宣言すること。
・元が int型なら Integer だけにしておけば良いのに。
・初期化、比較、更新があるなら while ではなく for を使うように。
・ついでに初期化部で int i = 0; で宣言すること。(添え字の使いまわしは厳禁)



451 名前:デフォルトの名無しさん [2008/02/18(月) 14:36:27 ]
みなさんありがとうございます!
ジェネリスクも試してみようと思います><

452 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 14:37:10 ]
>>443
set | find "TZ"
結果はカラ?

453 名前:443 mailto:sage [2008/02/18(月) 14:45:46 ]
>>452
レスありがとうございます。
TZ=JST
とでます。

454 名前:デフォルトの名無しさん [2008/02/18(月) 15:37:48 ]
ネイティブインターフェイスの使い方を教えてください

455 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 15:42:34 ]
>ネイティブインターフェイス
JNIのこと?

456 名前:デフォルトの名無しさん [2008/02/18(月) 15:55:04 ]
はい

457 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 15:59:29 ]
>>454
これでも読んどけ
java.sun.com/j2se/1.5.0/ja/docs/ja/guide/jni/spec/jniTOC.html

458 名前:デフォルトの名無しさん [2008/02/18(月) 16:05:55 ]
dllの作り方教えてください

459 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:10:42 ]
それはJavaじゃないよ

460 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:11:22 ]
わからない問題があったので教えてください

public class Test extends Thread{
private int i, j;
public synchronized void run(){
for(int count = 0; count < 2; count++){
i++; j++;
System.out.print("i=" + i + " : j=" + j + " ");
}
}

public static void main(String[] args){
new Test().start();
new Test().start();
}
}

A. i=1:j=1 i=1:j=1 i=2:j=2 i=2:j=2
B. i=1:j=1 i=2:j=2 i=1:j=1 i=2:j=2
C. iとjの値は出力されるが表示順は一意ではない

Testクラスは二つでき、runメソッドはそれぞれで動くため
AにもBにもなりえる(実際は何回やってもBになるが)と思ってCにしたんですけど答えはBでした
Aにはならないんでしょうか?

解説には「run()メソッドをsynchronized指定しているためrun()メソッド実行中は
他に制御が移ることなく処理されます」とあります





461 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:20:05 ]
答はCであってます。
printの後ろに、
try { Thread.sleep(1000); } catch (InterruptedException e) {}
を追加して実行してみてください。

462 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:29:21 ]
たぶんスレッドでの(i=1:j=1 i=2:j=2)の組の出力は保証されるということなのだろうけど、
どっちのスレッドかわからんよな、これ。
Aは間違い。でも、結果的に出力は必ずBになるなw

463 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:31:40 ]
えー、保証すらされないだろ

464 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:33:05 ]
>>461-462
ありがとうございます
安心しました

465 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:51:26 ]
フルパスからファイル名を取り出す関数とかあれば
教えてください。
WinAPIのGetFullPathName()のようなやつがあれば・・・

466 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:53:02 ]
File#getName()

467 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:54:52 ]
>>466
快速的回答謝謝。

468 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:58:18 ]
wikiのリンク切れてる・・・
だれか原因わかる人います?

469 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 17:05:24 ]
リンク切れてるっつーか、ホスティングしてる wikiroom が
最近落ちまくり & ほったらかし & メール送っても無応答状態らしい。

470 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 17:07:32 ]
>>469レスサンクス!

まじか…javacの設定方法探そうと思ったのに…



471 名前:デフォルトの名無しさん [2008/02/18(月) 18:15:45 ]
lass Test {
int m;
int n;

Test(int i,int j) {
m=i;
n=j;
}

Test(Test testC) {
m= testC.m;
n= testC.n;
}

int sum(int i,int j){
return m + n + i + j;
}
}
public class sample38{
public static void main(String[] args);
Test test = new Test(10, 5);
test.m++;
test.n++;
Test test2 = new Test(test);
System.out.println(test2.sum(2, 3));
}
}
このプログラムの中の
Test(Test testC) {
m= testC.m;
n= testC.n;
がある意味がよくわかりません。テキストを読んでいてもよく分からないので教えてください。

472 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 18:20:34 ]
いわゆるコピーコンストラクタってやつ

473 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 18:25:06 ]
コンストラクタのオーバーロードじゃね

474 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 18:27:44 ]
Java 的には clone() だな。

475 名前:デフォルトの名無しさん [2008/02/18(月) 18:33:51 ]
JNIはどうすんの

476 名前:デフォルトの名無しさん [2008/02/18(月) 18:35:42 ]
>>471です。処理はどんな手順で進んでいくのですか?

477 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 18:58:35 ]
どこまでわかるのか書け

478 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 19:08:06 ]
オブジェクトはフィールド、メソッド、クラス、を持つとよく聞きますが、実際にオブジェクトを生成する際、フィールド以外の物も新たに作るのでしょうか?
それとも状態を持つのはフィールドだけなのでメモリにはフィールドのみを生成するのでしょうか?

479 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 19:13:44 ]
フィールドのみと考えていい

480 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 19:13:48 ]
クラスとメソッドはほぼ一体。最初にクラスを参照したときにメモリ上に現れ static 宣言
されたフィールドとメソッドを持つ。非 static フィールドはインスタンスごとに作成される。



481 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 19:16:33 ]
>>479,>>480
素早く分かりやすい回答ありがとうございました。
ずっと気になっていたことだったので本当にすっきりしました。

482 名前:デフォルトの名無しさん [2008/02/18(月) 19:23:08 ]
>>477
Test test = new Test(10,5);
これを上の
Test(int i,int j) {
m=i;
n=j;
に入れて、つぎにmとnに1を足すまでは分かる。

Test(Test testC) {
m= testC.m;
n= testC.n;
これどんな処理してるん?


483 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 19:28:09 ]
testCに渡された既存のTestオブジェクトの中身を
新しく作ろうとしてるTestオブジェクトにコピーしてる

484 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 19:35:35 ]
Javaのコントロールパネルの出し方教えてくれ
どこにもなくて困ってる

485 名前:デフォルトの名無しさん [2008/02/18(月) 19:36:35 ]
test

486 名前:デフォルトの名無しさん [2008/02/18(月) 19:37:48 ]
どういうときにコピーコンストラクタは使うの?

487 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 20:09:37 ]
オブジェクトをコピーしたいとき

488 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 20:14:13 ]
必要なクラスやライブラリが増えるとクラスパスの設定が面倒になりますが、
自分が書いたソースのクラスファイルを格納してるフォルダに全て突っ込んじゃえばいいと思うんですが、
この考え方は間違ってますか?
例えばDBのJDBCドライバを使うにはCLASSPASSに追加するかtomcatのcommon/binに入れたりするけど
前者の場合、無関係なプログラムにも影響を及ぼすし、後者の場合はコンテナを変えたらまた作業が増える。
自分が作ってるサーブレットのクラスファイルを保存してる場所にJDBCドライバを入れちゃえば全て解決な気がする。

489 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 20:23:03 ]
Javaのアルゴリズム本はどれがオススメですか?

490 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:36:42 ]
>488
間違ってる
クラスが増えれば増えるほどクラスパスの設定の方が、クラスの競合とかの考慮より楽になる
そんなことよりIDE使っているなら面倒な作業にはならんだろ



491 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:41:45 ]
プリミティブ型も実はクラスある?
判別のために例外的に形だけあるってことかな
int.classやらがあって驚いたわ。

492 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:47:16 ]
Integer.TYPE

493 名前:デフォルトの名無しさん [2008/02/18(月) 23:14:44 ]
bolean b;
b=true;
?ここを教えてください。
(b==false)が新になる。

bolean b;
b=false;
?ここを教えてください。
(b==true)が新になる。

494 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 23:17:06 ]
b=!b;

495 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 23:24:17 ]
boolean

496 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 03:06:22 ]
>>491
プリミティブ型はあくまでプリミティブ型で、そのクラスといったものはない。
あるのは、プリミティブ型を表すClassクラスのインスタンスで、各ラッパークラスで定義されている。
例えば、リフレクションAPIでメソッドの引数の型を指定する時などに使ったりする。

497 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 03:18:57 ]
初心者用スレとはいえ質が低過ぎる
答える気すら起きん

498 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 08:17:12 ]
画像ファイルを手動で振り分ける簡単なソフトを書いた。
表示して、設定してあるフォルダに振り分けるだけの簡単なソフトだ。
とりあえず、予定の作業は出来るようになった。

だが、アニメーションGIFの再生がおかしいことに気づいた。
「透過色」というのが上手く扱えていないようだ。

Toolkit.getDefaultToolkit().getImage("hoge.gif");で入手したImageを
JPanelから導出したクラスのpaint(Graphics g)でdrawImageにかけているだけなのだが、
何か足りないようだ。

足りない部分は簡単に補える?
それとも、意外に面倒?

499 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 08:29:49 ]
ペイントコンポーネンツ

500 名前:デフォルトの名無しさん [2008/02/19(火) 12:26:35 ]
JSFの使い方を教えてください



501 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 13:44:08 ]
>>500
ja.wikipedia.org/wiki/F-35_(%E6%88%A6%E9%97%98%E6%A9%9F)

502 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 15:50:00 ]
すみませんが、質問です。

クラス継承についてですが、親クラス、子クラスに共通して、同名のパブリッ
クなインスタンス変数があり、その初期値は親と子で違うとします。

子クラスのインスタンスを作り、それを親クラスの型の変数に代入した場合、
その変数のインスタンス変数には、親の価が入っています。

public class Parent {
public String hoge = "親";
}

public class Child extends Parent {
public String hoge = "子";
}

Parent x = new Child();
System.out.println(x.hoge); // => 親
System.out.println((new Child()).hoge); // => 子

要するに、パブリックなインスタンス変数は、子によってオーバライドできな
いのです。メソッドと違って。

どうしてこれは、こういう言語仕様になっているのでしょうか?
メソッドのようにオーバライドできてもいいと私は思うのですが。


503 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:18:57 ]
どうしてだろう・・・

Parent[] xArray = { new Child01(), new Child02(), new Child03()}
for( Parent x : xArray ) System.out.println(x.hoge);

みたいに同じ変数名にアクセスして子独自の値が取れたら便利そうだよね。

504 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:21:48 ]
実装は面倒だし(というか汚くなる)、効率の問題もある。
何より、変数をそんなに便利(に見える)にしてしまったら、
マルチスレッドとか大変になる。
オブジェクト指向の原則も何もあったもんじゃなくなるだろうが。

505 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:24:14 ]
>>502
子の方に新しいhogeを定義しなきゃいいんじゃ?

public class Parent {
public String hoge = "親";
}
public class Child extends Parent {
public Child(){ hoge ="子"; }
}
Parent x = new Child();
System.out.println(x.hoge); // => 子

506 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:24:37 ]
フィールドの隠蔽は普通に出来てるんだから面倒も効率も関係ないだろ。

507 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:25:24 ]
Javaはフィールドは静的解決だからだろ

以上

508 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:28:02 ]
>>502
言語規定には、「フィールドアクセスのために動的に表検索する必要がないので
Javaは素直な実装でも効率が良い。遅延束縛と上書きはインスタンスメソッドが
使用されるときだけJavaで利用可能となる。」とある。
ttp://www.y-adagio.com/public/standards/tr_javalang/15.doc.htm#37055

509 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:29:50 ]
付いていけん
馬鹿にも分かるように誰か説明してくれよ

510 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:31:04 ]
フィールドは静的に(つまりコンパイル時に)解決できるから効率いいよね、ってこと。
>>506は何か勘違いしているから無視してOK



511 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:32:28 ]
スレッドとか関係ねーじゃん。

512 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:34:33 ]
フィールドアクセスにはsynchronizedで制限かけられないだろーが

513 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:36:19 ]
つまり静的解決にすれば効率いいけど柔軟性に欠ける
動的にすれば柔軟性は上がるが実行時の効率が落ちる
そこでバランス取ってメソッドだけ動的にしたってこと?

514 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:37:23 ]
フィールドを動的解決するとどんないいことがあるのか例を教えてくれ

515 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:38:39 ]
まともな人と、ちょっと鈍い人と、どうしようもない馬鹿がいるっぽい

516 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:38:57 ]
>>514
答:全部メソッドでできるので不要

517 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:40:31 ]
何か主張があるようだが強烈な表現力のなさで何を言いたいのかさっぱりわからん。
「フィールドアクセス」 は行為であって主体じゃないから synchronized でモニタ取れるわけないだろ。
this かそれに順ずるインスタンスに synchronized かけろよ。

518 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:44:34 ]
Hoge hoge = new Piyo();
synchronized (hoge) {
hoge.x = "";
}
いちいちクライアントサイドでこんなことしたく無いだろ?ってことが言いたかったんだが

519 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:47:53 ]
>>518
それ hoge.x が Piyo のフィールドかスーパークラスのフィールドかは全く関係なくね? って事。
synchronized(hoge.x) とした時にどっちのモニター取ってるか分からなくなるというならともかく。

520 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:50:39 ]
>>514
悪いことの方は、以下の場合コンパイルエラーを出さないといけなくなる。

class S { int x = 0; int z() { return x; } }
class T extends S { String x = "1"; }



521 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:52:26 ]
それは関係ないけど、フィールドアクセスが動的だと、
何も考えずに使ってしまうようなやつが絶対いるだろ?
で、518のように書くやつなんているのか、と考えたときに、
いないだろうな、と。

522 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:58:11 ]
フィールドがサブクラスから書き換えられないのって
単純に、フィールドはなるべく隠蔽されるべきって考え方からだと思ってたけど違うの?

523 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 17:00:49 ]
書き換えられるよ、finalとかprivateじゃなければ

524 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 17:02:02 ]
書き換えってオーバーライドのことね

525 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 17:04:11 ]
親のフィールドをそのまま継承してるだけと、オーバーライドするのと、どう違うのか説明すれ

526 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 17:10:17 ]
>>522
それは新しい話題? カプセル化の話?

上書き(override, オーバーライド)は動的処理。
仮にフィールドの動的処理が可能なら、カプセル化は簡単に崩壊する。
// メソッドを上書きせずに、フィールドだけ上書きすればよい。

527 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 17:13:37 ]
privateメソッドがオーバーライドできないのと同じように、
privateフィールドもオーバーライドできなければ、別にカプセル化は壊れない
オーバーライドしたいのはprotectedとかpublicだけだろ?
隠蔽だかカプセル化だかとは別問題かと

528 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 17:24:14 ]
誰が正しいことを言ってるのかカオスだわ。と言いつつ私は526だったり。
言語規定を貼る作業に戻りますm(_ _)m

529 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 17:32:47 ]
さっぱりわからん
誰かねんどろいどに例えてくれ

530 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 17:34:36 ]
状況が逆なら逆で適当に自分流の解釈始めるだけだから、
決めの問題的な話題なんてどうでも良いんじゃないのか。



531 名前:502 mailto:sage [2008/02/19(火) 18:38:57 ]
どうやら収束したようなので、お礼を言わせていただきます。皆さん、ありが
とうございました。

意外に思うかもしれませんが、自分は最初の質問以外、一件も書き込んでいま
せん。自分の分からない点は全部、他の人がツッコんでくれました。このスレ
は時々利用させていただいてますが、こんなのは初めてです。

レスの全部が理解できたとは言えませんが、大変勉強になりました。

532 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 19:06:45 ]
>>486
Javaによるアルゴリズム事典
おすすめ

533 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 21:35:53 ]
開発ではeclipse使ってるんですが、
わざわざeclipse立ち上げるまでもないちょっとしたファイルを作ったり編集したりするためのエディタが欲しいです。
具体的には、html、java、jsp、ビルドxml、単なるテキスト文…こういったファイルを編集します。
メモ帳ではあまりにも使いづらいので他を探してるのですがオススメのものは無いでしょうか

534 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 21:53:56 ]
豊丸

535 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:00:01 ]
サクラエディタ

536 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:14:30 ]
>>533
eclipseを立ち上げっぱなしにしておけばいいのでは?

537 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:14:58 ]
vim だな。

538 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:33:13 ]
Mule。
馴れれば結構使える(と思う)けど馴れるまでが大変(だろうな)

539 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:34:12 ]
eclipseのエディタ機能だけ使うことが出来る?
わざわざプロジェクトとか作らないで

540 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:38:44 ]
>>538
× Mule
○ Meadow




541 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:40:44 ]
viとかvimって極度に嫌ってる人がいるよね
史上最悪のエディタだとか

542 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:42:03 ]
んなこと言ってる時点で Sun の Java 使う資格はない。

543 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:42:55 ]
史上最悪のコードというのなら分かるが
エディタとしては中毒性が高い。

544 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:08:38 ]
viとvimって何が違うの?

545 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:13:26 ]
機能差が歴然。

546 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:22:55 ]
eclipseの補完機能が優秀過ぎるから他のどのエディタ使っても物足りなく感じる

547 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:29:55 ]
お尋ねします。
SortedSetを使い、ソートさせ、表示にはtoStingを使っているのですが、"[""]"の表示が出てしまいます。このカッコを表示させない方法はありますか?
もしくは、違った方法でソートの結果を出力させられるのでしょうか?
教えていただける方、よろしくお願いします。

548 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:32:43 ]
set.toString().substring(1, set.toString().length() - 1)

549 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:44:12 ]
>>548さん、早速ありがとうございます。
最後にもう1つだけ質問ですが、2つの結果を出す際に、1つ目の結果と2つ目の結果の間の","を消す方法はあるのでしょうか?
たびたび申し訳ありませんがよろしくお願いします。

550 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:45:14 ]
set.toString().substring(1, set.toString().length() - 1).replaceFirst(",", "")



551 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 01:52:59 ]
>>539
Remote System Explorerプラグイン入れれば、ローカルや、Telnet、FTP、SSH経由で
ファイルシステムにアクセスできる。

>>547
toStringはデバッグ出力などで使うものであって、
特定の書式にしたいのなら、自力で出力すべき。

552 名前:539 mailto:sage [2008/02/20(水) 12:32:29 ]
>>551
ありがとうございます!まさに探してた機能でした。

553 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 13:12:04 ]
tomcatの起動について質問です。
現在linuxにtomcatを入れて開発を行っているのですが自動起動に失敗してしまいます。OS起動後に直接起動スクリプトを実行すると正常に起動します。

環境とバージョン
CentOS5.1 32bit/jdk6/tomcat6
ログには以下のような出力があります。
文字制限に引っかかるため一部省略します。
--
2008/02/20 11:47:00 org.apache.catalina.connector.Connector pause
致命的: プロトコルハンドラの一時停止に失敗しました
java.net.SocketException: Network is unreachable
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:209)
at org.apache.jk.common.ChannelSocket.unLockSocket(ChannelSocket.java:486)
at org.apache.jk.common.ChannelSocket.pause(ChannelSocket.java:283)
at org.apache.jk.server.JkMain.pause(JkMain.java:681)
at org.apache.jk.server.JkCoyoteHandler.pause(JkCoyoteHandler.java:153)
2008/02/20 11:47:01 org.apache.catalina.core.StandardService stop
情報: サービス Catalina を停止します
以下試したこと。
・自動起動を一番最後に持って行った(rc3.d/S99tomcat)
・F/Wの自動起動を停止
どなたか解決策をご存じの方がいたら教えてください。

554 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 13:14:38 ]
eth0 起動してんのかよ。

555 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 13:31:36 ]
>>554
eth0にグローバル、eth1にローカルを設定しています。

また、iptablesにてグローバルは25番のみIN/OUTを許可、ローカルは全て許可に設定しています。
iptablesの自動起動も止めてみたのですが、解決しませんでした。

556 名前:デフォルトの名無しさん [2008/02/20(水) 19:00:05 ]
アプレットに関する質問です。
アプレットを使って画像を表示させたいのですが、
アプレットビューアを起動するコマンドを打つと上手く表示されるのですが
html形式のファイルを直接開くと画像が切れて表示されてしまいます。
htmlファイルを直接開いたときに画像が切れないように表示させるには
どうすればいいでしょうか?
よろしくお願いします。

557 名前:553 mailto:sage [2008/02/20(水) 19:11:40 ]
自己解決しました。
環境変数がちゃんと読めていなかったようです。

558 名前:デフォルトの名無しさん [2008/02/20(水) 20:17:04 ]
マイナスをプラスに反転させたいのですがどのように書けばいいのでしょう?
例えば-5を5にしたいです。
どなたかおたすけを・・・

559 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 20:18:13 ]
x = -x;

560 名前:デフォルトの名無しさん [2008/02/20(水) 21:17:13 ]
Javaマルチスレッドで明示的にLockを書ける方法ってあります?

lock();
func();
unlock();

みたいな



561 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 21:44:07 ]
どうとでも書ける

562 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 21:45:15 ]
とりあえず計数セマフォ
java.sun.com/javase/ja/6/docs/ja/api/java/util/concurrent/Semaphore.html

563 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 21:49:58 ]
>>592
それだ。サンクス

564 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 22:17:07 ]
>>324
Tが一つのクラスだけだったらスーパークラスは一つだけですよ。

スーパーインターフェースなら妥当でしょうか

565 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 22:42:05 ]
>>564
superclassとdirect superclassの違いも知らないのか?

566 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 22:43:08 ]
direct superclass と言いたいだけとちがうか。

567 名前:556 [2008/02/20(水) 23:10:18 ]
もう一度質問してもいいでしょうか(質問文が悪かった??)
アプレットを作るにはxxx.javaとxxx.htmlという2つのファイルを作りますよね
xxx.javaをコンパイルしてxxx.htmlというファイルに対してAppletviewerの
コマンドを実行してやるとその際に表示されるアプレットは画像が切れずに
キレイに表示されるのですが、xxx.htmlというファイルをクリックして
直接表示しようとすると画像が切れてしまいます。
画像が切れないように表示するためにはどうすればいいのでしょうか?
よろしくお願いします。


568 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 23:13:13 ]
ソース

569 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 23:13:40 ]
xxx.htmlでアプレット用に指定している幅と高さが画像を表示するには小さかったってオチ?

570 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 00:19:41 ]
if(1<=x<=18 & y==0){〜処理
↑見たいな感じで"<="を使いたいんですけどどうしたらいいですか?



571 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 00:32:13 ]
1 <= x && x <= 18

572 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 00:32:32 ]
日本語にすると
xは1〜18のいずれかで、かつ
yは0
ってこと?

if( (x >= 1 && x <= 18) && y==0 )

573 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 01:36:17 ]
>>569
ああ画像が切れるってそういう意味なのか。

574 名前:デフォルトの名無しさん [2008/02/21(木) 10:26:40 ]
質問です。

HashMap<Integer,String>[] map = new HashMap<Integer,String>[3];
という配列を作ろうとしたときに、コンパイルしようとしたら

汎用配列を作成します。

というエラーが出てしまいます。調べてみてもさっぱり理解できません。
よろしければご教授お願いします。

575 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 10:39:29 ]
>>574
ジェネリクスはコンパイル時のチェック機能。
コンパイルした後は HashMap という型情報しか存在しない。
よって、その型の配列が作成される。

576 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 11:48:49 ]
つ ArrayList<HasMap<Integer, String>>

577 名前:デフォルトの名無しさん [2008/02/21(木) 15:47:43 ]
tomcat5のJDBCレルム機構に対して、サーブレット内からプログラマが任意のタイミングでユーザ認証を済ませる方法を探しています。
contextA/auth/AuthServlet
contextA/noauth/NoAuthServlet
web.xmlで/auth/*を認証ゾーンとして指定。
NoAuthServlet内から、プログラマーが自前でユーザIDとパスワードを使って/auth/*ゾーンの認証を済ませたいのですが
どうすればできるでしょうか?
認証を済ませる=HttpServletRequest#getUserPrincipal() != nullという意味です。


578 名前:デフォルトの名無しさん [2008/02/21(木) 16:00:26 ]
質問です。
初心者丸出しの質問ですみません。

同じパッケージ内のクラスを使うにはどうしたらいいのでしょうか?
よろしければご教授お願いします。


579 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 16:15:59 ]
>>578
それらのパッケージ名とクラス名は何でしょう?
それと、何を何処までやって出来なかったのか。

580 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 16:37:00 ]
>>578
ところでマルチポストって知ってる?



581 名前:デフォルトの名無しさん [2008/02/21(木) 17:15:41 ]
質問です。
正三角形の中点を中心に1回転させるにはどうすればいいですか?
マルチスレッドとアフィン変換を利用して回転させたいんですが、角度を細くするほど誤差?で変形してしまいます。今のとこ30゜ぐらいが限界です!
下手文ですみません

582 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 18:03:50 ]
独学でjavaを勉強してるのですが、データベースとの連携の手段が色々あり過ぎてどれを使えばいいのか分かりません。
JDBC、EJB、Hibernate、これらはどういう関係にあるんでしょうか?
例えばEJBを実装すればJDBCやHibernateは要らないのでしょうか?

自分が調べた限りでは、
実際の開発ではEJBが普通だが、小規模な開発ではHibernateを使い、もっと単純なものならJDBCで済ます
って印象なんですがこんな感じで当たってますか?

583 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 18:07:28 ]
当たってね

584 名前:デフォルトの名無しさん [2008/02/21(木) 18:26:46 ]
abstract class Test {
abstract void calc(int i);
void printNum(int i) {
System.out.println(i);
}
}
class ExTest extends Test {
void calc(int i) {
int j=i*i;
printNum(j);
class ExTest2 extends Test {
void calc(int i) {
int j=i+i;
printNum(j);
public class sample46x {
public static void main(String[] args) {
int i =5;
int j;
Test[] ex_test = new Test[2];
ex_test[0]=new ExTest();
ex_test[1]=new ExTest2();
for(j=0; j<2; j++);
ex_test[j].calc(i);

これなんですけどコンパイルはできるんですけど、実行するとこんなの出ます。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at sample46x.main(sample46x.java:28)
どこが原因なんでしょうか?

585 名前:デフォルトの名無しさん [2008/02/21(木) 18:36:37 ]
}は省略してあります

586 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 18:38:24 ]
>>584
>for(j=0; j<2; j++);
これだな

587 名前:デフォルトの名無しさん [2008/02/21(木) 18:51:20 ]
ありがと!気づかなかった!集中せねば!!!
渇っ!

588 名前:デフォルトの名無しさん [2008/02/21(木) 19:23:00 ]
EJBから同じホスト内のbatをたたきたいんですが、
どういう方法があるでしょうか。



589 名前:デフォルトの名無しさん [2008/02/21(木) 19:24:44 ]
RMIの使い方について詳しく教えてください

590 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 19:30:03 ]
>>588
java.lang.Runtime#exec

>>589
java.sun.com/javase/ja/6/docs/ja/platform/rmi/spec/rmiTOC.html



591 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 19:33:26 ]
>>590
Runtime#execはEJBからは使えないはず

592 名前:デフォルトの名無しさん [2008/02/21(木) 19:40:43 ]
>591
なんで?使えるよ、ふつーに

593 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 20:52:38 ]
>>582
DB関連のAPIが林立しているのは、APIの進化変遷の跡。
最初から使い分けを意図して作られた物じゃない。
初期のEJBは詰め込みすぎで設計がクソで生産性が低いので、
小さくない規模の開発でも、Hibernateなどの他のマッピングフレームワークは使ってたよ。

594 名前:デフォルトの名無しさん [2008/02/21(木) 21:38:57 ]
質問させてください。

FileInputStream fis = new FileInputStream(file);
FileChannel srcChannel = fis.getChannel();
// 一つのデータは 2 byte (16 bit)
ByteBuffer buffer = ByteBuffer.allocateDirect(length * 16);
buffer.order(ByteOrder.LITTLE_ENDIAN);
// 読み込み
srcChannel.read(buffer);
srcChannel.close();
fis.close();
buffer.clear();
int ch1, ch2;
for(int i = 0; i < 1000; i++){
ch1 = buffer.get() & 0xff;
ch2 = buffer.get() & 0xff;
data[i] = (ch1 | (ch2 << 8)) & 0xffff;
}
buffer.clear();

int[] data という配列に
バイナリファイル中の符号なし short を読み込みたいのですが、
getShort() をつかったら、符号ありで読まれてしまったので、上のようなコード
でやっています。
処理が遅い(無駄計算が多い)気がするのですが、もっと良い方法はありますでしょうか


595 名前:デフォルトの名無しさん [2008/02/21(木) 22:10:42 ]
"แอมเพอร์แซนด์"

上記のような文字列が部分的に含まれているファイルを
SQLに入れる作業をしているのですが、
これを読み込むとunrecognized tokenエラーが出ます

このような文字の扱いはどのようにすればよいでしょうか


596 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 22:12:11 ]
>>594
data[i] = buffer.getShort() & 0xffff
でダメかね?


597 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 22:33:16 ]
>>595
ファイル読み込むときのエンコーディング正しく指定してる?

598 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 22:33:39 ]
JAVAとC#どっちがリバースエンジニアリングに強い?
どっちも変わらない?

599 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 22:46:14 ]
そんな高度なことできるやつがそんな質問するとは思えないのだが

600 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 22:47:40 ]
強いってのはやりやすいって意味か?
それともやられにくいって意味か?

基本的にJavaはネイティブにしない限りソースへ復元は簡単な方
C#はどんだけネイティブ系使っているか次第



601 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 22:53:41 ]
逆コンパイルはどっちも超簡単でほぼ完璧だよ

602 名前:582 mailto:sage [2008/02/21(木) 23:00:01 ]
>>593
ありがとうございます。
色んなベンダから別々に色んな技術が生まれてカオスな状態という感じでしょうか
デフォになってるものも無いようなので自分で色々試してみます。

603 名前:594 [2008/02/21(木) 23:02:25 ]
>>596
ああ、なるほどー。と思って実装してみたら、逆に少し遅くなりました。(データは正しく読めてました)
以下のようなコードを書いてベンチマークしても、やっぱり遅くなってましたorz
public class ReadTest {
public static final int length = 3800 * 2600;
public static int[] data = new int[length];
public static ByteBuffer buffer;
public static void main(String[] args){
try{
buffer = ByteBuffer.allocateDirect(length * 16);
buffer.order(ByteOrder.LITTLE_ENDIAN);
for(int i = 0; i < 20; i++){ read1(); read2(); read2(); read1(); System.out.print(".");}
long t = System.currentTimeMillis();
for(int i = 0; i < 10; i++){ read1(); }
System.out.println("\r\n" + (System.currentTimeMillis() - t) + " ms");
t = System.currentTimeMillis();
for(int i = 0; i < 10; i++){ read2(); }
System.out.println((System.currentTimeMillis() - t) + " ms");
} catch (Exception e){}
}
public static void read1() throws Exception{
FileInputStream fis = new FileInputStream(new File("hoge"));
FileChannel srcChannel = fis.getChannel();
for(int i = 0; i < 4; i++) fis.read(); // ヘッダ
buffer.rewind();
srcChannel.read(buffer); srcChannel.close(); fis.close(); // 読み込み
buffer.clear();
for(int i = 0; i < length; i++){ data[i++] = buffer.getShort() & 0xffff;}
}
/* read2 は読み込み部分が古いほう(省略) */
うーん、不思議ですねえ。 getShort() は遅いんでしょうか。。。
でかい画像を大量に処理していて、読み込みが25%くらい閉めているので、短くしたい・・

604 名前:594 [2008/02/21(木) 23:04:31 ]
最終行の data[i++] は data[i] のミスです

605 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 23:05:21 ]
>>600
やられにくいって意味でとらえてください

>>601
そうですか、使いやすくて良い言語だけど自分が作ったソフトが逆コンパイル
されるのは困るな

企業で開発するときは何か対策しているのでしょうか?

606 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 23:17:50 ]
なんで困るんだ?

607 名前:デフォルトの名無しさん [2008/02/21(木) 23:28:14 ]
>>597
ありがとうございます
UTF-8で読み込んでいます

System.out.println("แอมเพอร์แซนด์");
これでエラーになるのはなんででしょうか

608 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 23:29:10 ]
แอมเพอร์แซนด に一致する情報は見つかりませんでした。

609 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 23:57:00 ]
こんばんは。
CDを管理するプログラムを作っているのですが、mainクラスとCDクラスがあります。
管理する数は、5つでその分のCDインスタンスをつくり、価格と名前のを入力しコレクションで管理すると言うプログラムです。(重複可で名前でソートさせます)
このプログラムを作ってみたのですが、Collections.sort(list);としたのですが、下線のびっくりマークのエラーが出てしまいます。
内容は、『型の安全性:型Collectionの総称メソッドsort(List<T>の未検査の呼び出しsort(List)がありました』と表示されてしまいます。
このようなエラー表示にはどのような対処をしたら良いのでしょうか?
アドバイスお願いします。

610 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 23:59:26 ]
>>609
-source 1.4
をコンパイルオプションに付ける



611 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 00:01:32 ]
ああ、IDE使ってるのか
JDKレベルを1.4にする

612 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 00:06:39 ]
>>609です。
Eclipse 3.1を使ってます。5.0から1.4にするという感じでよいのでしょうか?
コンパイルオプションの変え方がわからないので調べてみます。


613 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 00:42:51 ]
>>612
JDK5以降で言語仕様に入れられたジェネリクスというものに関わるエラー。
「java ジェネリクス」で調べてみて。
eclipseならリファクタリング機能の中に、
ジェネリクスを使用していないソースを使用するように変更してくれる機能もあるけど、
とりあえず、ジェネリクスを理解してからにしたほうがいい。

614 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 00:45:18 ]
>>612です。
アドバイス、ありがとうございます。
ひとまず、1.4に変更したところちゃんと動作しました。ジェネリクスの勉強もしてみます。

615 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 01:30:47 ]
java覚えて女性関係のメリットになったことってありますか?
真剣な質問です
また、女性関係に強い言語は何でしょうか?

616 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 02:04:39 ]
つまんね
他でやれ

617 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 03:18:36 ]
Javaの勉強をしている初心者なのですが
今コードを書くためのエディタを探しています。
よいエディタを紹介していただけませんか?

618 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 05:53:51 ]
vivi

619 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 09:05:49 ]
>>605
Javaと.NETどちらとも、逆コンパイラはある。
どっちも中間言語を使うタイプなので、逆コンパイラを作りやすいらしい。
そしてその対策として、obfuscator(難読化ツール)がどちらにもある。
単に、シンボル名(クラス名、メソッド名、変数名)をランダムな文字列に
置き換えて、逆コンパイラが出力したソースを読みにくくする、
ってだけだけど。

620 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 10:00:34 ]
ジェネリクスについての質問が多いのは
初心者には難しいので入門書の段階では取り扱わないからか
それとも基本1.4で5.0要素は申し訳程度にしか書いてない本が
未だに主流だからか



621 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 10:21:52 ]
直観的でなくて罠が多いからな

622 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 11:27:58 ]
www.xlsoft.com/jp/products/jet/index.html
このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか?
もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが

623 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 11:38:09 ]
>>620
俺のとこでは依頼される仕事も未だに1.4全盛なんだよなー。他の会社の人に聞いてもそうだという。5.0に移行するのはいつになることやら。。

624 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 11:43:56 ]
>>622
Javaをネイティブ化したいだけならGCJもあるよ
速くなるとは限らないが
Javaが見た感じ重いのはSwingとかライブラリのせいもあるから…

625 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 11:48:02 ]
165 名前: 以下、名無しにかわりましてVIPがお送りします。 [sage] 投稿日: 2008/02/22(金) 11:45:46.56 ID:Q0PQrlKw0
お前らに朗報
pc11.2ch.net/tech/
この板の適当なスレに

www.xlsoft.com/jp/products/jet/index.html
このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか?
もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが

と書き込んだらデブスがデブゲバうpするってよお


626 名前:デフォルトの名無しさん [2008/02/22(金) 11:50:08 ]
170 名前:以下、名無しにかわりましてVIPがお送りします。[sage] 投稿日:2008/02/22(金) 11:47:31.63 ID:Q0PQrlKw0
お前らに朗報
pc11.2ch.net/tech/
この板の適当なスレに

www.xlsoft.com/jp/products/jet/index.html
このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか?
もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが

こう書き込まないとお前らがキーボード打ってる指があさって腐るそうだ
腐って死ぬぞ??

627 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 12:37:40 ]
ジェネリクスを使うだけなら難しいか?
Foo[] と ArrayList<Foo> が初心者的には理解しやすくなると思うんだけど
単なる入門書の怠慢だと思う

628 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 14:03:27 ]
始めるんだけど、どの本がオススメですか?

629 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 15:01:06 ]
初心者で失礼します。どう修正していいかわかりません。宜しくお願いします。

import java.util.Scanner;

public class tes
{
public static void main(String[] args)
{
char stuname;
Scanner kb = new Scanner(System.in);
stuname = getStuN("Please enter the student name: ", kb);
}
//get studnt name
public static char getStuN(String str, Scanner kb)
{
System.out.print(str);
char sname = kb.nextLine();
System.out.print(sname);
return sname;
}

}
---------
tes.java:15: 互換性のない型
検出値 : java.lang.String
期待値 : char
char sname = kb.nextLine();
^


630 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 15:08:50 ]
>>629
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Scanner.html
nextLine の戻り値型は String です。
よって sname の型宣言を String にして、それ以降の記述を適切に修正してください。



631 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 15:26:12 ]
>>630
できました! ありがとうございましたm(_ _)m

632 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 15:42:51 ]
625 名前:デフォルトの名無しさん[sage] 投稿日:2008/02/22(金) 11:48:02
165 名前: 以下、名無しにかわりましてVIPがお送りします。 [sage] 投稿日: 2008/02/22(金) 11:45:46.56 ID:Q0PQrlKw0
お前らに朗報
pc11.2ch.net/tech/
この板の適当なスレに

www.xlsoft.com/jp/products/jet/index.html
このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか?
もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが

と書き込んだらデブスがデブゲバうpするってよお


626 名前:デフォルトの名無しさん[] 投稿日:2008/02/22(金) 11:50:08
170 名前:以下、名無しにかわりましてVIPがお送りします。[sage] 投稿日:2008/02/22(金) 11:47:31.63 ID:Q0PQrlKw0
お前らに朗報
pc11.2ch.net/tech/
この板の適当なスレに

www.xlsoft.com/jp/products/jet/index.html
このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか?
もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが

こう書き込まないとお前らがキーボード打ってる指があさって腐るそうだ
腐って死ぬぞ??

633 名前:デフォルトの名無しさん [2008/02/22(金) 18:03:04 ]
JAVAからpostgresSQLを操作するプログラムを作成しております。
JAVAからpostgresのでーたをバックアップする方法を知りたいのですが、
JDBCを利用して、postgreSQLのpg_dumpを操作する方法はあるのでしょうか。

また、pg_dump以外にも、JDBCにてデータのバックアップを出来る方法があれば、
ご教授お願いいたします。

634 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 18:19:27 ]
>>633
DatabaseMetaData#getTablesで全テーブルを取得して全行クエリしてファイルに書き出すとか・・・
それですべて復元できるかわからないけど

Runtime#execでpg_dump呼び出す方が簡単な気がする

635 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 18:33:59 ]
>>634
>DatabaseMetaData#getTablesで全テーブルを取得して全行クエリしてファイルに書き出すとか・・・
それは遅そうだw

>Runtime#execでpg_dump呼び出す方が簡単な気がする
わしもそう思う。
何かの操作が必要だったら、シェルかバッチの中でJavaプログラムで操作したのちに
バックアップを走らせた方が効率が良さそうだが。

636 名前:633 [2008/02/22(金) 18:44:15 ]
634,635
どうもありがとうございます。
早速、試してみます。

637 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:07:30 ]
今どきJDBCなんて使う必要あるの?

638 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 21:32:33 ]
教えてください。

環境:Oracle JDBC

PreparedStatementとResultSetを使用し、
SELECTを実行しています。

通常問題ないのですが、バインド変数(?)が11個以上あるSQLを実行した場合、
かつ、レコードのヒット件数が11件以上を超えている場合、
11件目のデータ取得時に「配列の範囲」を超えた、という例外が発生します。
バインド変数はsetStringで1から順に設定し、
設定内容についても問題ないです。
※デバッガで確認済み

SQL自身は問題なく、SQLExceptionが発生しているわけでもありません。

何か回避策はあるのでしょうか?


639 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:03:15 ]
まずスタックトレースを貼れ。その話し振りだと単なるバグの可能性が素敵連

640 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:09:44 ]
Cで言うところの構造体の代わりにクラスを使っています。
内部変数はInt型が2つ、Boolean型が1つの小さなクラスです。
クラスの2次元配列として2000x2000のインスタンスを生成するコードを書いたら
インスタンスを生成する箇所(以下)で
for(int j=0;j<2000;j++){
 for(int i=0;i<2000;i++){
  box[i][j] = new Box();
 }
}

java.lang.OutOfMemoryError: Java heap space
というエラーが出てしまいました。
メモリの使い方が下手なんだと思うのですが、
よい対処法が思いつきません。
何か手はあるでしょうか?



641 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:32:58 ]
>>640
簡単に計算。integer型として。
4byte * 2 * 2000 * 2000 => 32byte * k * k => 32Mbyte
boolean型はどれだけ食うのか分からないが、さらに4-16Mbyte

ということで、先の値を目安にし、ヒープを明示的に確保します。
以下ページから java のページ、-Xmx や -Xms オプションを参照のこと。
ttp://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/tools.html

他の方法もあるとは思いますが、安易な解決法として。

642 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:23:53 ]
>>641
ありがとうございます。
そういうやり方もありそうですが、
もう少しコードの書き方について考えてみます。

643 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:24:12 ]
tomcatは内部でjspをコンパイルするためにjdkを使っていると聞いたのですが
tomcatをインストールする場面ではjdkではなくjreのパスを指定しますよね
その後もtomcatの設定でjdkの場所を教えたつもりは無いのですが
jspをちゃんとコンパイルしてくれてるみたいです。
tomcatはどうやってjdkを認識してるんでしょうか?

644 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 00:47:22 ]
>>644
JSPのコンパイル用にIBMのJDK積むようになった。

昔はJDKの指定が必須だった。4までだったっけ?

645 名前:643 mailto:sage [2008/02/23(土) 00:52:46 ]
>>644
なるほど〜そういうことだったんですね。
モヤモヤしてたのがスッキリしました。
ありがとうございました。

646 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 02:17:56 ]
>>640
Int型というのは存在しない
Booleanの代わりにbooleanを使ったらどうか?

647 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 03:40:02 ]
>>640
試してみた
Sun JRE 1.6.0_04
Box[2000][2000] の場合 107MB
int[2000][2000][2] + boolean[2000][2000] の場合 110 MB

648 名前:デフォルトの名無しさん [2008/02/23(土) 03:59:50 ]
new って複数のスレッドから同時に実行できるんですか?

649 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 04:06:06 ]
>>648
意味が分からん
どういう状況を想定しているのか擬似コードでもいいからシンプルな例で示せ

650 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 04:06:21 ]
>>647
まあなんですか、[2000][2000][2] ではなく、[2][2000][2000] をお勧めします。
ついでに用途が合えば boolean[][] ではなく、java.util.BitSet を。



651 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 04:10:57 ]
>>648
コンストラクタはスレッドセーフかって意味なら答えは一般的にはノー

652 名前:648 mailto:sage [2008/02/23(土) 04:16:48 ]
作ったプログラムのどうも動作が遅くて、スレッドダンプをみてみたらほとんどのスレッドが
コンストラクタ
java.lang.AbstractStringBuilder.AbstractStringBuilder(int capacity)内の
value = new char[capacity];
↑のところでブロックしてたので、非同期でnewは呼べないのかなと思ったんですが
ひょっとするとcapacityが大きいときだけ同期呼び出しだったりします?

653 名前:648 mailto:sage [2008/02/23(土) 04:18:31 ]
>>651
つまり非同期には呼ばれないってことですね。

654 名前:デフォルトの名無しさん [2008/02/23(土) 04:40:17 ]
hou


655 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 04:46:29 ]
>>652
ヒープに配列を生成する過程でロックされてそうだ。
仮に非同期に実行できたとしても体感時間は変わらないと思う。

仮にヒープの拡張に時間が掛かってるなら、
最初からヒープを必要な分大きくしておけば少しは早くなる。

あとは初期にやたら時間が掛かるなら、確保するサイズを小さくして、
最大確保を遅延させるのはどうか。
確保するたびに前のゴミが出るのと時間が掛かるけど。

656 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 09:57:09 ]
>>652
確保するサイズが大きいとスレッドごとのプールから取れなくなるから同期が必要になる
というかそんな大きなStringBuilderをそんな頻繁に確保するってことがまずい気がする
GC起きまくってないか?一度 -verbose:gc で見てみ
確保したのを使いまわすと改善するんじゃないかな

657 名前: [2008/02/23(土) 11:14:43 ]
j2dk1.4.2を使っているのですが、
javacが使えず、環境変数の設定をすると、一度できたんですが、
2回目からできなくなりました。
しかも変数の設定を変えていたので元のがどんなのだったかがわかりません…。
環境変数の、Pathを教えて下さい。

658 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:16:24 ]
>>657
>>1

659 名前: [2008/02/23(土) 11:29:59 ]
読んでもよくわかりません。どなたかー

660 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:51:13 ]
>>659
本当に読んだか?具体的にどの手順がわからないんだ
java.sun.com/javase/ja/6/webnotes/install/jdk/install-windows.html#path



661 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:00:48 ]
>>655
>>656
なるほど!スレッドごとのプールから取れなくなるからってことですか。
このStringBuffer自体はデバッグのための文字列だったのでここの部分を取り払ったら
ロック争奪がなくなってスムーズに動きました。
ありがとうございました!

662 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:05:43 ]
>>647
>>650
いろいろありがとうございます
Intのうち一つはflagで3種類の値しかとらないのでboolean2つで頑張って
もう一つのIntをshort型にするとだいぶ減りそうな気がしました。
後で実装してみようと思います
boolean2つのところはBitSet?を使えばいいのですかね。。
後でjavadoc読んでみます。

663 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 16:05:39 ]
下記の構造でメインクラスtestから、VelocityのgetTemplateをコールしたところ、エラーが出ました。
test.jar
+-dir1
 +-test.class
 +-templ.properties

これで、
> java -jar test.jar
と実行すると
ResourceManager : unable to find resource 'templ.properties' in any resource loader.
というエラーが出ています。

test.jarのおかれているディレクトリにtempl.propertiesがあるか?を探しているようで、
test.jarの中を探していないみたいです。
Main-Class:はdir1.testと指定してあるのでmainはコールできてます。

なにか指定し忘れてることあるんでしょうか。。。お願いします。

664 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 16:25:09 ]
BufferedImageのディープコピーの仕方を教えてください

665 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 16:30:43 ]
もう1回BufferedImageを作れ

666 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:04:50 ]
Javaの初心者にExceptionのことを教えたいのですが、
J2SEのクラスの、Exceptionをthrowするメソッドで、
一番基本的で分かりやすいものって何だと思いますか?
コンストラクタじゃない普通のメソッドでお願いします。

667 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:11:09 ]
ぬるぽ

668 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:11:27 ]
NumberFormatException

669 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:19:51 ]
いや、Exception自体じゃなく、
Exceptionをスローするメソッドです。
例えば、FileOutputStream#write(byte[] b)とか。

670 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:24:40 ]
>>666
// Exception 自体は throw も catch もするな。を教える
実行時例外なら、Integer.parseInt(String) で NumberFormat
普通のヤツは意図的に起こすだけなら ClassNotFound とか IO とか

NumberFormat は良い例ではないのよね。
実行時例外の割りに、catchされるように組み込まれてるし。

まあ、別に無理に教える必要は無いんじゃないかな
それよりも知らないメソッドは API doc で調べるように仕込むべし。



671 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:38:36 ]
ありがとうございます。
実行時例外じゃなくて、
IOExceptionとか、メソッド呼び出すと絶対try catchしないといけないヤツです。

672 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:42:38 ]
new FileInputStream
ファイルがなければFileNotFoundExceptionを投げる

673 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:45:47 ]
って、コンストラクタはだめなのか
じゃあ Socket#connect
接続できなければ IOException

674 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:55:35 ]
コンストラクタでないわかりやすいもの・・・
ImageIO#read(File) とか?

675 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 18:50:51 ]
Stream系のIOExceptionじゃね?
try-catch-finally と合わせて覚えるのがセオリーかと

676 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 19:40:42 ]
みなさんありがとうございます。
finnalyも合わせて、Stream系で説明してみようと思います。

677 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:55:38 ]
IOException もいいが ParserConfigurationException も捨てがたい

678 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:54:30 ]
学校でちょっとプログラムに興味あって色々自分で勉強してみたんですがJavaって簡単過ぎてつまらないんですがこんなので仕事になるんでうか?
HTMLも簡単だったし仕事では何やってるんですか?

679 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:58:40 ]
オナヌー

680 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:00:51 ]
>>678
ひとつだけいえることはつまらないと思う人は
これを仕事にしてはいけませんよ。



681 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:01:05 ]
簡単か難しいかと、仕事になるかならないかは、関係ないからな
なにせ「単純労働」っていう言葉もあるくらいだ

682 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:01:06 ]
言語は簡単でいいんだよ

683 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:40:01 ]
27歳になってJAVAで開発チームに入る事になりました。
今までの業務開発経験は、COBOL3年あとはVBAぐらいですかね・・。
4年程前にSUNJAVA1.4の資格は取得したんで基礎的な事は大丈夫と思います。
実際に業務で役に立つ為に、他にどんな勉強しておけばいいですかね?
とりあえずTOMCATとMYSQL入れて、なんか作ってみようかなと思ってますが、
業務レベルでは全く無意味なんでしょうね・・

684 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:52:48 ]
tomcatとmysqlが何で無意味なの?普通に業務レベルで使うのに。
とりあえずeclipseで簡単なwebアプリでも作ってみたら?

685 名前:683 mailto:sage [2008/02/24(日) 01:06:18 ]
やっぱ業務でも使うんですね。
いや、簡単な事やっても業務レベルでは通じないかなぁと。
でも基本的な事分かってると大分入りやすいですよね。
適当にDB構築してWEBアプリ作ってみます。


686 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:32:01 ]
適当にDB構築できちゃうレベルなら心配無用だと思うけど…

687 名前:デフォルトの名無しさん [2008/02/24(日) 08:34:52 ]
class calcException extends Exception {
}

public class sample53 {
public static void main(String[] args) {
try {
calc(2,2);
}catch (calcException e) {
System.out.println("calcExceptionが"+"throwされました");
}
}

static void calc (int i,int j) throws calcException {
if(i == j) {
calcException ce = new
calcException();
throw ce;
}
System.out.println(i*j);
}
}
これなんですけど、
if(i == j) {
calcException ce = new
calcException();
throw ce;
この部分でどういう処理を行っているのですか?

688 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 08:50:07 ]
普通に例外なげてるんじゃね

689 名前:デフォルトの名無しさん [2008/02/24(日) 09:23:16 ]
throw ceってなんですか?
もしiとJの値が同じなら、オブジェクトを作成して、その後はなんですか?

690 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 09:30:37 ]
だから例外投げてるんだよ



691 名前:デフォルトの名無しさん [2008/02/24(日) 10:10:44 ]
たびたび申し訳ないが、
static void calc (int i,int j) throws calcException
この部分はこの式は例外を投げる式ですよってこと?

692 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:14:30 ]
このメソッドはcalcExceptionを投げ得ますよってこと。

693 名前: [2008/02/24(日) 10:27:48 ]
>>660
[追加します]とありますが全部変えてしまいました。全部どう記述するのか聞きたいです。

694 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:33:26 ]
>>693
つ ttp://okwave.jp/qa2940675.html

695 名前:デフォルトの名無しさん [2008/02/24(日) 11:13:00 ]
>>692ありがとうございました><

696 名前: [2008/02/24(日) 11:30:48 ]
wbemの場所ってわからないことないですか?

697 名前: [2008/02/24(日) 11:36:33 ]
設定方法わかりませーん

698 名前:デフォルトの名無しさん [2008/02/24(日) 11:57:29 ]
@F8押す→3秒待機→F8押す
Bこの処理を500回ループした後
AF7押す→1秒待機→F8押す→1秒待機
C処理Aを30回繰り返し@に戻る

こういうプログラムはjavaだったら可能でしょうか?
ゲームに使うのでVBみたいにF8押したことにしますってのではなくて
実際に押すことが重要なんです

699 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:09:13 ]
>>698
>>96
VB が何をやってるのか知らんが、
人がキーを押したときと同じような結果をシミュレートすることは可能。
// 自動演奏みたいにキーボードが動く……誰かそういうヤツを作ってください。

700 名前:デフォルトの名無しさん [2008/02/24(日) 12:16:39 ]
VBではSENDKEYなるメソッドがあり
それを使うとたとえば

F8押した時、1+1の処理をするというプロシージャがあった場合

SENDKEYによって1+1を呼び出すことはできますが
実際にF8を押すという動作がウィンドウズ内で行われている
というわけではないようです
(押した時のようにキーをへこませるといわけではありません。念のため)

ようするに、キーを押した後の処理ではなく、キーそのものを押したことを
キーを押さずにウィンドウズに認識させたい



701 名前: [2008/02/24(日) 12:22:46 ]
設定方法わかりませーん

702 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:25:25 ]
>>700
なるほど。イベントのトリガーとして登録させてるようなものですかね。
ということで、96 を実行することで少しは感動してもらえそうな予感。

703 名前:デフォルトの名無しさん [2008/02/24(日) 12:31:18 ]
どうやらjavaなら可能なようですね

勉強します

704 名前:11 mailto:sage [2008/02/24(日) 12:31:27 ]
画面A,B,Cとあり画面CのB画面終了ボタンを押すとB画面のみ終了させたいと考えてますが
さっぱりわかりません。どなたかご教授願います。
/*ソースここから*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Gamen extends JFrame implements ActionListener{
private JButton b1 = new JButton("B画面表示");
private JButton b2 = new JButton("終了");
private JButton b3 = new JButton("C画面表示");
private JButton b4 = new JButton("B画面終了");
public void GamenA() {
getContentPane().setLayout(new FlowLayout());
getContentPane().add(b1);
getContentPane().add(b2);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("A画面");
setSize(200, 100);
setVisible(true);
b1.addActionListener(this);
b2.addActionListener(this);}
public void GamenB() {
getContentPane().setLayout(new FlowLayout());
getContentPane().add(b3);
getContentPane().add(b2);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("B画面");
setSize(200, 100);
setVisible(true);
b3.addActionListener(this);
b2.addActionListener(this);} //続きます

705 名前:704 mailto:sage [2008/02/24(日) 12:33:21 ]
すみません>>704は11さんとは無関係です。 続き
public void GamenC() {
getContentPane().setLayout(new FlowLayout());
getContentPane().add(b4);
getContentPane().add(b2);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("C画面");
setSize(200, 100);
setVisible(true);
b4.addActionListener(this);
b2.addActionListener(this);}
public void actionPerformed(ActionEvent e){
if(e.getSource() == b1){
Gamen bb = new Gamen();
bb.GamenB();
}else if(e.getSource() == b2){
System.exit(0);
}else if(e.getSource() == b3){
Gamen cc = new Gamen();
cc.GamenC();
}else if(e.getSource() == b4){
//B画面終了ボタンを押してBのみ画面を終了させたい。
}
}
public static void main(String[] args) {
Gamen aa = new Gamen();
aa.GamenA();
}
}
/*ソースここまで*/
よろしくお願いします。

706 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:34:45 ]
>>698
Javaはある程度のことしかできないし、そういうものであれば既存のソフトで腐るほどありますよ。
自分でやりたいなら何らかのスクリプトを使うことをおすすめしておきます。

707 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:43:52 ]
一つ一つのフレームは、その他のフレームのインスタンスを持ってないから現状では無理。
閉じさせるフレームのインスタンスを持たせて、それでactionPerformedでdisposeしてやれば実現できるけど・・・継承とかそこらへんの意味を見直した方がいいと思うよ。

708 名前:705 [2008/02/24(日) 12:53:30 ]
>>707
ありがとうございました。
勉強しなおしてきます。

709 名前:638 mailto:sage [2008/02/24(日) 13:30:03 ]
>>639
業務なのでスタックとレースはちょっと貼れません・・・


実際に発生している問題は

パターン1
setStringでパラメータを19個設定
検索ヒット件数が10件以下
→問題なし

パターン2
setStringでパラメータを19個設定
検索ヒット件数が11件以上
→ResultSetでlastや、11件目のnextで例外発生
 スタックとレースに配列の範囲外を指定(詳細19)というエラーが出力される。
 ※パラメータを15や11にした場合も同様に(詳細15)のように出力される。

パターン1と2で使用しているSQLは全く同一。
パターン1と2の違いはパラメータの1つの日付の範囲を数ヶ月広げているだけ。

パラメータを全て直接SQLに埋め込んだ場合、データが件数分正しく取得できます。

パラメータに上限とかあるのでしょうか?
SQLはそれなりに大きいです。100行程度。


710 名前: [2008/02/24(日) 14:16:01 ]
設定方法わかりませーん



711 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 14:16:23 ]
>>709
Oracle なら、詳細19とか詳細15とかマニュアル嫁
それの何処に配列が出てくるのか謎

712 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 14:18:34 ]
問題ない部分だけの抜粋でもいいからスタックトレース貼ったらどうか。
例外は本当にOJDBCで出てるのか?

713 名前:638 mailto:sage [2008/02/24(日) 14:29:54 ]
ResultSetやPreparedStatementをデバッガで除くと、
設定したパラメータが正しい内容で格納されているのは確認しています。

出力される例外はArrayIndexOutOfBoundsExceptionです。
ここでパラメータの数が「詳細 パラメータ数」と表示されます。


>>711
まず、SQLExceptionじゃないです。
上記通り、19とか15はパラメータの総数が出力されます。
謎ですが。


>>712
そもそも業務で外部接続できないので貼れません・・・
例外は、ResultSetのnextが11回目に呼び出されたタイミングで発生します。
ResultSetの処理の中でArrayIndexOutOfBoundsExceptionで死亡します・・・

714 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:02:57 ]
test

715 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/24(日) 17:05:15 ]
固定長*可変長の配列を作りたいです。
(i方向が固定でj方向が可変、初期は空)
import java.util.*;

public class Test2{
public static void main(String[] args){
ArrayList<Integer>[] a = new ArrayList<Integer>[10];
for(int i=0; i<a.length; i++){
a[i] = new ArrayList<Integer>();
}
a[0].add(3);
System.out.println(a[0]);
}

}

こう書きましたがエラーが出ます。
どこがおかしいのでしょうか?

716 名前:ちんこ ◆GbXlaaQNk. [2008/02/24(日) 17:05:45 ]
age

717 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:07:30 ]
固定長のちんこなんて要りません

718 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:09:04 ]
1〜nの整数の順列をすべて表示するプログラムを書いてみたのですが
もっと簡単にやる方法とかここはこうしたらいいとかあったらアドバイスお願いします

import java.util.*;
class PermutationTest {
public static void main(String[] args) {
Permutation perm1 = new Permutation(4);
perm1.PrintPermutation();
return;
}
}

class Permutation {
private int N;
private int[] ans;
Permutation(int N){
this.N = N;
this.ans = new int[N];
}
void PrintPermutation() {
int[] a = new int[N];
for (int i = 0; i < N; i++) {
a[i] = i+1;
}
this.subPrintPerm(a,0);
}

続く

719 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/24(日) 17:09:27 ]
まぁまぁそういわず。
なんでエラーが出るのかさっぱり分からなくてね。

720 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:09:46 ]
>>718の続き

private void subPrintPerm(int[] a, int idx) { // 配列a[]から1つ取り出して残りで再帰呼び出し
if (a.length == 1) {
ans[idx] = a[0];
ansを表示;
return;
}
for (int i = 0; i < a.length; i++) {
int[] b = new int[a.length-1];
ans[idx] = a[i];
int j=0;
while (j < b.length) {
if (j < i) {
b[j] = a[j];
} else {
b[j] = a[j+1];
}
j++;
}
this.subPrintPerm(b,idx+1);
}
}
}



721 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:10:15 ]
>>715
>>574-576

722 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/24(日) 17:16:06 ]
>>721
既出でしたね。
でもそのレスを読んでも分かったよな分からんようなです。
具体的にどうすればいいか示してもらえませんか?

723 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:46:20 ]
今まで書いたソースを消してクソして寝ろ
そして二度とブラウザを開かない

724 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/24(日) 17:47:03 ]
>>723
分からないんだろ?そういえばいいのにw

725 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/24(日) 17:58:50 ]
どう考えてもおれのコードと>>574のコードは問題点が違います。
おれが書いた>>715のコードはどこがミスがあるのか
指摘出来る人はいませんか?


726 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:17:40 ]
>715
ジェネリックスを使用したList<E>の配列は作れない、言語仕様的に。
したがって、int[][]のように2次元配列にするか、List<List<Integer>>のようにListにListを入れるべし

727 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:21:32 ]
ArrayList入れたいのかInteger入れたいのかはっきりしろ。

728 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:23:55 ]
可変長のちんこ入れたいです。

729 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:49:14 ]
ArrayList<Integer>[] a = new ArrayList[10];
でいいんじゃね?

730 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/24(日) 18:54:02 ]
現在作成中の
ダイクストラ法による最短経路探索プログラムです。
www.uploda.org/uporg1268729.zip.html
うpしました。
これでListを使えると便利なので使いたいと思ったのですが、
具体的に今findShortestPath @ MainPanel
というのを実装しています。
ここで、toArray周辺でエラーが出て、どういう事だかさっぱり分かりません。

エラーの原因が分かる人は教えてください。



731 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:06:16 ]
730 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん

732 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/24(日) 19:08:57 ]
さっぱり分からない。

733 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:34:33 ]
カレントディレクトリを移動してからEXEを実行したいのですが、下のように書いてもhoge.exeが実行されません。
どう書けばよろしいでしょうか?

Runtime.getRuntime().exce(new String[]{"cmd.exe","/C","cd C:\hoge","hoge.exe"})

hoge.exeが自分のルートにファイルを出力する為、カレントディレクトリを移動しなければならず
この処理を含む実行ファイルをhoge.exeのフォルダに置くのは避けたいです。


734 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:37:52 ]
ProcssBuilder にカレントディレクトリ指定できるものがあったとオモ

735 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:04:50 ]
JMenuBarの中にメニューを2つ追加し、それぞれのメニューの中に
同じ名前のJMenuItem、同じActionListenerをセットした場合、
それぞれのMenuItemが選択された際の処理を変えることは可能でしょうか

ネットや書籍を調べてみたところ、JMenuItemが選択されたイベントが発生した場合、
そのイベントの名前をgetActionCommandで取得し、条件分岐を行っていましたが
同じ名前のItemが存在する場合の条件分岐方法を見付けることができませんでした

諦めてそれぞれのItemに別々のActionListenerクラスをセットするしかないのでしょうか

736 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:07:51 ]
getSourceとJMenuItemを==で比較するという手もある

737 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:21:18 ]
同じ名前のJMenuItemってのが設計おかしくねえか?
見た目が同じだとしても場所とか違う識別子にはなるだろ

738 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:22:28 ]
マルチキャストソケットを利用した、簡易チャットルームの
ようなものを作成しているのですが、現在接続中のユーザーを
表示させる部分がうまくいきません。

IPで表示させるのですが、取得の方法が悪いのでしょうか?
ユーザー表示部分だけなので、宿題スレでなくこちらで質問させて
いただきました。よろしくおねがいします。

rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/217.java

739 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:30:45 ]
うまくいかないでは解らん。
例外が発生するのか、処理がそこを通らないのか、ちゃんと情報を出せ。

あと、直リンできねーぞ

740 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:50:37 ]
>>734
レスありがとうございます。
できればRuntime.getRuntime().execでやりたいと思うのですが、無理でしょうか?
やはりjdk1.5ならProcssBuilderを使った方が良いのかな・・・。




741 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:02:36 ]
>>739
失礼しました。

特にエラーが出て処理が停止するというこはなく、
表示ボタンを押してもnullが返ってくるため
ユーザーのIPが上手く取得できていないのでは
ないかと思っています。

ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/main.htm
の217番にUPしてあります。

742 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:09:58 ]
>741
System.out.println( "ユーザー表示ボタンが押されました" );
って行は通っているのでOK?
あとメッセージの表示は問題ない?
System.out.println( "アドレスを新規登録しました" );
って行は通ってないのか?

743 名前:デフォルトの名無しさん [2008/02/24(日) 21:24:27 ]
tomcat5.5
eclipse
を使用してwebアプリを作ろうと思っています。

一つのプロジェクトで複数のTomcatを動かそうと思っています。
この場合、ルートディレクトリが複数で
ソースの出力先フォルダ一つしか設定できません。

ということは片方のルートディレクトリにしか
サーブレットのクラスは置けないため、
片方のtomcatからしかソースを参照できません。

こういった場合どうすればよいでしょうか。

744 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:38:05 ]
早速見ていただきありがとうございます。

>>742
>System.out.println( "ユーザー表示ボタンが押されました" );
の部分はシステムコンソールに表示されているため
通っているものと思われます。また、メッセージも
""で囲まれている部分はきちんと表示されています。

>System.out.println( "アドレスを新規登録しました" );
この行もシステムコンソールでは表示されているので
通っていると思うのですが・・。

745 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:39:48 ]
すまんがだれか、>>743をエスパーしてくれ。
何となく解る気もするが、
なんで、エクスポートしたwarファイルをもう一つのTomcatに置くのではダメなのかが解らない。


746 名前:デフォルトの名無しさん [2008/02/24(日) 21:43:33 ]
>>743
何のためにそれをするのか知らないがeclispeはtomcatのラウンチャーじゃない
tomcatは別途立てて、そこにDeployするべき
あとeclipseの1プロジェクトで複数のWebアプリケーションを動作させようというのも間違い
プロジェクトを分けなさない


747 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:50:47 ]
>744
"現在の接続ユーザーは " + userlist + "\n"
の部分だが、JTextAreaにまったく反映されないのか?
中身だけが空なのか、どっちだ?

748 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:53:00 ]
JDK 6 Update 4が落とせないんですが何が問題なんでしょうか。

エラーは承認することができないという内容で、いくつかの環境で試しましたが同様です。

749 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:53:30 ]
>747
userlistの中身がからで
現在の接続ユーザーはnullです という表示になっています。

750 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:56:26 ]
>>749
Chatroom#userlistに何も代入していない



751 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 22:02:11 ]
>750
回答ありがとうございます。

userlist.add(clientAddr);

上記の文でアドレスが代入されるものと思っていたのですが、
この文の書き方では代入されていないということでしょうか?

752 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 22:03:12 ]
それはローカル変数のuserlistであってChatroom#userlistではない

753 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 22:28:32 ]
>752

ありがとうございます。入ってると思ってたものが
別のものだったのですね。

助かりました、ありがとうございました。

754 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:29:39 ]
Class Parent {
 private int val;
 public getVal() { return val; }
 public setVal(int val) { this.val = val; }
 public Parent clone() {...}
}

みたいに、clone() を実装したクラスParentがあったとして、
これを継承した子クラス Child を作ります。
で、この Child でも clone() を実装したいのですが、
その Child#clone() はどうやって実装するのが普通ですか?

public Child clone() {
 Child c = new Child();
 c.setVal ( this.getVal() );
 ...
 return c;
}

と、親クラスの Parent#clone() の存在を完全に無視してもいいもんですか?
これだとどうもスマートじゃないような気がして、protected なコンストラクタを
親クラスに追加する、なんて方法も考えたんですけど、
典型的な手法があるのならばご教示ください。

755 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:35:47 ]
>>754
class Parent implements Cloneable { 
 private int val; 
 public getVal() { return val; } 
 public setVal(int val) { this.val = val; } 
 public Parent clone() {
  try{
   return (Parent)super.clone();
  } catch(CloneNotSupportedException e){
   throw new RuntimeException(e);
  }
 }
}
class Child extends Parent {
 public Child clone() {
  return (Child)super.clone();
 }
}

756 名前:デフォルトの名無しさん [2008/02/24(日) 23:40:36 ]
Javaの勉強始めました。

アクセス就職子protectedについて理解が足りないので教えてください。
protectedつけることで、
『自分のクラス内のメソッド 又は 継承されたサブクラス内のメソッドからしかアクセスできない』
そのように直感的に感じたのですが、
間違っているようで。
public class Purotekuto {
public static void main(String[] args) {
Test21 hogehoge = new Test21();
System.out.println( "値を出力:" + hogehoge.protectedInteger );
}}
public class Test21 {
protected int protectedInteger;
Test21() {
this.protectedInteger = 0;
}
public void setValue( int value ) {
this.protectedInteger = value;
}
public int getValue( int value ) {
return this.protectedInteger;
}}
このコードでは、main()から、クラスTest21のメンバ、protectedIntegerにアクセスできずに、
エラーか何かになると思ったのですが、普通に動きました。
自分の考えの何がまずいのでしょうか。。。

757 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:45:28 ]
>754
super.clone() を使うかどうかは状況次第じゃね?
というか、普通はsuper.clone()は使えない方が多いと思う。
帰ってくるのはParentクラスのインスタンスだから、結局は値をコピーしなければならなくなるから。

758 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:46:09 ]
>>754
何のための継承、何のためのオーバーライド。
何がスマートじゃないんだ。感覚的に言われてもな。

ちなみに、cloneを使うなら、Cloneable を implements すること。
// 詳しくは Clonable, Object.clone 参照。

>>756
同じパッケージからもアクセスできるから。以上。

759 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:47:23 ]
>756
もう1つ条件があって、「同一パッケージ内からのアクセス」もOK

760 名前:756 [2008/02/25(月) 00:01:54 ]
758,759 ありがとうございます。

指摘を受けて調べました。
パッケージ化しないことには、ソースはばらばらのパッケージ的な扱いと、勝手に勘違いしていました。
デフォルトのパッケージ、という扱いになるのですね。
勉強になりました。



761 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 00:09:47 ]
と言うかデフォルトパッケージの使用は避けてくれ。

762 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 00:11:27 ]
>>757-758
ありがとうございます。
ちょっと理解できてきました。

763 名前:756,760 mailto:sage [2008/02/25(月) 00:18:14 ]
>761
というと、必ず特定のパッケージに入れることを明示することが望ましいということでしょうか。
自分今回痛い目にあったので、761の指示に従って付いてまいりますが。

764 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 00:48:09 ]
>>763
デフォルトパッケージ以外のパッケージに属するクラスから
一切呼び出しが出来ない。(JDK 1.4 以降)

プログラミングの一般論としても
何らかの名前空間に所属させるのは
良い習慣だと思う。

765 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:00:16 ]
>>754
普通はコピーコンストラクタを作る
Cloneable は Java の失敗作とジョシュアっちが言ってました

766 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 04:11:37 ]
これからjavaを学ぼうと考えています。
JAVAのSDK沢山種類があるようですが、
どれを使用すれば良いでしょうか?

767 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 04:28:17 ]
>>766
多分新しいのを使っとけばいいんじゃないだろうか

768 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 04:54:25 ]
使う方のソースはそれで良いけど宣言する方のソースはアノテーション必要でしょ。

769 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 04:55:33 ]
↑誤爆


770 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 07:44:10 ]
SE(スタンダードエディション)でおk



771 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 08:40:00 ]
>>733
\→\\
それと、カレントドライブの変更まではcdで出来ないけど、
その辺は大丈夫かな?

772 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 09:14:34 ]
Timestamp型の変数から"yyyy/MM/dd"といった形の文字列で
値を取り出すにはどうしたらよいでしょうか?

773 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 09:34:57 ]
String s = new SimpleDateFormat("yyyy/MM/dd").format(timestamp);

774 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 09:37:02 ]
>>772
SimpleDateFormat("yyyy/MM/dd")でformatすれば?

775 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 09:44:18 ]
質問です。
シングルトンを多数作りたいんですが、
private static Singleton instance = new Singleton();
public Singleton getInstance(){return instance;}
private Singleton(){}
といったおきまりパターンを各クラスに書かないと行けませんが面倒です
AbstractSingletonを継承したらgetInstance()で各シングルトンのインスタンスが取れるようになる
みたいな事ができれば便利ですけど、staticフィールドなのでそれもママなりません。
なんか旨い方法はありませんか?

776 名前:デフォルトの名無しさん [2008/02/25(月) 09:49:44 ]
ド素人質問ですみません;;
テキストフィールドに入力された文字列を
ボタンが押されたときに変数com_defに入力する
プログラムを作りたいのですが、
下のようにやるとローカル変数 i は内部クラスからアクセスされます。final で宣言される必要があります。
とエラーが出ます。
対処法を教えてください。よろしくお願いします。
text[i] = new JTextField("",2);
button1[i] = new JButton("変更");
button1[i].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {

int com_def = Integer.parseInt(text[i].getText());

System.out.println(""+com_def);
}
});

777 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 10:01:15 ]
>>773, 774
ありがとうございます。
できました。

778 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 10:11:39 ]
>>775
eclipse ならテンプレートを使って、少し楽が出来る。下のほうに例がある。
ttp://www.eclipsewiki.net/eclipse/index.php?%A5%C6%A5%F3%A5%D7%A5%EC%A1%BC%A5%C8

>>776
メソッドとその内部クラスとで共用で使う変数は、メソッド内 final として、コンパイルを通す。
他にも方法はあると思うけど、それ以上なら、クラス内クラスにしてちゃんと定義しましょ。

779 名前:デフォルトの名無しさん [2008/02/25(月) 16:41:22 ]
String s = "ab" + \r + "cd" + \n + "ef";
正しく直してください。

780 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 16:43:38 ]
String s = "ab\rcd\nef";
直しました。



781 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 16:43:54 ]
String s = "ab\rcd\nef";

782 名前:781 mailto:sage [2008/02/25(月) 16:44:30 ]
かぶった...orz

783 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 16:46:12 ]
780,781 ありがとうございます。

784 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 16:47:23 ]
qa3808666 かぶってる...

785 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 17:24:32 ]
それはかぶってるんじゃなくてマルチポストだろう…

786 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 17:47:04 ]
tomcatのjsp-examplesにあるFORM認証のサンプルについて質問です。
まず操作を1->5の順で行った結果を書きます。

1.hostname:port/jsp-examples/security/protected/index.jspにアクセスするとFORM認証機能が働きlogin.jspが表示される。
2.login.jsp -> Username/Passwordを間違えて入力->error.jspが表示される。
3.error.jsp -> "try again"をクリック -> login.jspが表示される。
4.login.jsp -> Username/Passwordを正しく入力 -> login.jspが再表示される。
5.login.jsp -> Username/Passwordを正しく入力 -> HTTPステータス 404 - /jsp-examples/security/protected/j_security_check

4でUsername/Passwordを正しく入力しているので1のindex.jspに飛ぶことを期待したのですが、login.jspが再表示されました。
login.jspの出力内容がブラウザに表示された時に、ソースを表示してみると
□2のlogin.jsp
<form method="POST" action='j_security_check;jsessionid=74394043647C95BAC48CC67ECDFFEFB7' >
□4のlogin.jsp
<form method="POST" action='j_security_check' >
比較してみると、4のソースではセッションIDが付加されていない為に、本来の遷移先のURLを見失ってしまっている、ということでしょうか?

jspソースファイルを見ると、login.jspもerror.jspもresponse.encodeURL()の結果をセットしていました。
login.jspのリクエスト箇所
<form method="POST" action='<%= response.encodeURL("j_security_check") %>' >
error.jspからlogin.jspを表示するリンク箇所
<a href='<%= response.encodeURL("login.jsp") %>'>again</a>.

今のままだとerror.jspからブラウザの戻るボタンで前画面(login.jsp)に戻らないと、認証後に期待したURLへ遷移してくれません。
error.jspにあるアンカータグでlogin.jspに戻った時も同じ動きにさせたいのですが、どのように修正すれば対応できるでしょうか?

787 名前:786 mailto:sage [2008/02/25(月) 17:51:39 ]
携帯のブラウザでも見るので「JavaScriptは使わない」という前提でお願いします。

788 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 18:37:01 ]
自作のある圧縮アーカイブの解凍ストリームを作ろうと思っています。
その圧縮形式はライブラリを持っており、InflaterInputStreamを利用すると比較的に楽に実現できると考えたのですが、
read()やread(byte[],int,int)など、いずれにせよユーザーが決めるバッファのサイズで解凍を行う必要があるため、今回のような解凍する側で単一バイト読み込み時に出力されるデータを決めるライブラリを持った圧縮形式ではどのように行うべきなのか分かりません。
解凍したデータもバッファリングして、ユーザーのサイズに合わせて出力すれば実現はできると思うのですが、何か他にいい方法はないものかと思い質問しました。
Inflaterのソースも読んでみたのですが、肝心の部分はnativeメソッドになっており結局どのような実装なのか分かりませんでした。良い方法がございましたら教えてください。

789 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 19:24:42 ]
>>788
>解凍したデータもバッファリングして、ユーザーのサイズに合わせて出力すれば実現はできると思うのですが

それしかないのでは・・・
1バイトだけ返すread()を実装すればあとはデフォルトの実装があるので、
class MyInputStream extends InputStream {
 private byte[] buf;
 private int pos, size;
 public int read() throws IOException {
  if (pos == size) {
   // 解凍データをbufに詰めてsizeをセット
   pos = 0;
  }
  return buf[pos++];
 }
}
これだけでも一応動くよ
InflaterInputStreamをどう利用しようとしてるのかよくわからんが、あれはzlibストリーム専用

790 名前:789 mailto:sage [2008/02/25(月) 19:27:03 ]
×return buf[pos++];
○return buf[pos++] & 255;
でした・・・



791 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 20:59:08 ]
>>775

邪道かもしれんが。 なんか旨い方法、ということなら。

Enum の中に書く定数は1つ1つがシングルトンだ。
全定数に共通のメソッドも振る舞いが異なるメソッドも実装できるぞ。


792 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/25(月) 21:04:53 ]
Javaにはプリミティブと参照が混在しています。
Listなどを使う時には参照型しか使えないのですが、
いっそすべてのintをIntegerに書き換えた方がいいでしょうか?
プリミティブ型の扱いをみなさんどうしていますか?
おれはRubyからJavaに来たので数字が参照型じゃないというのに
すごく違和感を感じます。ましてや混在しているというのは非常事態です。

今すごく悩んでいます。
みなさんがどうしているかを知りたいです。

793 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:09:13 ]
>>789
ネットに繋がらなくて返事が遅くなってしまいました。
聞いていた立場で申し訳ないです。
Inflaterを利用しようと思ったのは、形式に共通点が多く、いくつかをオーバーライドすればできそうな気がしたためです。
確かに本来の用途から外れますので使用すべきではありませんね。

やはりバッファかますことにします。
親切にどうもありがとうございました。

794 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:10:35 ]
>>792
せっかくプリミティブ型があるのにわざわざオブジェクトにする必要はないと思います。
コストの問題ももちろんですが、何より扱いにくいです。

795 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:18:04 ]
>>792

Integer って、オブジェクトだとは言っても、中のデータを書き換えられないから不便だよ。
List などには int を入れても auto boxing されるんだから、int のままでいいんじゃないかなあ。

みなさんがどうしているか、に関しては、「気にしていない」だと思う。


796 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:18:13 ]
>>792
そういう言語だから受け入れるしかない
Rubyは理想を重視した分遅くなってるし
C#はプリミティブ型の扱いを変えて両立させてるけどその分複雑になってたりする

797 名前:デフォルトの名無しさん [2008/02/25(月) 21:42:46 ]
Strint[] a = {"A","B"};
aの要素数を1にするtruncateみたいなものはありませんか?


798 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:54:32 ]
配列じゃなくてリストじゃ駄目なん?

799 名前:デフォルトの名無しさん [2008/02/25(月) 22:01:35 ]
>>798
Strint[] a; という配列でやりたいです。
Strint[] a = {"A","B"};
ここで処理して"A"が不要だと分かって、
a = {"B"};
とすればよいのでしょうか?
以前のaはa = {"B"};する直前にガベコされるのでしょうか?
それとも内部でtruncateみたいなことされて、aのアドレスは変わらないのでしょうか?

800 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/25(月) 22:04:44 ]
>>795
配列のautoBoxingがないです。
例えば

void methodA(int a)
にInteger型を放り込んだらこれはBoxingされますが、

void methodB(int[] a)
にInteger[]型を放り込むのはエラーになります。

配列からListを作る時にも参照型が強制されるので不利かと思いました。
(例えばArrayList<int>はエラーになる)

>>796
JRubyもダメでしょうか?(速度に関して)



801 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:05:33 ]
>>799
a = {"B"};
でよい。{"A","B"}はGCまかせ。
ちなみにGCは、不要になったら即実行される訳じゃないよ。

802 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:09:09 ]
>>801
ありがとうございます。ガベコに任せます。

803 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:09:22 ]
>>801
それ、初期代入でしかできないんじゃね?

804 名前:デフォルトの名無しさん [2008/02/25(月) 22:12:12 ]
>>803
そうでした。
Strint[] a; という配列でやりたいです。
Strint[] a = {"A","B"};
ここで処理して"A"が不要だと分かって、
Strint[] aTemp = {"B"};
のように、もう1つ変数が必要ですか?

805 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:16:45 ]
aTempの要素数はどうするの?
ArrayListを作って必要な要素だけ追加していって後で配列に変換したほうが早い
配列でやるにしてもどうせ同じようなことを自分でやることになる

806 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:17:13 ]
String[] a = {"A", "B"};
a = new String[1];
a[0] = "B";
でよくね?

807 名前:798, 803, 806 mailto:sage [2008/02/25(月) 22:18:52 ]
>>805
んだなぁ。
ArrayList<String> a = new ArrayList<String>();
a.add("A"); a.add("B");
a.remove(0);
とかでいいと思った。

808 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:25:09 ]
>>806
そうできるんですね。ありがとうございます。
>>807
STLってまだよく分からないんです。でもありがとうございました。

809 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:27:18 ]
STLw
それはおいといて,>>806でいいんだったら
String[] a = { "B" };
と全く変わらないよ

810 名前:798, 803, 806 mailto:sage [2008/02/25(月) 22:28:13 ]
STLはC++のライブラリのことじゃねーの?w
ちなみに配列への変換は
String[] array = a.toArray(new String[a.size()]);
でいいと思う



811 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:51:19 ]
>>807
配列モドキとコレクション
List<String> list = Arrays.asList("A", "B");
System.out.println(list);
list = ArrayList<String>(list); // 編集可能化
list.remove(0);
System.out.println(list);

812 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:57:41 ]
>>808
おまいは勘違いしてる。Javaの配列はサイズを変更(Cで言うところのrealloc)出来ない。
配列限定で長さを変えるには、新しい別の配列を作ってコピーするしかない。
今まで挙がってた例は全て新しい別の配列を作っているだけ。
長さが変わる場合、通常はArrayList等のList系のコレクションを使い、
どうしても配列が必要な場面でだけtoArray()で変換する。

813 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:07:52 ]
>>800

配列は既にオブジェクト(変数には参照が収められる)だから、auto Boxing はいらないし、
List にも add できる。
int[] を要求している所に Integer[] を放り込むとエラーになるのは型が違うから。
放り込めることを期待するのは
int に対応するのが Integer、int[] に対応するのが Integer[] という感覚があるからだろうが、
この4つの中で、int だけがプリミティブ、Integer だけが値変更が不便なので、
Integer は int をオブジェクトにするためだけにある特別な存在で、
対称性はあまり無い、と考えた方がいい。


814 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:30:24 ]
>812
変更不可なgetterで結構toArray使わんか?

815 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:32:42 ]
一件教えてください。

main()の中で記述していた処理を、
ほかのファイルの関数に移動したいのですが、どのようにすればよいかわからず、教えてほしいです。
(サブルーチンで処理をするような考え方で。)

c言語で言えば、
main(){
  一連の処理のまとまり1
  一連の処理のまとまり2

となっていたものを
main(){
  func1(渡す必要のある変数)
  一連の処理のまとまり2
}
func1(引数){
  一連の処理のまとまり1の代替
  必要があればreturn文
}
といった感じ(型とか細かいことは別として。)に分割したいのですが。

今の自分の知識では、クラスを作って、メソッドを作って、
メソッドをインスタンス化して、
仮にインスタンスが設定された変数の名前がaaaとしたら、
aaa.メソッド(引数) とするくらいしか、頭が回りません。
メソッドを利用したいだけで、インスタンス化が必要なのか疑問で、やりかたがあるような気がしまして。

よろしくお願いします。

816 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:39:52 ]
>>815
別クラスにする必要がないのなら、別クラスにしなくていいんじゃない?
mainのほかにクラスメソッド書けばよい。

他からも使いたいけど、インスタンスを作る意味がないのなら、ユーティリティクラスという手もある。
java.lang.Mathみたいなクラス。メソッドは全て、クラスメソッドとして定義する。


817 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:45:00 ]
>>815
>メソッドを利用したいだけで、インスタンス化が必要なのか
オブジェクト指向の世界では必要だという前提なんだよ
原則としてすべてのメソッドはどっかのクラスに属していて、インスタンスを介して使用する事が基本
逆に言えばクラスに属するけど、インスタンスを介さないmainメソッドの方が特殊

慣れるまで、メリットを感じるまでは解らんと思うが、最初はそういう世界と思うしかない

818 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:47:04 ]
>>815

メソッドはいくら分割してもメソッドだ。
その例だとオブジェクトになるのは (渡す必要のある変数) ってやつだけだな。

main() で
渡す必要のある変数の型 obj = new 渡す必要のある変数の型();
して、
obj.func1()


819 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:47:46 ]
>>809
Strint[] a = {"A","B"};
ここで処理して"A"が不要だと分かって、
Strint[] a = {"B"};

↑aが2重定義になるので>>806の方法にしました。


820 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:49:18 ]
>>815
// メインクラス(Main.java)
public class Main {
  public static void main(String[] args){
    Sample.func();
  }
}

// サブルーチンクラス(Sample.java)
public class Sample {
  public static void func(){
    // ↑staticでメソッドを宣言すれば<クラス名>.<メソッド名>でアクセスできる。
    System.out.println("Hello, world!");
  }
}



821 名前:815 mailto:sage [2008/02/25(月) 23:49:35 ]
815です。
レスありがとうございます、816,817。

>クラスメソッド(816)
クラスメソッドの概念を知りませんでした。ありがとうございます。

>オブジェクト指向の世界では必要だという前提なんだよ(817)
その考えを理解できるように努力していきます。
指摘ありがとうございます。

822 名前:815 mailto:sage [2008/02/25(月) 23:51:52 ]
>820
レスポンス記述している最中に更新されたようで、失礼しました。

816のおっしゃる、クラスメソッドの具体例ですね。
わかりやすい説明ありがとうございます。

823 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:51:53 ]
>>815

>ほかのファイルの関数に移動したい
>サブルーチンで処理をするような考え方で
>メソッドを利用したいだけで

インスタンス化したくないなら当然インスタンス化は不要だ。


824 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:58:44 ]
>>815
他の方が指摘してらっしゃるように、
メソッドは、必ずしもオブジェクトに関連付ける必要はありません。

蛇足。Javaでは「他のファイルに記述する」という概念はありません。
あくまでも、クラスを分けるかどうか、です。
それゆえか、クラス内クラスである内部クラスが4種類あります。

825 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/26(火) 00:30:07 ]
JRubyやってみようと思う。

826 名前:815 mailto:sage [2008/02/26(火) 00:32:49 ]
815です。

821内の『>818』は『>820』の間違いですね。失礼しました。

>818
今コーディングして確認しました。
クラスメソッドを直接呼び出すか、
通常に、通常のメソッドをインスタンス化して呼び出すかですね。

>823
>インスタンス化したくないなら当然インスタンス化は不要だ。
いま確認とりたいと思いコーディングしてみたのですが、
ほかの方が示された用にstaticにするほかに方法あるのでしょうか。
staticなメソッドにするか、インスタンス化するか以外で試せませんでした。
staticにすることをおっしゃっているのでしょうか。(私の821,822のように時間差?)

>824
内部クラス。理解できるよう精進します。Tipありがとうございます。

自分の質問に対して、
816の考え方、817の考え方、の二種類の意見を持つ方に分かれるように感じました。
オブジェクト化するべきとの考えと、ユーティリティメソッドでいいのではという考えと、です。
このどちらを選ぶかは、個人やGrの考え方次第ということなのでしょうか?
それとも、オブジェクト指向的には後者の方が、望ましいが、面倒な手続きは好まれないので、前者が使われるということなのでしょうか。

827 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 00:42:12 ]
>>826
おおざっぱには、
・データが主体ならオブジェクトにする。
・ロジックが主体ならクラスメソッドにする。
くらいで良いのではないかと思ってる。(無論例外は山ほどある)

828 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 00:50:08 ]
こんばんわ。
eclipse使いはじめたのですが、eclipseに指摘されるエラーの意味がわからないので教えてください。

たとえば、まさに820のコードを、
eclipseでひとつのファイルに記述すると、
クラスSampleを別のファイルに書けといわれます。

Javaのルールなのでしょうか。
どういった原因なのか教えてください。
eclipse特有で指摘されるものなのでしょうか?

829 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 00:51:19 ]
>>826
何を作っているのかによる。
なんらかの概念(伝票・取引みたいな業務概念や、ファイル・ウィンドウのようなシステム概念)の、
特定のひとつに対する操作であれば、インスタンスメソッドとすることが望ましい。

逆に、概念に属する全ての対象に対する操作や、そもそもその対象を作り出す操作などはクラスメソッドになる。

ただし、実際にはクラスという概念とは関連づかない操作もあり、
Javaの場合は全てのメソッドがクラスに定義されなければならないため、便宜的にクラスメソッドとする。

830 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 00:52:53 ]
>>828
Javaのルール。

publicのクラスはファイル名=クラス名としなければならない。
なので、自動的にひとつのファイルにはpublicクラスは一つまでしか定義できない。



831 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 00:58:39 ]
>>828
830 の通り、Javaの仕様です。
public を外すか、クラス内クラスにするか、
一応、一つのファイルに複数のクラスを記述する方法はあります。

832 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 01:03:07 ]
828です。
830氏、831氏、すばやい回答ありがとうございます。
勉強になりました。
publicがキーワードでしたか。

833 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 01:21:48 ]
アクセス修飾子について説明もらえませんか。

アクセス修飾子には、public, protected, privateがあり、
アクセス制御の範囲としては、上記3つのほかに、修飾なしを含めた4つがあるようです。
で、最後の修飾なしなのですが、
実際に仕事でのプログラミングや、アプリケーションの作成で、使用されるのでしょうか。
範囲が修飾ありの3つと異なるのですが、何も記述しないというのが、どうにも好きになれないみたいな。
基本的に、何らかの修飾をしましょうということは無いですか?

834 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 01:31:30 ]
>>833
たしかに気持ち悪いが、そう決まってる以上、そういうもんだと思うしかない。
使う場面はときどきあるよ。
トップレベルクラスは、publicにしたくなければ、他に選択肢もないし・・・

835 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 01:40:22 ]
>>833
クラスは良くパッケージデフォルトにするなぁ。
パッケージをコンポーネントと見立てて、publicがインタフェースでパッケージデフォルトが実装の詳細。

メソッドやフィールドではあまり使ったことないや。

836 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 01:55:23 ]
はじめて手に入れたIDEがeclipseで今までCとWinSDKをエディタで何とかしようと苦労してたのが嘘みたいに
GUIなアプリケーションがさくさく書けてJavaマンセーな状態なのですが、
そろそろ他の言語ってかC++で同等の事ができるようになりたいと思い始めてます。

そんなぼくにお勧めのC++用のIDEを教えてくれませんか?
eclipseみたいにCtrl+spaceなどでガンガン補完できるようなやつで、
リファクタリングが強力なやつがよいです。

(若干スレ違い?)

837 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 02:09:29 ]
>>836
全くスレ違い
CDT

838 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 02:46:20 ]
>>833
派生先からだけ見えて欲しい時は多数あるけど
パッケージ内からだけ見えて欲しい時がないので
デフォルトスコープを使う機会がない。

継承・実装の階層とパッケージ階層とは全く別個のものなのに
1系統の修飾子で片付けようとしたのに無理がある。
パッケージ階層は無視するか2系統用意して組み合わせ可能にしたら良かったのに。

C#(.NET?) だと名前空間は無視するかわりに、
アセンブリ境界に対して internal で制限するかどうかを選べる。

839 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 03:20:53 ]
>>833
そこそこ可視性があるが、言語的に最後の砦であるパッケージの境界でカプセル化してセーフ
というのがパッケージプライベートなので、とりあえず書いてみる的に使うのは、ちょうどよいのかと。

そして、とりあえず書いてみるレベルだったら、
何も修飾子を書かなくてもええじゃないか、のような乗りかと。

なお継承はカプセル化を壊すので、protected を使うのはその一線を越えます。

840 名前:833 mailto:sage [2008/02/26(火) 03:45:25 ]
833です。
返信にただいた内容を元に、学習します。

>839
>なお継承はカプセル化を壊すので、protected を使うのはその一線を越えます。
この点について、初心者向けの説明をいただけませんか。
時間かけると理解が進む資料の場所もみつかるのでしょうが。



841 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 07:01:30 ]
>>819
a = new String[]{"B"};

842 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 08:12:42 ]
>言語的に最後の砦であるパッケージの境界でカプセル化
JDK7になったらスーパーパッケージが出来るんだけどねぇ。
JDK7は本当に完成するんだろうか。

843 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 10:47:38 ]
>>841
ありがとうございます。それにしました。

844 名前:デフォルトの名無しさん [2008/02/26(火) 17:19:58 ]
出力を行うときに何でoutputstreamwriterを使わなければいけないのですか?
テキストでこの章に入るまではこれを使わなくても出力できていたわけ
ですから。


845 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:22:42 ]
好きなものを使えばいいんじゃない?

846 名前:デフォルトの名無しさん [2008/02/26(火) 17:25:51 ]
ストリームの意味が分からん

847 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:24:48 ]
>>846
ベルトコンベアみたいなものを思い浮かべろ
そこに物(データ)を置くと、それはどこかに流れていく
それが出力ストリームのイメージ (streamは流れという意味)
どこに流れていくかは、それがどんなストリームかによる
例えば FileOutputStream だったら、ファイルに書き込まれる
System.out だったら、標準出力に行く
ソケットだったらネットワーク上に送信されていく
出力先が何であるにせよ、そこにデータを書き込むというのは同じ
そういった、何かしらのデータの書き込み口というものを抽象化したのが、出力ストリーム

>>844
別にOutputStreamWriterを使わなければならないことはない
出力を行う方法は他にもいくつかあるが、
そのテキストでは単にそのうちのひとつを紹介してるだけだろう

848 名前:デフォルトの名無しさん [2008/02/26(火) 18:42:43 ]
>>847分かりやすいな説明ありがと!!!

849 名前:デフォルトの名無しさん [2008/02/26(火) 18:51:52 ]
一通りテキスト終わったら、トレーニング用のテキスト売ってるんだけど
それ買ってやったほうがいいかな?
てか、なんかJAVAの勉強しても何か実感わかないな〜
やっぱ実際にもの作らんとそういうのは分からないものなのか?

850 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:59:39 ]
>>849
どんなテキストか知らないけど
ウィンドウ開いたりボタン押したり絵を出したりといったGUIをやると
実感をわかせるのに効果的だと思う



851 名前:デフォルトの名無しさん [2008/02/26(火) 19:07:46 ]
ほうほう

852 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 19:13:33 ]
>>849
何か自分で作ってみたいものはないの?
目標を決めるといいかもよ

853 名前:デフォルトの名無しさん [2008/02/26(火) 20:41:10 ]
今高校3年生だから、専門学校へ行ったときの予習をしてるんだ。
javaでどんなの作れる?とりあえず簡単なものを作ってみたい。

854 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 20:42:27 ]
どんなものでも

855 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 20:44:02 ]
そんなことよりもう一年勉強した方が

856 名前:ibj [2008/02/26(火) 20:55:19 ]
以下のソースコードで
alice1 == alice2:true
alice1 == alice3:false
Chapter5.Employee[name = null, salary = 75000.0, hireDay = Tue Dec 15 00:00:00 JST 1987]
Exception in thread "main" java.lang.NullPointerException
at Chapter5.Employee.equals(Employee.java:48)
at Chapter5.EqualsTest.main(EqualsTest.java:17)
と ぬるぽが出てしまいます。
2時間ほど考えたのですが原因がわかりません・・・。super(name)の部分で
どうにかなっていると思うのですがロジック的に正しいと思うのですが・・・。
教えていただけたら幸いです。

857 名前:ibj [2008/02/26(火) 20:56:07 ]
package Chapter5;

public class EqualsTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Employee alice1 = new Employee("Alice Adams", 75000, 1987, 12, 15);
Employee alice2 = alice1;
Employee alice3 = new Employee("Alice Adams", 75000, 1987, 12, 15);
Employee bob = new Employee("Bob Brandson", 50000, 1989, 10, 1);

System.out.println("alice1 == alice2:" + (alice1 == alice2));
System.out.println("alice1 == alice3:" + (alice1 == alice3));
System.out.println("alice1.equals(alice3):" + alice1.equals(alice3));
System.out.println("alice1.equals(bob):" + alice1.equals(bob));

Manager carl = new Manager("Carl Cracker", 80000, 1987, 12, 25);
Manager boss = new Manager("Carl Cracker", 80000, 1987, 12, 25);
boss.setBonus(5000);
System.out.println("boss.toString():" + boss.toString());
System.out.println("carl.equals(boss):" + carl.equals(boss));
}

}

858 名前:ibj [2008/02/26(火) 20:56:36 ]
package Chapter5;

abstract class Person{
private String name;

public Person(String name){
this.name = name;
}

public abstract String getDescription();

public String getName(){
return this.name;
}
}


859 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 20:56:49 ]
専門なんて行っても勉強してる暇ないぞ。
情報系の大学いった方がまし

860 名前:ibj [2008/02/26(火) 21:00:13 ]
あう・・改行多すぎて書き込めない



861 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 21:44:23 ]
>>856
Employee にも何故か name があって、equals で、
other.name.equals(name)で比較してるんじゃないかと。

862 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 00:58:27 ]
力添えください。

ttp://www.nextindex.net/java/thread/sleep.html
に記述のあるソースの中で、
main()がthrows InterruptExceptionとしてある理由がわからないのですが、
どういう意味なのでしょうか。
教えてください。
今回実行してみた感じ、定義をしなくとも実行には問題がありませんでした。
どの部分が、InterruptExceptionを投げるといっているのでしょうか?
少なくともtry-catchの外しか考えられないのですが、どこかわかりませんでした。



863 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 01:06:39 ]
そのページの赤文字で書かれてるThread.sleep(1000);の所が投げてる。
javadocに書いてあるから読むと良いよ。

864 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 01:16:59 ]
文字列のサイズの取得で、
String s="あ";
2を取得する方法を教えてください。

865 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 01:18:11 ]
s.getBytes().length

866 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 01:28:19 ]
3になりました

867 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 01:36:09 ]
862です。
レスありがとうございます、853。
自分もThread.sleep(...);
がInterruptedExceptionを投げる可能性があることはなんとなく覚えたのですが、
今回の場合は、try{}catch(InterruptedEception e){}、の記述によって、
メソッドがthrowsを設定する必要は内容に感じたのです。
うーん…。

868 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 01:37:35 ]
s.length() + 1

869 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 02:06:26 ]
"qa3813364".length();

870 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 02:17:57 ]
>>865
GJ!



871 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 02:40:21 ]
>>840
>>なお継承はカプセル化を壊すので、protected を使うのはその一線を越えます。
>この点について、初心者向けの説明をいただけませんか。

なんてことはない、メソッドをオーバライドすると、親クラスがそのメソッドを呼び出している場合
その挙動にも影響を与えるため、どのような影響があるか(どのように呼び出されているか)を
知る必要があるという意味で、実装が漏れてるという見方ができる。

継承よりも委譲の方が強固だが、継承のほうがお手軽なので
最初は継承を使って、事が複雑になってきたら、委譲にリファクタリングするのがアジャイル的

872 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 02:44:06 ]
委譲めんどくせえ

873 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 02:59:17 ]
>>867
InterruptedException を飲み込んでいいのは、
実行中のタスクのキャンセレーションポリシーと
実行しているスレッドのインタラクションポリシーが明記してあり
(あるいはそのスレッドのライフサイクルの制御権があり)、
ちょうど両者とも、InterruptedException を飲み込んでOKな場合だけ。

インタラプトを遅延させて処理を継続したい場合は
Thread.currentThread().interupt()を
処理が継続できない・放棄する場合は
InterruptedException を再投げするのが定石


874 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 03:00:53 ]
>>867
そうだね必要ないな
たぶんどこかからコピペしてきた消し忘れかなんかだろう
ちなみに、InterruptedExceptionを揉み消すのは良くない習慣だ

875 名前:873 mailto:sage [2008/02/27(水) 03:13:13 ]
間違った。
2つのポリシーが上手い具合にOKなときにやっていいのは、インタラプトの発行だった。

タスクが InterruptedExceptionを飲み込んでいいのは、
そのタスクが IntteruptedException を飲み込んでOKなポリシーを持つスレッドからしか
呼び出されないことが保証されている場合だけだな、たぶん

main() は、どこからともなくやって来たスレッドで実行されるから、
基本的に飲み込んではいけないはず

876 名前:873 mailto:sage [2008/02/27(水) 03:50:52 ]
間違った。
「インタラプトすると不正な挙動をします」というポリシーを明記したタスクとして
InterruptExceptionを飲み込むならば、単に、

「インタラプトしてはいけないタスク」
+「インタラプトするとエラーメッセージを吐いて終了するっぽいメインスレッド」
=「このスレッド/タスクにインタラプトしてはいけない」

となるだけだった。さあ、どんどん飲み込みましょうねぇ


877 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 05:38:33 ]
>>864
s.getBytes("Windows-31J").length
など。

ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/lang/String.html#getBytes(java.lang.String)

878 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 08:04:00 ]
Beanのbooleanプロパティのgetter/setterメソッドの命名について質問です。
たとえばbeautifulというプロパティとしたら規則に従いますと
単純にisBeautiful(),setBeautiful(boolean)となります。
しかし、別の例で「上書き確認を表示する」など動詞的なbooleanプロパティ、confirmOverwriteを考える場合
isConfirmOverwrite(),setConfirmOverwrite(boolean)と、とても気持ちが悪いです。
このような場合は変数名を考え直す必要があるのでしょうか?
それともこういうもの、ということで割り切ったほうがいいのでしょうか?

879 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 09:13:57 ]
最近はokwaveとか教えてgooとかと
マルチするのが流行りなのか

880 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 09:19:46 ]
-ableをつける

isConfirmOverwritable()
setConfirmOverwritable(boolean)



881 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 09:23:42 ]
その場合 confirm に able を付けるべきだと思うんだ

882 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 09:52:15 ]
なるほどー!かなりすっきりしました。
ありがとうございます!!

883 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 11:17:58 ]
JasperReportsで帳票毎に四角形の色を毎回変えたいんだけど
どうしたらいいですか?

iReoprtで
rectangle、backcolorを変更するというのはわかるんですが、
毎回違うとどうしたらいいのでしょうか?



884 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 12:00:12 ]
毎回ってのが意味解らん。
毎ページなのか、毎項なのか、毎行なのか、毎カラムなのか。

まずは日本語でおk

885 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 12:20:01 ]
そもそもJava以前に、自分が抱えている問題を把握できていないケースが多い気がする。
だから日本語がおかしいし、説明されても理解できない。


886 名前:デフォルトの名無しさん [2008/02/27(水) 12:41:34 ]
右シフトでどっちが高速なのか試してください。
>> >>>

887 名前:883 mailto:sage [2008/02/27(水) 13:01:04 ]
枚ページです。

コンパイルしちゃった後でも変更できるんですか?


888 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 13:26:21 ]
sunはInterruptedExceptionは握り潰すな再スローしろってスタンスだっけ?

889 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 14:26:24 ]
>>888
このへんが参考になるかも
www.ibm.com/developerworks/jp/java/library/j-jtp05236/

890 名前:デフォルトの名無しさん [2008/02/27(水) 19:00:22 ]
java sound を使うとパソコンから盗聴が可能ですか



891 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 19:06:52 ]
こっちでやれ
pc11.2ch.net/test/read.cgi/tech/1201346803/l50

892 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 21:56:31 ]
Java の理論と実践: アトミックで行く
www.ibm.com/developerworks/jp/java/library/j-jtp11234/

このページにある、リスト3: SimulatedCAS クラスの compareAndSwap について質問です。
SimulatedCAS のコードのすぐ下にある説明書きに、
「CASベースの並行アルゴリズムは、スレッドがロックを待つ必要が全くないので、lock-freeと呼ばれます」
という記述があります。

しかし SimulatedCAS の compareAndSwap メソッドは synchronized メソッドに
なっています。Simulated って書いてあるから実際使うときは違うやつ使うのか
なと思いきや、 リスト4 のコードで思いっきり使ってあります。

compare-and-swap アルゴリズムを真似たプログラムは、 synchronized であっても
ロックされないように最適化されるということでしょうか?

893 名前:デフォルトの名無しさん [2008/02/27(水) 22:05:06 ]
レンタルサーバー借りて
毎日一回株価を取得してDBに放り込むプログラムを作ろうと思ってるんだけど
JAVAで時間がきたらサーバー上で実行するってことかのう?
どんな仕組みでできる?


それだけわかればDBにも移せるしダウンロードもできそうなだんだが

894 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 22:17:24 ]
普通 cron 使う。

895 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 23:33:28 ]
実行先のJREバージョンに応じて違う処理をさせたいと考えています。
バージョンに応じて違うクラスファイルを読み込むようにするには
どうしたらよいでしょうか?

JARアーカイブとMANIFESTファイルを利用しており、クラスライブラリが
たくさんあるのでバージョンごとに違うJARを作成するのは避けたいのですが・・・

896 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 23:43:07 ]
Class.forName(javaVersionName+ClassName).newInstance();

897 名前:867 mailto:sage [2008/02/28(木) 00:01:48 ]
いくつかのレスポンスありがとうございます。
申し訳ないんですが、ぜんぜんわからないです。
1時間くらいgoogleしてみたのですが、
そこから派生するキーワードや、
似たような単語が、同様の意味を成しているのかもわかりませんでした。
せっかく手を差し伸べていただいたところ申し訳ありません。

飲み込む、もみ消す、握りつぶす、
非チェック例外、チェック例外、チェック済み例外、チェックされる例外…
飲み込むというのは、InterruptedExceptionを投げずに処理してしまうということなのでしょうか…

898 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:11:59 ]
オブジェクト指向初心者です。
調べるの面倒です。教えてください。

このスレッドを読んでいて、初めて 委譲 を知ったのですが、
クラスの外部から、インスタンスのフィールドにアクセスできる仕様というのは、
オブジェクト指向的に、思い切り間違えなのでしょうか。
委譲 の概念が普通に使われるためには、
フィールドへのアクセスは、
クラスに所属するメソッド経由で、アクセスされる仕様である場合でないと、
アクセス方法に統一性がもたせられませんよね。

そもそも、このような質問をする原因が、
なぜフィールドの値をpublicにするなど、
所属クラス内のメソッド以外からの、フィールド変数(?)へのアクセスが許可される必要があるのか
が、わからないためです。

質問の仕方が、気に入らなければ、無視してください。
たぶん調べてもまともな回答にたどり着くに、長い時間がかかりそうだと思い、怠けています。

899 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:19:18 ]
答えるの面倒です。教えません。

900 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:21:29 ]
>>895
interface AnythingExecutor{
 public void doAnything();
}

public class AnythingExecutor14 implements AnythingExecutor{
 public void doAnything(){
  // JRE 1.4 用の処理
 }
}

public class AnythingExecutorFactory{
 public static AnythingExecutor create(){
  // JRE のバージョンを取得する
  if( 1.4 だった){
   return new AnythingExecutor14 ();
  }
  else if( 1.5 だった){
   return new AnythingExecutor15 ();
  }
  ...
 }
}

// 実際の処理
AnythingExecutor executor = AnythingExecutorFactory.create();
executor.doAnything();



901 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:23:16 ]
>>898
それは Java に対する質問ではない。
適当なスレを探すよろし。

902 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:29:32 ]
>>898
問題ないんじゃないか。setter/getter があるってことは、すなわち
public フィールドとほとんど等値なんだし。

ただ、フィールドへのアクセスと同時に何かしたい、外部からは
read のみに変えたい、みたいなことってことが結構ある。
そこで、フィールドは private にして隠す。アクセスは public な
getter/setter からのみ。というよくある構成に統一することで、
機能追加に対応しやすくなるからこうしましょう、という寸法。

中には「フィールドへのアクセスもオブジェクトに対する"操作"で
あるから、メソッドであるべき」なんていう人もいると思う。
まぁその辺をどう割り切るかは個人個人によるのでは。

あと委譲の話と何が関係あるのかが分からなかった。

903 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 01:11:04 ]
>>902
> 問題ないんじゃないか。setter/getter があるってことは、すなわち
> public フィールドとほとんど等値なんだし。

1つ大きな違いがあるぞ。setter/getterの場合、本来は違うものを同じものに見せ掛けるのが簡単にできる。
後付けで振舞いを変えるとか、透過的に処理を割り込ませたりするとか、実体をリモートに持たせるとか。

904 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 01:33:31 ]
setter/getterメソッドをわざわざ追加する意味がさっぱりわかなかったので
publicフィールドにガンガンアクセスするコードを書いてるのですが、ひょっとして一般的じゃないんですか?
>>903さんがどういう処理を指してるのかいまいちつかめません。。

905 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 01:38:00 ]
>>896,900
うわー、ありがとうございます!
早速試してみます。

906 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 01:38:32 ]
>>877
やさしいなー

907 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 01:54:20 ]
>>904
意味が分からなければ今のスタイルを続けていけばいい。
そのうち面倒ごとが起こったときにアクセッサの意義が分かるよ。

908 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 07:09:55 ]
>>892
値を一つ変えるのに、払うコストをどれだけ小さく出来るか、という話。
この例はシミュレートだけど、ハードウェアでサポートしている CPU もあるよ、と言うこと。

「スレッドがロックを待つ必要が全くない」というのは、
リスト2で行われてるような処理をする必要がない、ということ。

リスト4で注目するべき点は、increment メソッド内の get と CAS の間で、
継続したロックが保持されていないこと。
そして、increment 自体が呼ばれてから値を戻すまでに
value の get 値が 1 "以上"変わること。

909 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 09:16:22 ]
test

910 名前:Hoge mailto:sage [2008/02/28(木) 11:32:12 ]
はじめまして、質問させていただきます。

DJUnitを使って単体テストを行っているのですが、
テスト結果の確認方法として、

  ○○クラスの△△メソッドが何回呼ばれたか?

を確認したいのですが、方法がわかりません。

assertCalled(String, String);
を使えば、メソッドが呼ばれたかどうかは確認できますが、
何回呼ばれたかは確認できません。

なにか良い方法はないでしょうか?



911 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 12:30:14 ]
未だに使っている所あるとは驚き

912 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 12:44:49 ]
>>892
それらは 「振る舞いを示すコード」 というタイトルや Simulated というクラス名からわかるように、
単に動作を説明するための例にすぎない。 真似ても別に最適化されない。
実際にアトミック操作したい場合は java.util.concurrent.atomic.AtomicInteger を使う。
リスト5では AtomicInteger 使ってるだろ。

913 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 13:46:34 ]
だって柏原だって経済学部じゃん

914 名前:Hoge [2008/02/28(木) 13:47:56 ]
>>910

すいません。自己解決しました。
調査不足でした。

getCallCount(String, String)

という便利なメソッドがありました。

ありがとうございました。

915 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 16:33:08 ]
FileInputStream fis = new FileInputStream(in); // in : 入力ファイル
fis.read();
....
fis.getChannel().position(0);
fis.read();
...
fis.close();
今までFileChannelを知らず、一方通行なInputStreamでランダムにアクセスできるのは気持ちが悪いのですが、こんな感じでポインター移動するのって安全ですか?

916 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 16:36:04 ]
そのストリームがファイルだと分かってるから良いんじゃねーの。

917 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 17:20:24 ]
そうですよね。おーかなり自由度が増しますね。
ありがとうございました。

918 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 22:11:27 ]
swingについて、教えてください。

PaneとPanelの違いがよくわからないのですが、
JComponentを継承しているコンテナに関して、
付加機能が一番小さいものがJPanelで、
JPanel以上の何らかの機能が付け加わったものがPaneなのでしょうか?
コンテナの中でPanelだけ、PaneでなくてPanelと呼ばれる理由は何なのでしょうか?

あと、もうひとつ。
Containerクラスのオブジェクト(というかJFrame.setContentPane())をJPanelにキャストして、
コンテナとしている参考コードがあったのですが、
サブクラスの変数にキャストさせ(て代入する)理由がわかりませんでした。
なぜなのでしょうか?

919 名前:918 mailto:sage [2008/02/28(木) 22:13:40 ]
918です。
918で記述ミスしました。
>JFrame.setContentPane()
JFrame.getContentPane()
でした。

(JFrame#getContentPane() と記述するとどういう意味なのでしょうか…。)

よろしく御願い致します。

920 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 22:29:34 ]
>>918
さぁ?
名前なんて付ける人の趣味みたいなもんだし、深く考えても仕方ないような

ちなみに、JComponentを継承してるコンテナ、というが
JComponentはContainerのサブクラスだから、JComponent自体がコンテナだよ
まぁJButtonの中に他のコンポーネント入れたりはあんまりしないけれど・・・

ContainerになくてJPanelにあるメソッドを何か使いたかったんじゃないかね
コード見てわからなければ書いた人に聞くしかない

JFrame#getContentPane()はJFrameクラスのgetContentPane()メソッドのこと
JFrame.getContentPane()と書くと、staticメソッドを呼んだ戻り値について言ってるようにも見えるので、区別のために



921 名前:918 mailto:sage [2008/02/28(木) 22:38:34 ]
>まぁJButtonの中に他のコンポーネント入れたりはあんまりしないけれど・・・
!!!え?
そうか、継承しているから継承もとの機能はあるのか…。
無効になっていて然り、とか、どこかで思っていたのか、気がつきませんでした。

ContainerのオブジェクトをContainerのサブクラスにすると、サブクラスのメソッドが使えるということで?
これは、例外が発生しそうで危ない予感もするのですが、
そういうコードを意識して使うような設計もあるのですか?

>JFrame#getContentPane()
ありがとうございます。自力だとどれだけ時間かかったかわかりません。
これをgoogleにはどうすればいいんだろう…。記号が…。スレ違いですね、失礼。

922 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 22:49:18 ]
>>921
>ContainerのオブジェクトをContainerのサブクラスにすると、サブクラスのメソッドが使えるということで? 

いや、まさか。
JFrame#getContentPane()が返すContainerが実際にはJPanelだとわかっている場合だけ出来る。
実際にJPanelを返すからといっても、ドキュメントにそんなことは書かれていないので、良い習慣とは言えない。

923 名前:918=921 mailto:sage [2008/02/28(木) 22:50:58 ]
>920
>まぁJButtonの中に他のコンポーネント入れたりはあんまりしないけれど・・・
感動した。
感動しました。
変な方言を覚える前に、920の指示の元Javaを学びたい!
自分に本か、Web資料の推薦を!

924 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 22:59:41 ]
graphic JAVA Mastering the JFC
これ読めばSwingの仕組みは大抵わかるよ。
AWTから読むと上下*2の四冊だけどかなり勉強になる。

925 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 23:07:27 ]
>>921
> 例外が発生しそうで危ない予感
どうしてもやりたければ、instanceof でJPanel だと確認してからキャストを行う。
というより、キャストの前には必ず instanceof で対象を確認すること。

926 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 08:02:24 ]
質問です。

javaはビッグエンディアンという記述をよく見かけますが、
その根拠がよくわかりません。
例)ttp://www.geocities.jp/flame_freezing_charm/Works/Memo/JAVA/prog.htm

ご存知の方いましたら教えてもらえないでしょうか?



927 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 08:06:33 ]
int x = 0x12345678;
System.out.printf("%x%n", x & 0xFF);

これが 78 と出ればビッグエンディアン、12 と出ればリトルエンディアン。

928 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 08:10:58 ]
>>927
そのコードを実行しても、実行したプラットフォームのみでしか
エンディアンは確定しないのではないですか?


929 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 08:49:18 ]
>>926
java.io.DataInput#readInt() とか java.io.DataOutput#writeInt(int) みたいに、
標準APIの一部のクラスがビッグエンディアン使ってて、
さらに、1.3までは標準APIにリトルエンディアンで入出力できるクラスが無かったから。

930 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 08:53:43 ]
>>928
というか、>>927のコードを(System.out.printfをprintfに置き換えたものを)
C言語でやっても、エンディアンなんかわからないけどね。



931 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 10:44:36 ]
はいはい! 先生方に質問よろしいでしょうか!
Javaアプレットを使ってブラウザ画面の自動撮影を行いたいんですが、どういう組み方をすれば良いんでしょうか!

訪問者が来る度にスクリーンをキャプチャしてサーバーに保存、
自分の環境では確認できない動的なサイトの動作チェックに使いたいと思います!

932 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 11:13:12 ]
>>931
セキュリティ上の問題があるので無理。

933 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 11:52:57 ]
質問です。
www.techscore.com/tech/J2SE/Thread/5-2.html
上記のソースにて、queue.size() == 1の時は、put()からのqueue.addFirst(obj)呼び出しと、
get()からのqueue.removeLast()呼び出しが同時に呼び出される可能性があり、
LinkedListはスレッドセーフではないから問題あり、と思うのですが認識あってますか?
notifyAll()の使い方の解説なので、ソースにケチをつけてる訳ではないです。

934 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 12:10:26 ]
>>933
synchronized付いてるから同時には呼び出されない

935 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 15:29:18 ]
>>932
ええ、そんな!
何とかなりませんか! 先生!

936 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 15:39:42 ]
例えば!
Robotを使いスクリーン画像を取得!
そのデータをURLConnectionでCGIに送り、
CGIでログを保存するみたいな形でできそうな気がするんです!

問題はRobotの自動実行が可能かどうかで!
もし不可能なら利用者にボタンを押させる方法でも構いません!
やりたいのは動的なサイトの確認であって、不正行為ではないんです!
だから利用者の確認をしっかり取らなければならないというのであれば従います!

先生お願いします!
僕に僅かでも良いので知恵をお貸し下さい!

937 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 15:50:40 ]
例えば!
Robotなんてアプレットで許したらマウスも自動で動かせる!
そしてマウスで勝手に送信ボタンを押させ、
CGIで不正取得なんかもできそうな気がするんです!

問題はその動作が利用者がやったのかRobotがやったのかで!
もし不可能なら不正取得かサイトの確認か判断が付きません!
やりたいのが動的なサイトの確認であって、不正行為ではないと証明できないんです!
だからアプレットではそんなことは許されていなくて、それにみんな従います!

先生お願いします!
僅かでもいいので理解してください!

938 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 15:57:58 ]
javaで画面のキャプチャなんて取れるの?

939 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 16:01:16 ]
質問者も言ってるように、Robot使えば可能

あと、ぐぐったら
q.hatena.ne.jp/1138377277
こんなんがでてきたよ。
これで目的は達成できるかな?

940 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 16:03:14 ]
いつぞやの謎スクリプトを髣髴とさせるな。
// CGI を設置できるのだから、問題のSSを送ってもらえば終了。

>>938
java.awt.Robot.createScreenCapture(Rectangle) で出来ますよ。



941 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 16:12:46 ]
>>939
ありがとうございます先生!

ttp://browsershots.org/
このツールでほとんどの環境が確認できました!
さすが先生です! また何かあったときよろしくお願いいたします!

942 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 16:25:28 ]
>>937
ええ! ということは先生!
アプレットではRobotの使用ができないということなんでしょうか!

943 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 16:55:31 ]
>>942
署名付ければ出来なくは無い
でもそんなアプレット誰も実行してくれないだろう
スクリーンショット自動送信なんて、機密情報もれまくり
お前が今見てるその秘密の画像も勝手に送信されてるよ

944 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 18:50:25 ]
>>943
そうなんですか!
何から何までありがとうございます!

945 名前:デフォルトの名無しさん [2008/02/29(金) 20:28:21 ]
技術的に出来ないのと倫理的に出来ないのは分けて書こうぜ
紛らわしい

946 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 21:12:49 ]
>>941で目的達成できてるなら、質問者には技術的にできるかできないかなんてどーでも良くなってるんじゃ?

947 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:39:40 ]
Script API で実行するスクリプトだけセキュリティ制限かけられない?
今のままだとファイル消したりネットワークアクセスしたりやりたい放題なんだけど。

948 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 02:05:29 ]
標準APIじゃ無理。

949 名前:デフォルトの名無しさん [2008/03/01(土) 03:28:21 ]
コメントをUTF-8で書いてるんだけど、Javadocにすると文字化けする。
何とかできないでしょうか?

950 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 03:33:02 ]
>>949
javadoc コマンドの -encoding か -charset
これぐらいはマニュアル見て発見しよーぜ。




951 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 03:33:04 ]
>>949
javadoc -encoding UTF-8

952 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 03:37:38 ]
>>949
javadocだけじゃなくてコンパイルするときにも警告が出ない?
システムのデフォルトの文字エンコード以外を使うときはencodingオプションを

953 名前:デフォルトの名無しさん [2008/03/01(土) 07:52:08 ]
本当に基本的な質問で申し訳ありません。
フォントを変更したときに
setFontでPLAINに変更してもデフォルトのボールドのかかった
フォントが印刷に反映されません。
どこかで読んだと思い過去スレで探したのですが見つかりません。
教えていただければ幸いです。

954 名前:デフォルトの名無しさん [2008/03/01(土) 09:02:08 ]
public class sample69 {
public static void main(String[] args) {
p_calc.Calc calc =new p_calc.Calc();
System.out.println(calc.sum(1,2));
}
}
コンパイルすると、

955 名前:デフォルトの名無しさん [2008/03/01(土) 09:02:59 ]
c:\source>javac sample69.java
.\p_calc.java:3: ')' がありません。
int sum(int i; int j){
^
.\p_calc.java:3: ';' がありません。
int sum(int i; int j){
^
.\p_calc.java:8: クラス sample68 は public であり、ファイル sample68.java で宣
しなければなりません。
public class sample68 {
^
sample69.java:3: p_calc にアクセスできません。
クラスファイル .\p_calc.java は不正です。
ファイルにクラス p_calc が含まれていません。
削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。
p_calc.Calc calc =new p_calc.Calc();
^
エラー 4 個
これが出ます。原因はなんでしょうか?

956 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 09:18:13 ]
>>955
1. 2 と同じ原因。i の後のセミコロン。
3. ファイル名と public なクラス名が違う。
4. p_calc クラスがコンパイル出来ず、実行ファイルが見つからない。

957 名前:デフォルトの名無しさん [2008/03/01(土) 09:46:26 ]
sample69をコンパイルしようとしているのに、sample68のことが出るって変じゃあないですか?

958 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:34:17 ]
>>957
とくに変じゃないよ。
sample69 で使われている p_calc.Calc を見つけるために p_calc.java
もコンパイルしているんでしょう。


959 名前:デフォルトの名無しさん [2008/03/01(土) 10:51:05 ]
今日の日付を
 Date date = new Date();
 SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
 String today = sdf1.format(date);
で取得して、日付2008/3/10と比較させ今の日時より前か後かという判定を
行いたいのですが、具体的にどうすればよいのでしょう?

960 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:57:08 ]
>>959
Calendar#afterとCalendar#beforeを読むべし
実際はGregorianCalendarになるけどな



961 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:59:05 ]
>>960
ちょっと調べてみます

962 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 11:21:03 ]
音声認識に興味があるんだけど、Java Speech APIで実用に耐えられそうですか?
それともC++あたりに鞍替えした方がいいですか?


963 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 11:23:35 ]
_

964 名前:959 mailto:sage [2008/03/01(土) 11:27:16 ]
調べて書いてみたのですが、今日の時刻はこんな感じでよいのでしょうか?

 SimpleDateFormat dateformat = new SimpleDateFormat("yyyy/MM/dd");
 Date now = new Date(); //現在時刻を取得
 String today = dateformat.format(now); //変数todayに今日の時刻をyyyy/MM/dd型でいれる

965 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 12:08:15 ]
面倒くさいから、y*10000+m*100+d同士で比較しちゃう。

966 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 12:17:14 ]
Strutsアプリケーションを作成しているのですが
セッションIDをSHA-1でハッシュ化するにはどうしたらよいでしょうか?

967 名前:959 mailto:sage [2008/03/01(土) 12:20:16 ]
ここまでできました
 //今日の日付を取得
 Date now = new Date(); //今日の日付
 SimpleDateFormat dateformat = new SimpleDateFormat("yyyy/MM/dd"); //型の指定

 //日付の比較
 if (now.before(dateformat.parse("2005/1/1"))) {
 //今日が2005/1/1より前のときの処理
 }else{
//今日が2005/1/1より後のときの処理
}

ただ、これだと1番最後の行でエラーがでてしまいます・・
エラーは 「処理されない例外の型 ParseException」です

968 名前:959 [2008/03/01(土) 12:21:38 ]
エラーは一番最後じゃなくて
if (now.before(dateformat.parse("2005/1/1"))) {  のところでした

969 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 12:41:34 ]
>>966
Javaでダイジェストを生成する
ttp://www.atmarkit.co.jp/fjava/javatips/117java021.html

>>967
> 数値: フォーマットには、パターン文字の数は最小桁数になります。
二文字使ってるから最低二桁なのでは?

970 名前:959 [2008/03/01(土) 12:52:53 ]
いろいろ調べてるんですがよくわからないことばかりです
日付の比較のところがよくないとは思うのですが;;

// 今日の日付を取得
Date now = new Date(); //今日の日付
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy/MM/dd"); //型の指定
String today = dateformat.format(now); //変数todayに今の時刻がはいる
解約予定日を取得
SimpleDateFormat kaiyaku = new SimpleDateFormat("yyyy/MM/dd");
String kaiyakuyoteibi = kaiyaku.format(2005/10/15);

// 日付の比較
if ( ) {
//System.out.println("今日は2002/06/10よりも前の日です。");
}else{

}



971 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 13:09:40 ]
時刻も含めて比較したいなら、Date#compareToでできる。
日付で切り捨てたいなら、Calendarに変換してsetで時刻を0にする。

ユーティリティメソッド作ってそこで比較すべし。
あちこちで比較してたら、バグの温床。

ついでに言えば、「今日の日付を取得する」もユーティリティメソッドにして、
システムプロパティなどで、「今日の日付」を設定できるようにしておくと、
わざわざシステム日付を変更しなくとも、日付が変わったときのテストができる。

972 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 13:12:13 ]
>>947
権限の低いクラスローダでロードしたクラスを挟んでスクリプトを呼ぶといいんじゃないかな、と推測だけで言ってみる

973 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 13:39:35 ]
スレ違いかも知れませんが…

Commons/Net 1.4.0 のFTPClientを使っていて 昨日から原因不明のエラーが多発してました
ようやく判明した原因は、FTPClient#listFiles()が返すFTPFile[]の要素が
なんと2/29のタイムスタンプのファイルについてはnullになってしまう事でした!
とりあえずサーバの関連ファイルをtouchして急場をしのぎましたが
この件について善後策を相談するのに最適のスレなどがあれば教えて下さい

974 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 13:51:14 ]
>>973
ドキュメントにバグの報告先とかメンテナの連絡先が書いてあるはずだから、
最小の再現コード付けてレポートする。

975 名前:デフォルトの名無しさん [2008/03/01(土) 14:50:50 ]
勉強のためにファイル転送のプログラムを作っているのですが、
いまいち上手くいきません。流れとしては、
@(送り手) FileChannel(sourceChannel)でファイルを読み込む
A(送り手) SocketChannel(destinationChannel)で相手に送る
B(受け手) SocketChannel(sourceChannel)で受け取る
C(受け手) FileChannel(destinationChannel)でファイルに書き込む

送り手
while(destinationChannel.isConnected()){
 buffer.clear();
 if(sourceChannel.read(buffer) < 0)
  break;
 buffer.flip();
 destinationChannel.write(buffer);
}
受け手
while(sourceChannel.isConnected()){
 buffer.clear();
 if(sourceChannel.read(buffer) < 0)
  break;
 buffer.flip();
 destinationChannel.write(buffer);
}

bufferはByteBuffer型になっています。
これを実行すると、送り手はエラーもなく正常に終了しているのですが、受け手で
「java.io.IOException: 既存の接続はリモート ホストに強制的に切断されました。」というエラーが出てきます。
エラーが出た場所 => if(sourceChannel.read(buffer) < 0){

長文な上にわかりにくい文章かもしれませんが、
なぜこうなるのか教えてもらえないでしょうか?

976 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 15:02:45 ]
>>975
データの受信自体は問題ないのですか?

単にデータを送るだけだと、送り手側でソケットを閉じると、
受け手側でエラーが出るはずですが…

何らかのプロトコルで「送受信完了」をやり取りする形にすれば
問題のある状態なのかどうか判断できると思います

977 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 15:11:10 ]
勉強のためならまずCでやったほうがいいよ
Javaでやっても意味ないよ

978 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 15:27:11 ]
質問させてください

String str = "12345";
str += "abcde";

これで連結しようとするとrangeが足りないと出ます
すでにあるStringクラスのオブジェクトに文字列を連結するための
メジャーな方法などがあれば教えてください

979 名前:デフォルトの名無しさん [2008/03/01(土) 15:56:12 ]
>>976
データの受信自体が出来ないみたいです。
送り手側は一通りプログラムが実行されて終了するのですが、
受け手側は if(sourceChannel.read(buffer) < 0) の部分で処理が止まっているみたいです。
受け手は、送り手が書き込むのを待っている状態になっているんでしょうか?

>>977
時間に余裕が出来ればCも勉強しようと思っています。
今は就職活動中であまり時間が無くて、息抜きでやっている状態なので...
助言ありがとうございます。


980 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 16:00:40 ]
>>978
不可能



981 名前:978 mailto:sage [2008/03/01(土) 16:02:28 ]
自己解決しました
スレ汚しごめんなさい

982 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 17:44:15 ]
ServletContextを得るためのgetServletContext()というメソッドがありますが、
APIを見てみるとServletContextはインタフェースなのでオブジェクト化は出来ませんよね。
getServletContext()は、実際にはServletContextではなく、ServletContextを実装するサブクラスを作ってるんでしょうか?

983 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 17:46:00 ]
ServletContext context = getServletContext();
System.out.println(context.getClass().getName());

984 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 18:13:50 ]
次スレたててみる

985 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 18:18:51 ]
次スレ
【初心者】Java質問・相談スレッド113【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1204363011/

986 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 19:00:59 ]
>>985
乙彼Death

987 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 21:31:24 ]
>>975
送り側はちゃんと閉じてる?

988 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 02:22:23 ]
PHPを学習した後だとJavaの習得は容易ですか?

989 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 02:31:14 ]
いいえ

990 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 02:38:08 ]
PHPの知識は役立たないの?



991 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 02:47:56 ]
javaの勉強はじめました。

ネットワークとかGUIとか使って何か作りたいのですが、
何も思いつかないので、
パケットモニタ(?)(今どんなメッセージで通信されているか)みたいなのを作りたいのですが、
ネットワークに関しては、どの変の勉強すれば早そうでしょうか。
この辺のクラスは古いから使わないほうがいいとか、
この辺使えばすぐじゃないかとか教えていただけると助かるのですが、
助言もらえませんか。

GUIに関しては、本とWebを参考にして手をつけていたら何とかなりそうな気がしているのですが、
ネットワークは難しすぎて…。

992 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:16:15 ]
Java→PHPなら簡単

993 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:18:43 ]
>>991
何をしたいのか本人すら分かってないのに他の人に聞いても分かるはずないよ
ネットワークって具体的に何?サーブレットでWebアプリ作るとかじゃ駄目なの?

994 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:22:47 ]
パケットモニタはドライバ組まないと無理だ。
通信なら Socket 使えばいい。

995 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:36:45 ]
>>934
>synchronized付いてるから同時には呼び出されない
え?メソッドレベルの排他というのは、一つのメソッドに複数のスレッドが同時に入れないだけで、
アクセスするメソッドが別なら排他されないのでは?やば、今までずっと間違えてきたかも。。。


996 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:38:58 ]
なんかいろいろ勘違いしてるなw

997 名前:933, 995 mailto:sage [2008/03/02(日) 03:44:36 ]
>>934
いやいや、やっぱり同時アクセス可能ですよ。でないとnotifyAll()でwait()を解除してあげられないです。

998 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:47:47 ]
インスタンスメソッドの synchronized 修飾子は synchronized(this){ } でメソッド内全てを囲ったのと等しい。
クラスメソッドの synchronized 修飾子は synchronized(Queue.class){ } と等しい。

999 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:51:58 ]
www.amazon.co.jp/dp/4797337206

1000 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 03:55:06 ]
1000 なら Java 死滅確定



1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<275KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef