1 名前:デフォルトの名無しさん [2007/07/27(金) 08:46:32 ] プログラミング言語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質問・相談スレッド103【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1182896607/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝なく存じます。 次スレは>>980 あたりで。
231 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:12:54 ] >>230 ・競合ライブラリを最新のものに統一する。動かない部分は自前で修正 ・それかクラスローダを分ける
232 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:14:47 ] >>231 クラスローダを分けるとClassクラスとかでインスタンス生成するとき面倒じゃない? 競合ライブラリを最新のものにして、古いメソッドや仕様変更したAPI使ってたら、アウトだし。
233 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:18:44 ] 初心者じゃないって前振りはいったいなんだったのだろうか。
234 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:21:31 ] class A<T> { List<T> list = new ArrayList<T>; public List<T> getList() { return list; } } みたいにクラスにリストを持たせたとき、 A<Hoge> a = new A<Hoge>(); に対して a.getList.add(hoge1); とか a.getList.remove(hoge2); って出来ないの?やってみたところできてないっぽいんだけど
235 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:26:58 ] できるでしょ。 >a.getList.add(hoge1); a.getList().add(hoge1);
236 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:29:07 ] uho-勘違いしていました お恥ずかしい(-_-) >>235 回答ありがとうございました
237 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 02:33:58 ] 複数のスレッドから操作されるフィールドcountに volatlieを付けるとする。どの程度保障されるもの? while (count < 0) { } public void setCount() { this.count = count; }
238 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 02:35:06 ] 仮引数書き忘れた。。。
239 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 02:44:20 ] そんな意味不明なコード片じゃ何が言いたいのかわからん。 count++; みたいなコードは、volatile であってもアトミックにならない。他のスレッドが割り込む可能性がある。 つまり count++; をするスレッドが複数あったらだめ。 書き込むスレッドがひとつだけの場合は複数のスレッドから読んでも大丈夫。 ・・・ていう話? それとも volatile の正確な定義が知りたいのん?
240 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 02:45:56 ] Java の volatile はいい加減な実装になってる可能性がある、 って話を見たことがあるんだけど、今でもそうなの?
241 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 02:55:30 ] 可能性の話をされてもなぁ。 1.4 以前と 5.0 以降で volatile の仕様が変わったという話はある。 少なくとも 5.0 以降は仕様どおり実装されてんじゃない? Sun の VM では。 でなきゃ、java.util.concurrent.* あたりが今ごろ異常動作しまくりのはず。 詳しい話はこのへんでもどうぞ↓ www-06.ibm.com/jp/developerworks/java/040416/j_j-jtp02244.html www-06.ibm.com/jp/developerworks/java/040514/j_j-jtp03304.html www-06.ibm.com/jp/developerworks/java/library/j-jtp06197.shtml
242 名前:223 mailto:sage [2007/08/05(日) 03:25:44 ] >>225 ,226,228 回答ありがとうございます。 勉強になりました。 昔ならったコボルでは long l=0x0123456789abcdefL; byte[] b=new byte[8]; b=l; で、lをbに代入すると [01][23][45][67][89][ab][cd][ef] こんな感じにカパッと当てはまったなー、javaではどうやればいいんだろうと思ったしだいです。 ビッグエンディアンには注意します。
243 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 04:02:50 ] Java内部がビッグエンディアンというか、 Data*StreamやデフォルトのByteBufferがそう補正してるってのが正しい?
244 名前:デフォルトの名無しさん [2007/08/05(日) 04:09:43 ] 正しくない。 というか意味がわからん
245 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 04:40:07 ] 意味が分からないなら書くな。てかJavaDocに載ってる。
246 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 05:17:10 ] 最近byteとintの単項数値昇格ネタ増えたな。 俺自身バイト指向でデータ扱うことが減ったのですっかり忘れてた。 "& 0xFF"で下位bitのみとれって話だよね。
247 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 09:05:18 ] Jakarta CommomsのHttpClientについてのいいページない? ググったけど、情報量が足りないページばかり。
248 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 09:22:41 ] >>247 情報量って。。。本家にいくらでもあるだろ
249 名前:デフォルトの名無しさん [2007/08/05(日) 09:27:21 ] ファイルの入出力をしているのですが、 もしプログラムと同じディレクトリに入出力用ファイルあれば、 そのファイルから中身を取り出し・加工して再びそのファイルに書き出す。 もし無ければ、新しいファイルを作成して、そこに書き出す。 という用に行いたいのですがどの様にしたら良いでしょうか? 教えてください。
250 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 09:50:44 ] >>249 どのJAVAの入門書でもサンプルコードが載ってるだろ ググれば山ほどあるだろ
251 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 11:27:43 ] >>242 時代の流れだな Javaでバイトを意識してデータを扱うケースは稀だし、知らない技術者も多い
252 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 13:02:22 ] String型変数に入っている(2バイト)文字の文字列を 漢字、ひらがな、カタカナ、その他記号などといった種類別に分割するということを 「プログラミング言語Javaに関する質問スレです。」 ↓ 「プログラミング」「言語」「Java」「に」「関」「する」「質問」「スレ」「です」「。」 Javaで(効率よく)やるにはどのようにしたらよいでしょうか? (というか、文字種別をどうやって判断したらよいでしょうか?) 文字コードによる問題などもありますか?
253 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 13:07:50 ] ひらがなとカタカナは順序どおり並んでるらしいからif thenでやるのが簡単っぽいけど
254 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 13:10:03 ] 漢字・ひらがななら3バイトだと思うのは置いといて、 自然言語解析するか単純にテキストそう舐めして用意しといた単語リストと照らすか。 日本語はRPNなのでry 言い出したら切りがないな。
255 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 13:12:39 ] UFT-16なんだから、全部2バイトだろ
256 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 13:14:09 ] volatlieの件だけど、1.5ならいけそうです。 ありがとう、検証してみます。 1〜400のスレッドから操作を受けてるみたい
257 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 13:36:33 ] >>256 1.5ならば、AtomicIntegerの使用を検討してみたら? アトミックな操作が簡単に出来る ただ、そもそもスレッド周りの勉強をした上でスレッドに手を出した方がいい
258 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 13:39:45 ] >>252 効率よくやる方法はかなり難しいのではないか? 英語のように単語間がスペースで区切られているなら楽だろうが・・・ ぱっと思いつくのは、カタカナ・ひらがな・半角英数(といくつかの記号)は正規表現かなにかで定義 漢字で抽出するのは難しすぎるので「その他」で我慢する 後は、頭から崩して連結していくしかないと思う 下手に文字コードを数値で表現した所で、バグは増えても実行性能は大してかわらなそ
259 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 13:40:16 ] スレッドに手を出さなきゃスレッドの勉強なんぞできないだろ このスレの自称中級者どもはうざいのばっかだな・・・
260 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 13:51:02 ] お前は新しい技術をコピペでもして使ってから勉強するのか? 動けばいいという低レベルなマの典型だな
261 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 13:56:40 ] お前のコードはバグだらけなんだろうな。 普通は模範的なコードを見て覚えるもんだ。
262 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 13:58:18 ] 模範的なコードを意味も含めて理解することが勉強ではないのか?w
263 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 13:59:59 ] >>262 お前自身が何も理解してなさそうだな。この流れをみるに。
264 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 14:02:00 ] >260の頭が悪いということは解った
265 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 14:02:53 ] 初学者がvolatileって単語にたどり着いてる時点でGoサインはでてるだろ いじって覚える絶好のころあいだと思うのだが違うのか?
266 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 14:27:56 ] 別の人がさわらないプログラムだからと言って、クラス変数を全てpublicにしたら怒られそうですが。 public class Hogegege { private String name__; public String getName() { return new String(name__); } } っていうように、クラス変数を要求されたときに 新たに生成したものを返して絶対に変更できないようにした方がいいんでしょうか? それとも単に return name__; でOK?
267 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 14:32:10 ] String は元から絶対に変更できないから単に return でOK。 変更できるようなオブジェクト (普通の配列とか) は clone した方がいいこともある。
268 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 14:40:46 ] StringやIntegerなどは不変クラスと呼ばれる値オブジェクトとして理想的な構造を持ってる。 例えばOSごとの改行コードを返すクラスがあるとして、 それがchar[]で返されるものなら、それは return clCode.clone(); とかすべき。 コレクションならCollections.unmodifiable系メソッドでラップするのもよし。
269 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 14:50:07 ] 定数にコレクションを使うときに下のようにすることもある。 public static final Set<String> SUPPORTED_LANGUAGE; static { Set<String> set = new LinkedHashSet<String>(); set.add("ja"); set.add("en"); SUPPORTED_LANGUAGE = Collections.unmodifiableSet(set).; }
270 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 14:52:08 ] 要求された側が何をしたいかにもよる 要求された側も何をさせてOKかを考える その上で生で公開させてもいいし、防御的にコピーを返してもいい 結局は要求次第だが、なるべくは防御的にするのがセオリー Stringに関しては>267,268の説明の通り たが、char[]をコピーするか否かは要件次第なので、一概にコピーするべきとは言えない
271 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 15:41:35 ] 変なのが騒いでるが だれか満を持してネタ投下した>>255 に突っ込んでやれよw UTF系は固定長じゃないぞ。
272 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 16:15:11 ] UTF-32は固定長だが、UTFじゃなかったのか。
273 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 17:10:30 ] UTF-32は21bitになったUnicode3.1の全コードを単一のbit長で表現するために 後から作られたから可変長にする必要がないだけだよ。 アレが特殊。21bit範囲内はUCS-4と互換性を取るって目的もあるし。 可変長より固定長の方が扱いやすいからbitの無駄使いより扱いやすさを優先した符号化方式。 UTFは元来可変長で表すもの。
274 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 17:13:49 ] サロゲートがそもそも後付けだろ
275 名前:132 mailto:sage [2007/08/05(日) 17:31:38 ] 連結って意味だったんですね^^; 謎が解けましたorz ありがとうございました。
276 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 17:48:43 ] サロゲートが後付けって言うかUnicode作り出した段階で すでに16bitじゃ足りないのは分かってたけどそれに対処したのが遅れただけ。 実装側の互換性の問題とかがあったから。
277 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 18:02:43 ] StringBuffer key = new StringBuffer(); Random random = new Random(タネ); for(int index = 0;index < 20;index ++) { key.append((char)('A' + random.nextInt() % 26)); } ランダムなAからZまでの文字を20個追加したいのですが、 変な文字列が連結されます。何がいけないのでしょうか? おしえてください。
278 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 18:08:47 ] >>277 nextInt()は32ビット乱数のはずだから負数も取った気がした。 0と自然数だけ欲しければnextInt(26)ってやれば0〜25をとるよ。
279 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 18:10:52 ] >>277 出来ました!どうもありがとうございます。
280 名前:デフォルトの名無しさん [2007/08/05(日) 18:13:04 ] >>277 random.nextInt() でマイナスも含まれるから。 試しにrandom.nextInt() だけ出力してみるといい random.nextInt() にはオーバーロードメソッドで、0からnまでの乱数を返すrandom.nextInt(n) がある random.nextInt(26) で試せば期待した結果になると思われ
281 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 18:23:18 ] アンカーミスった >>278 >>280 思い通りの動作が出来ました、どうもありがとうございますm(_ _)m
282 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 19:52:27 ] >>276 サロゲートペアはUnicode誕生から5年後に導入されたんだが。 適当なこと書かないでおくれよw
283 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 21:45:02 ] 小生、Eclipseを使って開発しているのですが 本日「BufferUnderflowException」なるものが発生しました。 ググってみたところ「相対「get」操作がソースバッファのリミットに達したときスローされる、チェックされない例外です。」 との記述があったのですがよく意味がわかりませんでした。 ここでいうソースバッファのリミットとはコンパイラーのメモリのことを指しているのでしょうか? もしメモリ関連のサイズのことを指しているのでしたらどこで設定できるのかどなたか教えていただけないでしょうか? ちなみにEclipseの設定→Java→インストール済みのJREに指定しているのは最新のJRE1.6.0です。
284 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 21:53:47 ] いや。 java.nio.ByteBufferあたりのクラスのget系メソッドでサイズをオーバーして読み込んでしまった意味。 配列で範囲外のインデックスを使ったっていうのに近い。 単にプログラミングミス。
285 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 22:04:45 ] >>283 相対操作はpositionが読み込んだ値のバイト数分先に進むんだよ。 あと何バイト読み込めるかはremainingで確認できる。 構造体チックに各メンバ変数の並びを仮定して使うなら、0, 4, 8みたく プリミティブごとのバイト数を足して絶対アクセスすればいい。
286 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 22:10:18 ] プログラムミスだなんて・・・・そんな・・・ 実績のある会社が提供してる有料のライブラリーに含まれるメソッドを使ってたんだけど 使い方がわるかったのかなぁ・・・あーもう嫌ぽ
287 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 22:20:12 ] すいません、javaである処理を実行すると コンソールの初めあたりに以下のようなエラーメッセージが出て VM?ごと処理落ちしてしまいます。 しかもこれは必ずは発生するというわけではなくて不定期に出てしまいます。 不定期ですが処理を繰り返しているとすぐ発生する感じです。 JREのランタイムも最新のものを指定いるのですが相変わらず発生します。 どなたかわかる方がいらっしゃいましたら教えてください 「An unexpected error has been detected by Java Runtime Environment」
288 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 22:29:50 ] エラーログ嫁
289 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 22:39:56 ] 申し訳ありません。エラーログ?を読んでもさっぱりわかりませんでした。 通常のログとは違ってこの処理落ちの場合にのみ生成されるログをのことだと思いますが なんか「Thread」「Process」「System」といった感じにわけられて情報を ダンプしているような感じに見受けられましたがエラー原因となるような記述は 書かれているのかいないのかサパーリでした。なにか読み方があるのでしたら教えてください
290 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 23:03:08 ] forum.java.sun.com/thread.jspa?threadID=777177 こういう感じのやつか? 最初のほうの#がついた行をうpしてみ
291 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 23:27:01 ] あぁそれですわ。でもログは職場のマスィーンにあるので今うpできんのです申し訳ないです
292 名前:デフォルトの名無しさん [2007/08/06(月) 00:13:57 ] >>286 ソースコード読んでみろ 実績のある会社ならばソースコードくらい提供できる 出来ないとか抜かすならば金払う必要なし 逆コンパイルしてバグ見つけて訴訟もおk
293 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 00:42:55 ] >>287 それってJavaからネイティブモジュール読み込んでます?*.dllファイルとか? それだともしかしたら、PCの相性が悪いだけかもしれません。 自分もJNIを用いたプログラムでブルースクリーン出した事がある。しかも不定期。。
294 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 01:06:59 ] ネイティブ使用ならVM引数にXcheck:jniをつけてみる しかし>>287 のよーな現象に陥ったことがない為役にたつかはわかんない。
295 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 01:15:05 ] >>286 まぁその会社のサポート窓口に訊いてみれば? 使い方の問題にせよバグにせよ、なんらかの返答はあるでしょ。
296 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 01:16:58 ] JDI でオブジェクト生成を監視するのってどうすれば良いとおもう?
297 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 03:02:37 ] >>282 お前は日本語理解しような。 16bitじゃ足りないのは初期段階から分かってたけど実装側を無視できなかったから"Unicode誕生から5年後に導入された"んだろうが。 だいたいjavaなら普段は拡張面無視してるからUTF-16で16bit単位の可変長だろうが。 固定長なのはUCS-2ですよw
298 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 08:10:39 ] UCS-2 UCS-4 っていうのは文字集合であってエンコーディングじゃないんでは?
299 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 12:16:16 ] >>252 単純にやりたいなら、java.text.BreakIterator#getWordInstance() 本格的にやりたいなら、形態素解析が必要。
300 名前:デフォルトの名無しさん [2007/08/06(月) 18:37:52 ] //Sample1 AAAAA * BBBBB //Sample2 XXXXX YYYYY ZZZZZ という中身のSample1.txtとうファイルを読み込んで *の部分にSample2.txtというファイルの中身を書き加えて Sample3.txtというファイルに書き込むとすればどうやって記述すればよいのか 教えてください。 //Sample3 AAAAA XXXXX YYYYY ZZZZZ BBBBB
301 名前:デフォルトの名無しさん [2007/08/06(月) 18:41:13 ] >>300 1. Sample1.txtを読み込む 2. Sample2.txtを読み込む 3. Sample3.txt に Sample1.txt と Sample2.txt の内容を書き込む
302 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 18:46:53 ] Sample1.txtを少しずつ読む *かどうか調べる *ならSample2.txtの内容をSample3.txtに書く *でないなら今まで読んだSample1.txtの内容をSample3.txtに書く Sample1.txtの終わりまで繰り返す
303 名前:デフォルトの名無しさん [2007/08/06(月) 19:30:00 ] >>301 >>302 ありがとうございます やってみます
304 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 01:38:48 ] あの、関数の引数にfinalは付けるべきでしょうか。 関数内では値を変えることがないし変わって欲しくない場合、 finalを付けた方がいいとは思うんですが、 全てに付けているとパラメータの部分が長くなってしまい見づらいといえば見づらいです。 常識的にはどうするべきなんでしょうか。
305 名前:デフォルトの名無しさん [2007/08/07(火) 01:49:10 ] >>304 限りなく好みかもしれない場所の1つだな finalにした所でオブジェクトの内部は変更される可能性はある 引数に対して再代入する事自体を禁止し、FindBugsアタリでチェックしておけば不要とも言える (逆に言えば、メソッド内で引数への再代入を防止する為にfinalを付ける、だがw) 個人的には不要派
306 名前:デフォルトの名無しさん [2007/08/07(火) 01:50:10 ] final付ける場合と付けない場合もあるし、 つけなくてはエラーになるときがある。 べつに無理につける必要はないと思うのだが....
307 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 01:52:40 ] >>304 プロジェクトで決められてたら、それに従えばいい。そうでなければ好きにすれば良い。 経験的には手作業で final 付けてると、そのうち嫌気がさして止める。
308 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 02:06:45 ] 一番最初にやるHelloWorldなんですけどテキストに書いて それをコンパイルしようとしたんですけど 「javacは内部コマンドまたは外部コマンド、操作可能なプログラム またはバッチファイルとして認識されていません」となってしまいます。 どうしたらコンパイルできるようになりますか?
309 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 02:08:35 ] 環境変数でググれ
310 名前:デフォルトの名無しさん [2007/08/07(火) 02:10:14 ] >>306 final付けなくてはエラーになると本気で思っているならば勉強不足 それは匿名クラスなどに参照を渡しているからだろう
311 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 02:10:26 ] 環境変数PATHを設定する
312 名前:308 mailto:sage [2007/08/07(火) 02:23:25 ] とりあえずみんなが指摘してくれた通り環境変数見てみたんだけど多分あってると思う。 ;C:\Program Files\Java\jdk1,5,0\binをpathに加えればいいんだよね?
313 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 02:23:54 ] JDBCでのデータベース接続ができなくて困っています。以下のように作業を進めました。 postgres@debian$ createdb hellodb ------Connector.java------ package db; import java.sql.Connection; import java.sql.SQLException; import java.sql.DriverManager; public final class Connector { private static Connection conn; static { try { Class.forName("org.postgresql.Driver"); } catch (ClassNotFoundException ex) { throw new InternalError(ex.getMessage()); } } private Connector() { } public static Connection open() throws SQLException { return DriverManager.getConnection("jdbc:postgresql://debian/hellodb", "postgres", ""); } }
314 名前:308 mailto:sage [2007/08/07(火) 02:26:07 ] やっぱり駄目だ・・・誰か助けてくれ
315 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 02:27:05 ] カンマとピリオド再確認
316 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 02:33:38 ] あと、本当に 1.5.0 かどうかも。 実は 1.6.0 をインストールしてましたとか。
317 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 02:34:29 ] ------ConnectorTest.java------ package db; public class ConnectorTest { public static void main(String[] args) { System.out.println(Connector.open()); } } postgres@debian$ java -cp .:/usr/share/java/postgresql.jar db.ConnectorTest ------エラーメッセージ------ org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections. db名、ユーザ名、パスワード名は大丈夫だと思うんですが・・・。
318 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 02:50:20 ] >>312 > ;C:\Program Files\Java\jdk1,5,0\binをpathに加えればいいんだよね? を加えちゃいかん ;"C:\Program Files\Java\jdk1,5,0\bin" 空白文字の扱いを知らんのか
319 名前:318 mailto:sage [2007/08/07(火) 02:52:26 ] しかもピリオドでなくてカンマやんw ;"C:\Program Files\Java\jdk1.5.0\bin"
320 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 02:53:01 ] >>312 pathに加えた手順を説明してみて
321 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:01:01 ] java的にはfinalな引数を導入したのは内部クラスから参照するためって事を知ってる前提で話してるんだよね? 人に聞くくらいなら内部クラスない場合は好み程度、と考えておけば良いんじゃない? 自分からfinal付ける明白な理由もなさそうだし。
322 名前:308 mailto:sage [2007/08/07(火) 03:04:37 ] 駄目だ・・・何でできないんだ?とりあえず315さんにいわれたようにカンマとピリオドはおk そして318さんに言われたとおりに;"C:\Program Files\Java\jdk1.5.0\binってPathのあとに つけて今にいたりました>>320
323 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:08:53 ] PATHをマイコンピュータのプロパティから変更してるなら、 プロパティをOK押して閉じてからコマンドプロンプトをいったん閉じて開きなおす。
324 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:10:35 ] そもそもC:\Program Files\Java\jdk1.5.0\binってフォルダの中にjavac.exeがあるのかね?
325 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:13:11 ] >>322 ちなみにうちの環境だと C:\Program Files (x86)\Java\jdk1.5.0_01\bin にjavac.exeはある
326 名前:308 mailto:sage [2007/08/07(火) 03:24:33 ] なんか頭がもうパニックだ・・・とりあえず本に書いてある通りに書くと class Examplel { public static void main(String args[]) { System.out.println("This is the output from Examplel"); } } をかいてそれをファイル名はExamplel.javaにして保存。実行するためにコマンド開いてjavac Examplel.java入力するらしい。 もう俺にはお手上げです。
327 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:28:25 ] >>326 それは関係無い コマンドプロンプトから "C:\Program Files\Java\jdk1.5.0\bin\javac.exe" -version って入れて Enter 押して結果を教えなさい
328 名前:308 mailto:sage [2007/08/07(火) 03:31:03 ] 指定されたパスが見つかりませんたって出ました
329 名前:デフォルトの名無しさん [2007/08/07(火) 03:31:06 ] ClassPath通してる?
330 名前:308 mailto:sage [2007/08/07(火) 03:33:52 ] よくわからない
331 名前:デフォルトの名無しさん [2007/08/07(火) 03:33:54 ] C:\Program Files\Java\jdk1.5.0\libの中の jarファイルにクラスパス通してないんじゃないの?