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


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

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



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確保してるので問題ないと思うんですが…






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<292KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef