1 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 15:21:29 ] 過去ログ、関連スレッド、よくある質問とその回答、 質問をする前に、貴方が見なければならないサイトについての情報は、 下の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質問・相談スレッド101【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1177938653/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝なく存じます。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 次スレは>>980 あたりで。
357 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 01:29:56 ] >>354 なんて本? Javaでは、「2.0」のように小数点を数値リテラル(定数)として記述した場合、doubleとして扱われるのが仕様。 なので、doubleをfloatに変換していると見なされコンパイラが警告を出す。 型を指定して小数を書く場合、2.0F, 2.0Dと後ろに型を現す識別子を記述すること。 同じように12桁ほどの整数だとintと見なされlongにいれられない。 この場合はLを後ろにつける。 f,d,l など小文字でもOKだが、lと1が見分けつくにくいので大文字推奨。
358 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 01:36:09 ] >>357 thx 世界でいちばん簡単なJava
359 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 01:37:27 ] >>357 おおお2.0Fとしたらいけた ありがたや〜
360 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 01:40:32 ] >>358 その本、地雷の中の地雷。 やさしいJavaが良書に思えるほど。
361 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 01:42:45 ] >>360 そうなのか・・・ わざわざ買いなおしたのに・・・
362 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 01:44:16 ] >>354 a=2.0f; っていうかその本は捨てたほうがいいかも。 ずっと前にも2chスレに同じような質問があった気がする。 うわー。教えてgoo!とかにもあるなあ。 oshiete1.goo.ne.jp/kotaeru.php3?q=2153924 www.temptech.co.jp/others/java_qa/2020.html その本ってもしかして 世界でいちばん簡単なJava の e 本Java の基本と考え方がわかる本 2003年6月1日 第1版第1刷発行 著者 堀江幸生 発行 株式会社秀和システム (ISBN4-7980-0533-9 C3055) www.amazon.co.jp/dp/4798005339/ じゃねえか? pc8.2ch.net/test/read.cgi/tech/1161492130/964-981 改訂されてないみたいだね。
363 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 01:46:35 ] >>362 あああゴミなのかこの本 昨日からやる気出して取り組んでるのにヽ(`Д´)ノ 研究室の金だからいいけどさ・・・
364 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 01:54:41 ] >>362 てかgooではない方のQ&Aも間違ってるじゃねーかw
365 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 01:57:00 ] >>356 lhasaとかtarだと問題なく処理されて正常終了するなあ。 Lhaca自体の問題なのか、実行環境の問題なのかね。 ところで、名前からみてwgetで取ってきたlzhファイルを解凍する処理なのかな? zipならwgetの処理からzipの解凍までjavaの標準APIで書けるけど、 lzhだと書庫操作用のライブラリを探すなり作るなりして、全部javaで書いてしまうとか。 Process p = new ProcessBuilder("moge.bat", "hoge.lzh", "hoge.taz").start(); java.io.Reader in = new java.io.InputStreamReader(p.getInputStream()); while (true) { int c = in.read(); if (c == -1) break; System.out.print((char)c); } in.close(); moge.bat echo %1 %2 "C:\Program Files\Lhasa\Lhasa.exe" %1 tar xfzv %2
366 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 01:58:11 ] >>364 たしかにw なんだかなー
367 名前:デフォルトの名無しさん [2007/06/10(日) 02:08:42 ] JavaのソースコードでSQL文を書く時 Stringにまとめていれるほうがいいのか StringBufferに一行ずつ書いて後でStringにするのがいいのか メモリ上の問題とかも考えて どちらのほうがいいのでしょうか? Stringに入れた場合、SQLに入れる変数が大量にある場合、見づらくなる気もしますが
368 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 02:19:47 ] >>340 Instrumentation#getObjectSize
369 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 03:10:16 ] Java6で追加されたjavax.scriptを使いたいんだけど、 第三者によって書かれたスクリプトを安全に実行したいんです。 JavaScriptからでも普通にJavaのAPIにアクセス出来てしまうのですが、 これを禁止する方法はあります?
370 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 07:53:26 ] >>367 動的SQLか静的SQLかにもよるけど。 静的SQLの場合、定数として宣言するのが定石。 この時、書き方としては+で連結して書いて何も問題ない。 コンパイラがコンパイルする時に、最適化して1つの文字列としてくれるから。 読みやすさを重視して、1行ずつ改行してインデントきって+連結。 静的SQLの場合、やはり定数として宣言して?を使ったPreparedStatementで使用するのが良い。 もっと複雑なSQLを構築したい場合は、動的にSQLを作成するけど、そういう場合はStringBufferを使用するほうが好ましい。 ただ、どちらにせよコードに定数としてSQLを書くよりも、SQLは外部のテキストファイルか何かで管理する方がベスト。 複雑なSQLを動的に作成する必要がある場合、本当に必要かを検討し、静的SQLの組み合わせで処理できないかを考えるべし。 この辺りは3層構造とかの記事でも読んで。
371 名前:356 mailto:sage [2007/06/10(日) 08:11:18 ] >>365 書庫操作ライブラリの自作ですか! たくさん勉強が必要そうですね。 まさにwgetでデータを取ってきて解凍する処理です。 lhasaとかtarなら正常終了したのですね? 次に試してみます!ありがとうございます。
372 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 08:22:54 ] >>369 「第三者によって書かれたスクリプト」が安全なわけないだろ
373 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 09:33:31 ] >>369 空の javax.script.SimpleBindings とかでグローバルスコープ上書きすれば アクセスできないようにならん? とか思ったけど、Rhinoには通じないみたい。 で、ちょっと方向変えて ScriptEngine engine = new ScriptEngineManager().getEngineByName("rhino"); Bindings b = engine.getBindings(ScriptContext.GLOBAL_SCOPE); b.put("java", new Object()); みたいにするとパッケージの根元から潰したり、同じ事やれば、 デフォルトで Object とか System とか Thread とか潰したりはできそう。 どのクラスを使って良くて、どのクラス使っちゃダメってのを個別に制御しようとすると面倒臭そうだけど
374 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 10:36:39 ] >>371 漏れも調子に乗って既存のlzh系処理ソフトにラッピングする形で 自前の書庫管理してたんだけど途中で書庫サイズが2GB超えて ぼろぼろになって原因がそっちにあるのが分かってやる気なくした 自分でライブラリ作った方が安心出来るよ
375 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 11:51:23 ] >>372 今ご覧になってるWebブラウザは第三者が書いたJavaScriptを安全に実行しているわけで。 >>373 全部のパッケージ潰せて、わずかな安全な自前の関数だけScriptEngine#put()できればとりあえず使いものになります。 java、javax、com、orgあたりを潰せばjava seのapiすべて潰したことになるのかな?潰し忘れがあったらかなりデンジャラス。 あちこちドキュメント漁ってるんだけど、なんでこんな大事なことどこにも書いてないんだろう。 でもとりあえずありがとう
376 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 12:55:05 ] >>375 どうしてJavaScriptでローカルのディスクに書き込めないのはなぜ?
377 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 13:13:52 ] >>375 アプレットでも使われているけど第三者のクラスファイルを安全に実行する 既存のモデルを使う。Javaのセキュリティモデルを勉強すること。 あとjava.sun.comにドキュメントあるよ。JavaSEのドキュメントのページからリンク はられてる。
378 名前:デフォルトの名無しさん [2007/06/10(日) 13:35:55 ] すいません。 誰か教えてください。 DoJa-3.5用(900用)のエミュレータを使ってHelloWorldを出すという、初歩の初歩でつまずいてるのですが、ビルドを実行すると javac:ターゲットリリース1.1がデフォルトのソースリリース1.5と競合しています。 とでて、ビルドが失敗してしまいます。 どうすればよいのでしょうか? Javaスレの神様どうかお教えください。お願いします。
379 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 13:41:09 ] >>378 こっち pc11.2ch.net/test/read.cgi/tech/1174036396/
380 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 13:42:32 ] と思ったら既にマルチしてたのね もう回答は期待出来ないな じゃ
381 名前:デフォルトの名無しさん [2007/06/10(日) 14:12:23 ] すいません。 マルチはダメなんですね。ごめんなさい。 sun.tools.javac.Mainを使用するをチェックしていないのが原因でした。 回答が期待できないといわれたので、別の方法で考えました。 自分で考えたほうが身につきますね。ありがとうございました。
382 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 14:39:17 ] 昨日Image関連で質問した物です。回答ありがとうございました。 回答いただいた内容で解決できたのですが、新たな疑問点が。 Imageをクラス間でやりとりすることは不可能なのでしょうか。 メンバにImageを持たせ、paintにて描画した後、 他クラスからそのImageを取得しようとしたところ、 Paintメソッド内では存在してましたが他クラスから呼び出した時点でnullになっていました。 3DのCUBEを乱数に寄り平行移動させた物を複数生成し、 1クラスにつき一つのCUBEをImageに描画させ、 のちに統合したImageをCanvasに描画するという手順を取っているのですが、 Imageのやりとりが出来ないとなるとこの手法が使えません。 ご教授宜しくお願いいたします。
383 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 14:43:12 ] static
384 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 15:17:31 ] Java2ME環境で質問です。 ネットワーク上のNetBIOS名を列挙したい場合はTCP/UDPから上の部分をすべて自前で実装する以外ありませんか? JCIFSというライブラリはありますが、LGPLなので手が出しづらいです。 スレ違いになりますがjarからclassファイルを取り出して使用した場合はソースを公開する必要があるのかないのか 分かる方はこちらも教えていただけると幸いです。
385 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 15:28:03 ] >>371 lhasaはいいとして、lzhを扱えるtarはないと思うので念のため。 サンプルでtarが展開しているのはtar-ballをgzipで固めたtazファイル。 ProcessBuilderで呼び出したバッチファイルで、 ファイルを生成するプログラムがうまく動作しないとかだといやだなあと思って確認しただけなので。 Lhaca自体の問題というより実行環境の問題の気がしなくもない。 eclipseから起動しているのが原因とかかも。 バッチを呼び出しているjavaプログラムを直接コマンドラインからjavaコマンドで叩いた場合はどうなる?
386 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 15:45:00 ] >>384 そのjarのライセンスに従ってください
387 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 16:32:42 ] >>377 JDKドキュメントのセキュリティの項は目を通してみているけど、さっぱりわからない。ムズ過ぎ…… >>現在、SDK の一部として提供されているコードはすべてシステムコードと見なされて、固有のシステムドメインの中で実行されます。 >>システムコードには、自動的にすべてのアクセス権が与えられます。 とか書かれてるけど、javax.scriptはシステムコードですべてのアクセス権が与えられてて制限は出来ないってこと?
388 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 16:52:35 ] public class a{ public static void b(int foo){ System.out.println("Int"); } public static void b(byte foo){ System.out.println("byte"); } public static void main(String args[]){ b(26); } } mainでbyteを入れているのに、何故intが呼ばれるのですか?
389 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 17:07:51 ] >>388 何故26がbyteなのですか?
390 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 17:10:45 ] >>388 127以下の数だからってbyteとして扱われるわけじゃない。 Lつけなきゃ整数リテラルはすべてint。言語仕様の3.10.1参照。
391 名前:デフォルトの名無しさん [2007/06/10(日) 19:13:20 ] データベースの中身を拾ってきて それをCSV形式でファイルに書き出してデスクトップに落としたい場合 メモリ上にファイルを作成→一行ずWriteで書き出す→拡張子をCSVにしてデスクトップに保存する こういうクラスを作ってやっているのですが だいたい皆さんもこういうやり方でやっているのでしょうか? もっと簡単な方法とかあるのでしょうか?
392 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 19:19:21 ] ActiveDirectory認証を利用するAPIはありますか?
393 名前:デフォルトの名無しさん [2007/06/10(日) 19:42:06 ] 会社でJavaの引き継ぎをまかせられてしまった初心者です(35歳)。プログラミング経験はほとんど皆無(商用経験は0、社内研究でperlを少しかじった程度)。 以下のプログラムが存在した場合、「this」はどこを示すのか悩んでいます。 class TestClassB extends TestClassA{ public String doExcute(){ 処理ロジック }; } class TestClassA{ public abstruct String doExcute(); public ActionForward excute(){ String result = null; result = this.doExcute(); } } ログを読む限り、TestClassBをインスタンス化して、excute()をcallしているのですが、 TestClassB内には存在しないため、スーパークラスのexcute()をcallしていると読めます。 その後、excute()の中で、「result = this.doExcute();」という記述があるのですが、これは どのような動きをしているのでしょうか。 その後の動きを見ると、TestClassBのdoExcuteを実行しているようなのですが、 具体的な動きがわらないため質問させていただきます。 @この場合、TestClassAの中でthisと宣言されているが、TestClassBがTestClassAを 継承しているので、thisはインスタンス化されたTestClassBを示す。それなのでTestClassBのdoExcuteが実行される。 ATestClassAの中でthisと宣言されているため、明示的にインスタンス化されてはいないが thisはTestClassAを示すため、自動的にインスタンス化される等して、TestClassA内の doExcuteを実行しようとする。しかし、TestClassA内にはabstructでしかdoExcuteが宣言 されていないので、自動的に実装しているものを探してTestClassBのdoExcuteを実行した。 感覚的には@な気がするのですが、thisはその記載されたクラス自身を示すような気がして 下のような考えと悩んでいます。すいませんが教えてください。
394 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 19:57:27 ] TestClassA tca = new TestClassA(); TestClassB tcb = new TestClassB(); ActionForward afa = tca.execute(); ・・・(1) ActionForward afb = tcb.execute(); ・・・(2) (1) のとき this は tca (2) のとき this は tcb
395 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 20:01:21 ] >>393 class TestClassB extends TestClassA{ public String doExcute(){ 処理ロジック }; public String doExcute2(){ふが}; } class TestClassA{ public abstruct String doExcute(); public String doExcute2(){ほげ}; public ActionForward excute(){ String result = null; this.doExecute2(); result = this.doExcute(); } } これを実行して比べてみたら?
396 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 20:01:33 ] >>391 それで何か問題あるの? >>392 Windows固有の機能だからJavaにはなさそうだ。 >>393 もちろん@が正解。ただそのコードじゃコンパイル通らないはずだよ。TestClassAはきっとabstractなクラスだ。
397 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 20:05:35 ] >>391 少しだけOO的に書くのであれば、DBから取得してきたデータをBeanクラスに詰め、Writerで1行ずつ書き出すとベター DBから取得してきたデータをいきなりCSVの1行にするくらいならば、データ量にもよるけど、SQLで組んじゃう方が楽じゃね?
398 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 20:34:28 ] >>387 セキュリティマネージャ差し換えるんだよ。 >>392 ActiveDirectoryというかLDAPなら。
399 名前:デフォルトの名無しさん [2007/06/10(日) 20:38:21 ] >>396 問題はないけど ちょいとアナログなやり方なので 他に方法があるのなら参考にしたかった
400 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:04:14 ] >>393 常にTestClassBを示す
401 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:17:10 ] >>399 == >>391 それを言うなら アナログ じゃなくて アナクロ
402 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:48:39 ] 超初心者失礼します enumを使おうと思って調べたんですが、よくわかりません とりあえずJ2SE5.0なので言語レベルで実装されてるとは思うのですが enum hoge{ oerjao, idos; }; てな感じじゃだめなんでしょうか、Eclipseだと無理っぽいんですが…
403 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 22:03:54 ] >>402 普通に使えるはず。 使えないなら以下をチェック ・eclipseのバージョン ・プロジェクトのプロパティ -> Javaコンパイラ -> Javaのビルドパス -> ライブラリ
404 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 22:29:46 ] >>398 System#setSecurityManager()でセキュリティを設定するとスクリプトは安全だけど、 アプリケーション全体に制限が加わってしまってそれ以外のファイルアクセスなんかが 出来なくなっちゃうよね?やっぱりわからん…
405 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 22:36:18 ] >>403 よくわからんのですが、コンパイラの準拠レベルとやらを5.0に上げたら通るようになりました ありがとうございました
406 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 00:12:16 ] >>398 その手のスクリプトってパッケージとか持ってないと思うし、 コードベースで動作制限もできないようなきがするから、 SecurityManager でやるにしても、あんまし便利には出来んと思うけど。
407 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 01:11:43 ] >>375 とかセキュリティマネージャとか言ってる奴は馬鹿だろ。 言語レベルのセキュリティとスクリプトエンジンの実装のセキュリティは別問題。 組み込みエンジンのセキュリティ確保は組み込む人間が全部自分で必要なものを1から実装する。 これは>>375 の仕事。 何を何処までどうするか、それをどうやって実現するか全て自分でやる。用意されてるものを使うんじゃなくて自分で用意する。 具体例でいえば"ブラウザは外部の入力は汚染されたものと仮定してセキュリティ制限下で処理してる" ""でくくった部分を>>375 が全部やる部分。 実装例だせば、ecma-262ではトップレベルコンテキストは常に一つで一切操作出来ないのが仕様だが、 ブラウザでそれやると文書間でトップレベルコンテキストが共有されてしまうから動作変更して文書毎にトップレベル生成してる。 javaの実装であるrhinoはセキュアであることは実装対象外だから一切配慮されてなくて、 セキュアな実行環境がほしい場合は組み込む者が適切に実装しろとrhinoのドキュメントにご丁寧に書いてある。 これだけ言ってわからんならノウハウ本か他のソース読め。
408 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 02:09:41 ] バカ避けのために作られた言語なのに どうしてバカばっかり集まってくるのはなぜ?
409 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 03:06:49 ] それはおまいが一番よく知ってるんだぜ?
410 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 09:25:56 ] >>407 sun.org.mozilla.javascript.internal.Context#setClassShutter() で Javaのクラスを遮断することができることがわかった。 さすがにRhinoがセキュリティについて一切配慮されてないなんてことはなさそう。 sun.org.mozilla.javascript.internal.SecurityController もセキュリティ関連だからもっと調べてみる
411 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 12:05:20 ] JDBCドライバを実装するのにオススメのサイトや書籍(できれば日本語) を教えていただけませんか?
412 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 12:46:39 ] >>411 JDBCドライバを実装するの? JDBCドライバを使用してDBアクセスを試すんじゃなくて。 後者ならば、「JDBCによるJavaデータベースプログラミング」あたり。 やさしいのがいいってならば、どれでもいい気がする。 ドライバの実装は・・・少なくとも初心者質問スレじゃスレ違い
413 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 13:13:02 ] >>412 ドライバの使用じゃなくて実装です。 使用法の情報は多くあるのですが実装についてはあまりみないもので。 スレ違いですか… どこが適切なんだろうか
414 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 13:34:49 ] >>410 そこら辺は最近追加された新しいAPIだよ。 sunのrhinoは元とは別モンの劣化品だからただ実行する以上の用途はmozilaのパッケージ使った方が良いぞ。 ドキュメントもすべて揃ってるから組み込みチュートリアルとかもあるし。 (javadocはサンプルjsコードの一部をコピペしただけ。) 悪いことは言ってないぞ?
415 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 14:29:36 ] >>413 情報無いよな、そもそも必要に迫られるもんじゃないし。 公開されていソースが一番の情報源では? スレは作成したいドライバのDBベンダのスレのがいいかも。
416 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 16:02:29 ] 初歩的で申し訳ないのですが、下のプログラムがコンパイルで通りません。 シンボルを見つけれませんと出るのですが、どういうことなのでしょうか? //Info.java public class Info { public void Info(){ int num[][]; num = new int [10][10]; System.out.print("test\n"); } } //Main.java import java.io.*; public class Main { public static void main(String args[]) { int i, j; Info a = new Info(); for(i=0; i<10; i++) { for(j=0; j<10; j++) { System.out.print(a.num[i][j]); } System.out.println(); } } }
417 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 16:07:28 ] >>416 //Info.java public class Info { public int num[][]; public void Info(){ num = new int [10][10]; System.out.print("test\n"); } }
418 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 16:13:50 ] >>417 ありがとうございます。しかし、コンパイルは通ったのですが、 System.out.print(a.num[i][j]); のところでエラーが出てしまいます。どうしてなのでしょうか?
419 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 16:15:17 ] というよりも、今気付いたのですが、コンストラクタの中の"test"って文字が表示されてないってことは、 まず、コンストラクタの中に入ってないってことですね。それはエラーも出るはず・・・;;
420 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 16:18:29 ] public void Info()はコンストラクタではない。 ただのメソッド。 ヒント:void
421 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 16:24:11 ] もし>>417 のままにしたいなら Info a = new Info(); a.Info(); でnumを初期化
422 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 18:05:00 ] >>420-421 ありがとうございます。voidを除いたら正常に動作しました。 調べてみると、コンストラクタは返り値を持たないので型の宣言は指定したらダメっぽいんですね・・。 勉強になりました。
423 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 19:35:30 ] 一昨日くらいにJAVAを始めたのですが、いまいちクラスとかメソッドとかの良さが分かりません。 まだあまりプログラミング量が少ないからなのかもしれませんが、オブジェクト指向の利点というものを 活かしきれていないような気がします。どうやってもC言語のような感じでプログラムを書いてしまいます。 そこで相談なのですが、何かこういうプログラムを作ってみるといいよって感じのはないでしょうか? こういうプログラム作ったら、クラスの凄さがよくわかるとか・・・。
424 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 19:50:17 ] >>423 システム設計するようになると良くわかるよ
425 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 20:02:01 ] >>424 具体的にはどのようなプログラムを作ればいいのでしょうか? 良く分かるために貪欲に何でも作ろうかと思うのですが。
426 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 20:12:46 ] >>425 俺はTECHSCOREのデザインパターンのページ読んだら結構納得できた
427 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 20:45:57 ] >>425 ステップ数で300くらいの処理を3−4程度のクラスに分割してみる。 自分の経験からだと、CSVの読み書きクラスとかほど良いボリューム
428 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 20:49:30 ] よくわからないので質問させてください。 class Example1{ public static void main(String args[]){ for(int i = 0; i < 10000; i++) System.out.println("teswt"); } } というプログラムをjarにまとめてダブルクリックで実行できるようにしました。 ところがダブルクリックしても出力されません タスクマネージャーでプロセスを見ると一瞬javaw.exeが出るので実行はされていると思うのですが、 コマンドプロンプトが自動で起動されたりはしないのでしょうか? もし自動で起動させる方法があるのなら教えてください。
429 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 21:06:22 ] >>428 それは実行されて、プログラムも終了しただけかと。 CUIならコマンドプロンプトから実行したら?
430 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 21:10:30 ] >>429 やはりコマンドプロンプトから実行するしかありませんか。 実はIRC用のBOTを作っていて友人に配布することになりダブルクリックだけで実行できたほうが便利かなと思ったのです。 がんばってGUIをつけることにします。 質問に答えていただきありがとうございました。
431 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 22:26:29 ] class Example1{ public static void main(String args[]){ for(int i = 0; i < 10000; i++) System.out.println("teswt"); } Thread.sleep( 10000 ); }
432 名前:デフォルトの名無しさん [2007/06/11(月) 23:18:29 ] 1.4でThreadを安全に停止するメソッドってありますか? stopは推奨されないみたいなので。
433 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 23:22:33 ] >>432 強制? 無限ループのThreadを終了?
434 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 23:24:28 ] >>433 強制です。 ロック最中でもロック開放してThreadを停止したいんです。
435 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 23:31:17 ] >>434 どうしてstopが非推奨になっているかを考えれば代替手段もないことに気づくと思うんだが・・・
436 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 23:47:34 ] Java アプレットの話です。どうして表示結果があんなにキタナイの。 図形の座標の計算が変だと思う、円周をどうやって表現するの? そこで間違っているから、Java は隙区内。 こんなにキレイな円と多角形の重なりも簡単、とかいうなら、 ひとつ アプレット の例を作って見せてね。
437 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 23:49:58 ] URLConnection時のクッキー書き込みについて教えて頂きたいです。 Webページにクッキーを固定で書くだけのテスト用ページを作成しました。 ※*****/cookie.php <?php setcookie("test","123",time()+60*60*24); ?> このテスト用ページに URLConnectionまたはHttpURLConnectionで アクセスするとクッキーが書き込まれないのですが java(URLConnection)では、クッキーは書かれないのでしょうか? それとも何かクッキーを許可するような設定値があるのでしょうか? ブラウザのURL欄に上記テスト用ページを直打ちすると 正常に書かれるのでテスト用ページの処理は問題無いと思うのですが。。 アドバイス頂きたいです。よろしくお願いします。
438 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 00:21:43 ] こんなのどうだろ。開発時間13分 import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.util.Random; import javax.swing.JFrame; public class Circle { public static void main(String[] args){ JFrame frame = new JFrame(){ @Override public void paint(Graphics g){ g.clearRect(0, 0, getWidth(), getHeight()); ((Graphics2D)g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); Random r = new Random(); for(int i = 0; i < 20; i++){ Color c = Color.getHSBColor(r.nextFloat(), 1, 1); g.setColor(new Color(c.getRed(), c.getGreen(), c.getBlue(), 100)); int s = 50 + r.nextInt(150); g.fillOval(r.nextInt(getWidth() - s), r.nextInt(getHeight() - s), s, s); } } }; frame.setSize(640, 480); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
439 名前:デフォルトの名無しさん [2007/06/12(火) 00:23:19 ] あっ、438は436向けね。
440 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 00:29:19 ] そうか、「アプレットの例」か。さらに簡単になるな。たびたびすまん import java.applet.Applet; import java.awt.*; import java.util.Random; public class CircleApplet extends Applet{ @Override public void paint(Graphics g){ g.clearRect(0, 0, getWidth(), getHeight()); ((Graphics2D)g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); Random r = new Random(); for(int i = 0; i < 20; i++){ Color c = Color.getHSBColor(r.nextFloat(), 1, 1); g.setColor(new Color(c.getRed(), c.getGreen(), c.getBlue(), 100)); int s = 50 + r.nextInt(150); g.fillOval(r.nextInt(getWidth() - s), r.nextInt(getHeight() - s), s, s); } } }
441 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 00:32:46 ] ていうかjava2dの描画精度のことなら6ですでに改善されてるだろうが。 わざわざ釣られる必要はないよ。
442 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 00:40:13 ] 所詮、ドット絵なんだからアンチエイリアスしないとキレイな曲線にはならないでしょ
443 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 02:40:21 ] C言語で typedef struct _header { unsigned char opcode; unsigned long oprand; } header; memcpy(&header, src_ptr, sizeof(header)) unsigned char 1byteリトルエンディアン unsigned long 4byte リトルエンディアン みたいな感じでバイナリファイルのヘッダ解析とか したりしますよね? これってJavaでどうやって書けばいいんですか? 教えてください。
444 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 03:10:23 ] java.ioやNIOつかってストリーム指向で。 MP3やoggのデコーダのソースは参考にならないかい?
445 名前:デフォルトの名無しさん [2007/06/12(火) 09:06:45 ] ど忘れした。 読み込み中等で表示されるGUI部品で青い部分が伸びていくやつ何て名前だっけ? シーケンスじゃなくて・・・あぁ・・・思い出せない。
446 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 09:07:38 ] >>445 プログレス
447 名前:デフォルトの名無しさん [2007/06/12(火) 09:10:12 ] >>446 早っ!ありがとう。
448 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 16:09:05 ] よい解決方法があれば、教えて下さい。 FTPClientで日本語ファイルを転送しようとしたところ、 ファイル名が文字化けしてしまいました。 日本語ファイルは対応していないのでしょうか? ちなみに転送元、転送先ともにSJISです。
449 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 16:17:43 ] GUIでプログラムを作ろうと思ったら何を勉強したらいいのでしょうか…
450 名前:デフォルトの名無しさん [2007/06/12(火) 16:25:32 ] >>448 FTPClient?それはどこのパッケージ? >>449 awt、swing、(swt)
451 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 16:42:02 ] >>450 素早い解答ありがとうございますw これから勉強してみます。
452 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 17:13:43 ] >>448 sunのjdk6にはそんなもん存在せんからエスパーだがリーダー見直せ。 それかnio使って自分で縁コード汁!
453 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:24:09 ] >>450 ,452 org.apache.commons.net です。 commons-net-1.4.1.jarを使ってます。 なるべく労力を少なくしたかったのですが、 ダメっぽいですね。 ありがとうございました。
454 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 19:14:24 ] 失礼します Labelの仕様について質問なんですが、setforegroundで文字の色は変わるんですが setbackgroundで背景の色が変わりません ボタンの場合foreback両方問題なく色を変えられます Labelっていうのは四角い領域だと理解してたんですが、間違ってますか? なぜsetbackgroundで色が変わらないんでしょうか?
455 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 19:52:33 ] 変わるよー ラベルのサイズが小さいんじゃない?
456 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 20:04:17 ] opaque
457 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 20:07:35 ] >>455 変わりますか… サイズはsetboundsで40*40確保してるので問題ないと思うんですが…