- 1 名前:デフォルトの名無しさん [2007/06/27(水) 07:23:27 ]
- プログラミング言語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質問・相談スレッド102【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1180419689/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝なく存じます。 次スレは>>980あたりで。
- 77 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 00:54:31 ]
- >>76
遠隔機器操作だけじゃわからん。どういう事をやりたいか具体的に書く。
- 78 名前:デフォルトの名無しさん [2007/06/29(金) 01:05:56 ]
- サーボモーターの制御及び遠隔監視ですが、被制御側にJAVAとCのプログラムを配する予定です。
知りたいのは、ネットワークのストリームの確立方法と制御命令の伝達方法、及び監視情報のリアルタイム での送受信方法です。
- 79 名前:デフォルトの名無しさん [2007/06/29(金) 01:10:10 ]
- 78の補足
回線は優先無線の両方を考えてますが、とりあえず有線の方法、通常のインターネット経由の方法で 教えていただけたらと思います。
- 80 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 01:17:50 ]
- Cも使うのならベタにSocket使えばいいんじゃね。
- 81 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 01:20:20 ]
- Set<Foo> set = new HashSet<Foo>();
for(Foo f: set) { // ここで set を変更 } で ConcurrentModificationException が出るときの解決案って for(Foo f: set.toArray(new Foo[set.size()])) { // ここで set を変更 } 以外にどのようなものがありますか?
- 82 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 01:43:20 ]
- なんか1.5ぐらいからJavaの文法、複雑になっちゃったな
>>81とか俺には理解できない・・・
- 83 名前:81 mailto:sage [2007/06/29(金) 02:14:21 ]
- >>82
大丈夫。Java7 あたりから俺もわからなくなる。
- 84 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 02:26:47 ]
- やさしいjavaで勉強初めて一週間程たちます。
色々調べたのですがわからなかったので、初歩的な質問ですが教えてください。 class Car { int n; } とした時に Car car[ ] = new Car[3]; のような配列ぽい変数にできるのでしょうか? 今試しているのですがエラーになります。 コンストラクタを使ってオブジェクトを作る時は配列は使用できないのでしょうか? 先のページには出来ている様なコードが書いてあるのですが、抽象クラスでないとダメなんでしょうか?
- 85 名前:デフォルトの名無しさん [2007/06/29(金) 02:27:12 ]
- >>80
失礼Cはマイコン用のCで低レベルの制御用にのみ使うものです、通信そのもは複雑なネットワークに も対応できるようにJAVAを使おうと思っています。
- 86 名前:デフォルトの名無しさん [2007/06/29(金) 02:29:50 ]
- >>84
配列要素それぞれをnew Car()で生成する必要があります Vector使ったほうが簡単では?
- 87 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 02:31:17 ]
- >>84
エラーの種類がわからないから断定は出来ないけど、 おそらく発生しているエラーは NullPointerException だと思う。 Car[] car = new Car[3]; for (int i = 0; i < car.length; i++) car[i] = new Car();
- 88 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 02:34:24 ]
- >>86
>>87 なるほど!! まずは配列要素それぞれで生成するわけですね。 早速試してみます。
- 89 名前:88 mailto:sage [2007/06/29(金) 02:42:00 ]
- >>87さんのコードを書き加えたら出来ました!
ありがとうございました!
- 90 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 03:11:34 ]
- Javaアプレット(ファイル名:abc.jar)でOKボタンを押したときのイベントで、Javaアプレット自身を再起動させるプログラムを書きましたが、時々動作しなかったりしています。
OKボタンを押したときのイベントの中にRuntime.exec()で2つのシェルスクリプトを実行するプログラムを書きましたが、 1つ目のJavaアプレットのプロセスをkill するスクリプトは常に動作しますが、2つ目のJavaアプレットを起動するスクリプトが動作したり、動作しなかったりしています。 ・1つ目 stop.sh:(abc.jarのプロセスをkill するスクリプト) ・2つ目 start.sh:java -jar abc.jar String[] cmd= {"stop.sh", "start.sh"}; Runtime.getRuntime().exec(cmd) でcmdにスクリプトを渡すようにしています。 この書き方はだめなのでしょうか? ソースは手元にありません。すみません。 よろしくお願いします。
- 91 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 03:22:45 ]
- アプレットから Runtime.exec ですか。実に危険だな。
- 92 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 03:35:31 ]
- >>90
2つ目動作することある? Runtime#exec(String[]) の2つ目以降の要素は1つ目の要素の引数ではないか?
- 93 名前:90 mailto:sage [2007/06/29(金) 03:47:39 ]
- すみません。間違えていたと思います。
>String[] cmd= {"stop.sh", "start.sh"}; >Runtime.getRuntime().exec(cmd) String cmd[] = new String[2]; cmd[0]="stop.sh" cmd[1]="start.sh" Runtime.getRuntime().exec(cmd[0]) Runtime.getRuntime().exec(cmd[1])
- 94 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 04:39:48 ]
- >>85
組み込み用Cしか動かないような環境でJava動くの?
- 95 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 04:43:53 ]
- >>90
どうせネタだろうけど Runtime.getRuntime().exec(cmd[1]); Runtime.getRuntime().exec(cmd[0]); これでいいよ
- 96 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 06:48:01 ]
- >>81
setの変更がremoveのみなら、こういう手も。 for(Iterator<Foo> iter = set.iterator(); iter.hasNext();){ Foo f = iter.next(); if(...){ iter.remove(); } } せっかくの enhanced for loop が使えないのはもったいないけど。
- 97 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 07:45:23 ]
- >>81
こんな感じにする Set<Foo> set = new HashSet<Foo>(); Set<Foo> temp = new HashSet<Foo>(set); // 丸々コピー for(Foo f: set) { // ここで temp を変更 } set.clear(); // 一度、空にしてから set.addAll(temp); // 全部詰めなおす 参照の問題が起きないのであれば、2行を、set = temp;としてもいいけど、 このメソッドでSetを生成して返すのでもなければ、clear addAll のコンボのがいいと思う。 もし、他のスレッドからsetの更新の可能性があるならば、同期も取ろう
- 98 名前:デフォルトの名無しさん [2007/06/29(金) 15:40:33 ]
- URLConectionでリクエスト送信→レスポンス受信な処理をやろうとしてるんですが、
ループ内でリクエスト送信後、レスポンス受信の前に次のリクエストを送る事ってできないんでしょうか? レスポンスを待たずにリクエストを送りたいと思っています。 こういうのはthreadを使うべきなんでしょうか?
- 99 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 17:11:46 ]
- threadを使うべき
- 100 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 17:53:15 ]
- 国際化対応って最後にまとめてやったほうが効率いいですか?
- 101 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 19:48:07 ]
- >>100
はじめから考えなきゃだめな部分とそうでない部分がある。 まあ、とにかくはじめに検討することが大事。
- 102 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 00:14:50 ]
- ArrayList<Integer>クラスのインスタンスをint[]クラスに代入したいのですが、どうしたらよいのでしょうか?
toArray()メソッドを使おうと考えたのですが、Integer[]クラスへの代入はできるもののint[]クラスへは代入できませんでした
- 103 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 01:00:43 ]
- >>102
ArrayList<Integer>とint[]は一方が他方のサブクラスの関係でないので代入できない。 リストの各要素をint[]の各要素に代入したいのなら、 toArrayでInteger[]を生成したあとで、同じ要素数のint[]を作って、各要素に代入していく。
- 104 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 01:03:39 ]
- ArrayList<Integer>から各要素を直接取り出してint[]の各要素に代入してもいいし。
- 105 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 01:25:21 ]
- 配列a[]と変数b,c,dがあったとして、
if(a[ i ] && b+c<=d) という条件文の場合、条件を日本語を訳すと「a配列の@番目の要素とb+cがともにd以下の場合」ということでいいんでしょうか?
- 106 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 01:30:52 ]
- 「a配列の@番目の要素とtrueかつb+cがd以下の場合」
- 107 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 01:31:33 ]
- ×要素と
○要素が
- 108 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 01:32:17 ]
- JAVAの通信についての質問です、お願いします。
URL url = new URL(address); URLConnection connection = url.openConnection(); としたとしてサーバーに「GET」としてリクエストが行くと思うのですが、ヘッダーのUser-AgentがJava/1.5.0_12となっています。 ネット上のデータを取得するときに、指定したヘッダーをサーバーに送信するやりかたはあるでしょうか? 今はテストとして、www.cybersyndrome.net/evc.htmlをURLクラスで取得して、User-Agentの書き換えをあれこれ試してるんのですが、 URLConnectionのsetRequestPropertyなど試してもなかなかうまくいきません。 よろしくお願いします。
- 109 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 02:16:26 ]
- >>108
setRequestPropertyはストリームを開く前にセットしないと効果がないよ。 URLConnection u = new URL(...).openConnection(); u.setRequestProperty("User-Agent", "hogehoge"); InputStream s = u.getInputStream(); こんな感じで。 もし、hogehoge Java/1.5.0_12みたいに後に元のUser-Agentが付いても構わないなら、 javaのオプションに-Dhttp.agent=hogehogeとかやるだけでいける。
- 110 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 02:24:22 ]
- BufferedReaderクラスのreadLineメソッドで一行ずつ読み込む処理を行っているのですが,
現在まで読んだ文字数を知る方法はないでしょうか? 読み込んだ文字列の長さを足していけばいいと思ったのですが, 改行が削除されているために,改行コードがCRかCRLFかわからない場合うまく数えられないのです.
- 111 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 02:30:11 ]
- >>110
BufferedReader#readLineではたぶん無理 一文字ずつ読んで行にまとめる処理は自分でやる
- 112 名前:110 mailto:sage [2007/06/30(土) 02:31:56 ]
- >>111
thx 了解です
- 113 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 02:35:55 ]
- もし改行コードが一貫していることが分かってるなら
とりあえず最初の行末端が出るまでは一文字ずつ読んで 改行がLFかCRLFかCRかを判断したら あとはreadLineで読んで改行の種類に応じて行ごとに文字数に1か2を足してやる手もある
- 114 名前:110 mailto:sage [2007/06/30(土) 02:37:43 ]
- すみません,追加で質問させてください.
BufferedReaderで現在まで読んだバイト数(現在位置)も知ることは無理でしょうか?
- 115 名前:108 mailto:sage [2007/06/30(土) 02:44:38 ]
- >>109
継続的にUAの改変をしたいのでプログラム中に書こうと思ってます。 試した処理が URL url = new URL(String address); URLConnection connection = url.openConnection(); //オブジェクト取得 connection.setRequestProperty("User-Agent", "hogehoge"); //ヘッダーセット connection.connect(); // 接続 という風にやってます。 その後は、BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));で読み込んでreadlineでデータ読み込むとやっぱりUAがJAVAのままになってます。 ぐぐって出てくるサイトはPOST処理について書かれてるものばかりで。 URLで中身取得するだけなら、これ以上処理はないと思ってるのですが。 connect()前にヘッダー送られてるのでしょうか…
- 116 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 02:52:28 ]
- URLConnectionの方でUser-Agentを設定してるのに
実際にデータを読むときはなんでURLからストリームを開いてるの?
- 117 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 02:54:22 ]
- if(blp==0) i=2;
for(;i<bln;i++){ } と if(blp==0){ i=2;} for(i=2;i<bln;i++){ } は一緒の意味?
- 118 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 02:56:18 ]
- >>114
多分無理っぽい。自分でカウントするしかなさそう。 >>115 わざわざconnectしなくてもデータを読もうとした時点で勝手に接続してくれるよ。
- 119 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 02:58:50 ]
- >>117
blpの値によって違う
- 120 名前:110 mailto:sage [2007/06/30(土) 02:59:18 ]
- >>118
ありがとう.了解です. >>113の方法でやってみることにします
- 121 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 03:01:21 ]
- >>119
もしblpが0と1の2種類の場合、0と1でどう違うのでしょうか?
- 122 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 03:09:07 ]
- blpが非零の時にif文が終了した時点でiに何がセットされてるか考えてみ
- 123 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 03:10:59 ]
- >>122
実際に実行してみて分かりました!
- 124 名前:108 mailto:sage [2007/06/30(土) 03:15:28 ]
- >>116
ありがとうございます、UA表示が変わりました。 どうやら、本でURL先のデータ表示だけをする部分に ttp://journal.mycom.co.jp/column/java/054/index.html ここのヘッダー取得処理を加えたときに、ごっちゃになったようです、すみません… >>118 私も最初はconnect()いらないんじゃないかと思ったんですが、ぐぐったときに出たサイトで // コネクション生成(この時点では、接続されていない) con=(HttpURLConnection) url.openConnection(); とあったので、そういうものだとばかり思ってました。 ありがとうございました、またがんばろうと思います。
- 125 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 06:27:34 ]
- 仕様書よりも馬の骨サイトの方を信用する癖は無くした方がいいよ
- 126 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 07:33:53 ]
- 実行中のウィンドウがアクティブでなくなってもキーボード入力を受け付ける方法ってありませんか?
- 127 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 08:41:40 ]
- ありますよ
- 128 名前:デフォルトの名無しさん [2007/06/30(土) 21:08:43 ]
- Servlet アプリケーションの設定って、どこに記述すればいいの?
Windows アプリケーションでいうところの INI ファイルみたいな 設定ファイルって Servlet にはないの? properties ファイルはローケール依存テキストを記述するものだから 適当じゃないよね?
- 129 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 21:18:21 ]
- ここにその質問文を書く時間があれば、
グーグル先生に「Servlet 設定ファイル」で聞いてみろよ。 www.google.co.jp/search?q=Servlet+%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 130 名前:128 [2007/06/30(土) 21:25:19 ]
- >>129
調べたんだけど、どこか分からないんです。 コンテキスト ファイルでもないし、server.xml でもないし、web.xml でもない。。。 外部プログラムのパスとか、アップロードしたファイルを記録するディレクトリとか、 Servlet を配備するユーザーが書き換えれるような設定ファイルって、どれになるのかな?
- 131 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 21:31:00 ]
- >>130
そういうことか アプリケーション自体の設定ファイルなんぞ、読める場所に好きな形式で書いておけばいい 変更も少なく数も少なければ、web.xmlに記述するのもあり。 よくやるのは、設定ファイルのパスをweb.xmlに書いておき、実際の設定ファイルは別にするという形 そうすればテスト用の設定ファイルとかを使い分けるのが楽。 形式はXMLにするかプロパティファイルにするか独自形式か、それは好きにしてくれ
- 132 名前:128 mailto:sage [2007/06/30(土) 21:34:23 ]
- >>131
ありがとう。とても参考になったよ。
- 133 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 21:43:49 ]
- >>131
ありがとう。とても参考になったよ。
- 134 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 23:23:18 ]
- swingのJButtonについてですけど、ActionPerformed()の中でIconをsetIcon()で交互に付け替えています。
しかし、ボタンを2回以上押すとアイコンの後ろに「...」のような文字が入ります。 ちなみに、setActionCommand()も 同時に使っています。 何かのバグでしょうか? アプリは簡単な動画再生プログラムでPlayとPauseのアイコンを入れ替えるだけのものですが、何か解決方法は ないでしょうか?
- 135 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 23:27:30 ]
- >>134
ソースみなきゃ何ともいえないけど・・・ JButton playButton = new JButton(); JButton pauseButton = new JButton(); と個別にインスタンス作って、setEnableで制御した方が確実な気がする どうしても1ボタンで済ませたいのであれば、setVisibleで見せる/見せないの制御を行うほうが自然
- 136 名前:88 [2007/06/30(土) 23:50:05 ]
- 以前「やさしいjava」で勉強してて質問した88です。
値渡し、参照渡しの理解で苦しんでます。 値渡し、参照渡しは言語によってあったりなかったりぽいのですが、これは理屈どうこうっていうより「java仕様」って事で覚えた方がいいのでしょうか? なぜ値渡し、参照渡しと別々の考え方なのかが理解できないでいます。 「やさしいjava」曰く、クラス型変数は代入=参照渡しだから〜という内容で、int型等を「基本型」とくくって「基本型の変数は値渡し」と書いてあります。 他のサイトやwikiで調べてみると、基本型とかクラス型とか、そういう考え方は一切なく、intやdoubleは値渡しで処理して、String型等は参照渡しがjavaの仕様と書いてあるような気がしました。 やさしいjavaで「クラスで生成された変数は参照型の処理をされる」と書いてありますが、自分のコードのクラスで生成した変数だろうが、クラスライブラリ使用での変数だろうが、 どっちもクラス型変数のような気がして、いまいち「int型やdouble型は基本型の変数」というのが納得いきません。 int型やdouble型等は値渡し、String型は参照渡し みたいな感覚で覚えていいのでしょうか? うまく説明できてい上に初歩すぎる質問かもですが、よろしくお願いします。
- 137 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 23:57:57 ]
- >>136
www.google.com/search?num=50&hl=ja&lr=lang_ja&ie=UTF-8&oe=sjis&q=%E3%82%88%E3%82%8A%E6%AD%A3%E7%A2%BA%E3%81%AB%E8%A8%80%E3%81%86%E3%81%AA%E3%82%89%E3%81%B0%E3%80%8C%E5%8F%82%E7%85%A7%E3%82%92%E5%80%A4%E6%B8%A1%E3%81%97%E3%80%8D
- 138 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 00:11:09 ]
- >>136
やさしいJavaはろくな目にあわないなw Javaでのプリミティブ型は特殊だという認識を持った上で、メソッド呼び出しの時は全てインスタンスの参照が渡されると認識するならばいいんじゃないか? 納得して先に進みたいならば、この辺に結構詳しく書いてあった ttp://d.hatena.ne.jp/Strada/20070216
- 139 名前:88 [2007/07/01(日) 00:27:18 ]
- >>138
仕組みについては理解できました! クラス型の変数というところでひっかかっていたようです。 クラスで作った変数1=変数2だと参照型というのは理解していたのですが、 やさしいjavaで「String n」の引数に「一号車」と代入する時はクラス型変数なので参照型 という記述があって、 なぜString型がクラス型の変数なのか?とワケワカラン状態になってました。 プリミティブ型が特殊っていう考え方が非常にわかりやすかったですw 値渡しが基本で、参照渡しが特殊 ではなくて、参照渡しばっかりのjavaの中でプリミティブ型は値渡しが行われてる仕様 って事でいいんですね。 勉強になりました。ありがとうございました!
- 140 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 00:36:18 ]
- >>139
クラス型変数? 違和感を感じたのはそこか! 「クラス型変数なので参照型」は逆だ、逆。 「インスタンス(正確にはその参照)は、参照型変数に代入できる」が正しい だから、参照型変数の型は必然的にクラスになる インスタンスの存在に関する記述がテキトーなんだな、その本は
- 141 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 00:38:14 ]
- Eclipseにてデバッグした後、プログラム終了時に、
# # An unexpected error has been detected by HotSpot Virtual Machine: # # EXCEPTION_ACCESS_VIOLATION 。。。 というメッセージがコンソール画面に出て来るときがあります。 Eclipseのデバッグ画面には、このエラーが発生した箇所が出てこないので、どこで発生しているのか分かりません… このエラーメッセージが出た場合、とりあえずプログラムのどこをチェックすべきですか? ACCESS_VIOLATIONってことなので、C言語だったらポインタ演算してる箇所とかをチェックするんですが…
- 142 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 00:39:09 ]
- javaの値型はC++の値型とは違うからなぁ・・・
- 143 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 00:45:57 ]
- >>141
Swingとかマルチスレッド関連? どの手のアプリケーション実行していての話だろうか。 デバッグ時だと予期せぬ状態としか言いようがないな
- 144 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 00:54:24 ]
- >>141
それが出たときは飼い犬に咬まれたと思って諦めろ
- 145 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 01:02:59 ]
- >>143
今はSwingとマルチスレッド両方使ってます。Swingだけで出てきたこともあります。 エラーが発生した後、logファイルが吐かれてて、そこには Current thread (0x00837440): JavaThread "JDWP Command Reader" daemon [_thread_in_native, id=5020] と書かれてました。自分で作ったスレッドで発生したわけではないのかな… >>144 諦めろ…ということは、原因を突き止めるのがすごく難しい問題だったり、まさかJavaの仕様だったりするんですか… 発生確率は1/10くらいなので「仕様」ということにしておきます。
- 146 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 01:09:08 ]
- >>145
マルチスレッドだと単純に不安定になるよ デバッグでなく発生するのであれば、別の問題だろうけど そうでないのであれば原因を突き止めるのはデバッグモードを創れるレベルが要求されそうな予感
- 147 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 01:12:19 ]
- >>139
>値渡しが基本で、参照渡しが特殊 ではなくて、参照渡しばっかりのjavaの中でプリミティブ型は値渡しが行われてる仕様 値渡しが全て。 プリミティブは、その値自身が、値渡しされる。 オブジェクトは、そのオブジェクトへの参照が、値渡しされる。
- 148 名前:デフォルトの名無しさん [2007/07/01(日) 01:12:37 ]
- 連続してデバッグしたりするとよく出るね
- 149 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 01:18:11 ]
- >>145
VMのバグ、または、JNIでの呼び出し先でのバグかも Javaのプログラムを見ても解決するはずない、たぶん
- 150 名前:デフォルトの名無しさん [2007/07/01(日) 02:55:57 ]
- すみません、超初歩の質問です。
ttp://www.javadrive.jp/start/before/index2.htmlを参考に したのですが、java test1を実行すると 「注釈処理が〜」というエラーメッセージが出ます。 エラーは1つです。 で、ためしにjava ソース で検索したものを実行させて みたのですがこれも同じメッセージでエラー1つです。 これは設定が間違っているということなのでしょうか?
- 151 名前:デフォルトの名無しさん [2007/07/01(日) 02:58:55 ]
- 自分が書いたソース晒せー
- 152 名前:150 mailto:sage [2007/07/01(日) 03:02:09 ]
- >>151
これです class test1 { public static void main(String args[]) { System.out.println("Hello World!"); } }
- 153 名前:150 mailto:sage [2007/07/01(日) 03:03:36 ]
- なんかずれてる・・
もう1度 class test1 { public static void main(String args[]) { System.out.println("Hello World!"); } }
- 154 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 03:10:09 ]
- エラーメッセージじゃなくて警告だろ。
そのまま実行すれば実行できるよ。
- 155 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 03:11:12 ]
- そこは間違ってないな・・・throwされた例外を全部そのままコピペして。
あとjavacとjavaのバージョン
- 156 名前:150 mailto:sage [2007/07/01(日) 03:19:46 ]
- あ”あ・・
いろいろいじってたらまた出来なくなってきた 操作可能なプログラムまたはバッチファイルとして認識されません とか出てきた・・・ ちょっと出直してきます。すみません・・・ javacのバージョンとは?? javaはjdk1.6.0_01です
- 157 名前:150 mailto:sage [2007/07/01(日) 03:23:53 ]
- あと、システムの環境変数で、PATHの所だけ
C:\Program Files\Java\jdk1.6.0_01\bin に変えればよいみたい なのですが、間違えて class PATH とPatch もこれに してしまったのですが、問題アリでしょうか??
- 158 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 03:26:01 ]
- PATHをいじったんだろう。そこでハマるのは本質じゃないから
cd C:\TestClass C:\Java\jdk1.6.0_01\bin\javac test1.java C:\Java\jdk1.6.0_01\bin\java test1 みたいにフルパスで指定するべし
- 159 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 03:38:28 ]
- というか普通は
JAVA_HOME = <install_dir> Path = %Path%; %JAVA__HOME%\bin; とする。 CLASS_PATHは必要な時だけ。 環境変数Pathって復元できたっけ?
- 160 名前:150 mailto:sage [2007/07/01(日) 04:05:09 ]
- なんとか最初の問題まで戻れました。
エラーはこういう表示です。 エラー:クラス名 'java' が受け入れられるのは、注釈処理が明示的に要求された場合だ けです エラー 1 個 C:\jsample> こっから全く進めません・・・ ぐぐっても出てこないし
- 161 名前:150 mailto:sage [2007/07/01(日) 04:06:58 ]
- ↑
ファイル名をjavaに変更しました
- 162 名前:デフォルトの名無しさん [2007/07/01(日) 04:21:33 ]
- ソースファイル名をtest1にしてjavac→java
- 163 名前:150 mailto:sage [2007/07/01(日) 04:26:10 ]
- >>162
ダメです・・・ 同じメッセージしか出ません。 なんでだろう????頭こんがらがってます 3時間くらいずっとつまずいでます
- 164 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 04:27:13 ]
- 答:今日はあきらめて寝る
- 165 名前:デフォルトの名無しさん [2007/07/01(日) 04:29:58 ]
-
Test01.java ------------------------------------ class Test01 { public static void main(String args[]) { System.out.println("Hello World!"); } }
- 166 名前:150 mailto:sage [2007/07/01(日) 04:30:14 ]
- 'java' が受け入れられるのは、注釈処理が明示的に要求された場合だ
けです このメッセージをぐぐっても出てこないのは やっぱり普通はこういう事にはならないからなのでしょうか。 うーーーーん・・ >>164 6時までは頑張ってやってみます ダメなら寝る
- 167 名前:デフォルトの名無しさん [2007/07/01(日) 04:31:04 ]
- ミスった
Test01.java public class Test01 { public static void main(String args[]) { System.out.println("Hello World!"); } }
- 168 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 04:32:29 ]
- javac test1 とやると「注釈処理が明示的に要求され・・」と出るようだ。
javacでは拡張子の.javaを含むファイル名を指定する必要あり。 java では拡張子の.classは付けない。 javac test1.java java test1
- 169 名前:150 mailto:sage [2007/07/01(日) 04:49:15 ]
- CLASSファイルが作成されたらいいんですよね????
できましたーーーーーーーーーーーーー!! ファイル名に .java をつけてjavaファイルにしていなかったのが 1番の原因だったと思われます。 ただ、サイトや実用書のように文字が表示されないのが よくわかりませんが、とりあえず第一関門突破です ありがとうございました
- 170 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 04:53:15 ]
- >>150
コマンドプロンプトとかDOSとかCUIってしってるか?
- 171 名前:150 mailto:sage [2007/07/01(日) 04:57:42 ]
- >>170
コマンドプロンプトは分かります。 DOSはDOS−Vとかのでしょうか?(真っ黒い画面のがそう?) DOSとCUIは言葉は聴いたことありますが今いちよく分かりません・・
- 172 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 04:57:55 ]
- JMenu m = new JMenu("ファイル選択");
m.add(new JFileChooser()); という感じで、JMenuにJFileChooserを置いて、メニュー内に選択画面を出す… という変なことやってみたいんですが、ちゃんと表示はされます。 でも、スクロールバーが動かなかったり、ボタンも機能してくれません。 やっぱり無理なんですかね
- 173 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 05:00:12 ]
- hoge.java.txt っつーのもあるな
- 174 名前:150 mailto:sage [2007/07/01(日) 05:00:56 ]
- JAVAファイルをCLASSファイルに変換させるとこまでは
できましたが、Hello Worldの表示が出ない・・・
- 175 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 05:03:47 ]
- >>171
じゃあさっき生成されたclassファイルがあるディレクトリ(フォルダ)に潜って java test1 >>172 メニューアイテムが選択された時にチューザを表示するようにする。とか。
- 176 名前:150 mailto:sage [2007/07/01(日) 05:12:33 ]
- >>175
今までコンパイラとインタプリタを勘違いしてました。 コンパイラで文字を出そうとしていたのですが やっと意味が分かってきました。 でも、CLASSファイルができたので java test1 で出てきそうなのですがエラーになります うーーん・・・ もうちょいやってみます
- 177 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 05:21:40 ]
- public class Test01
~~~~~~~~~~~~
|

|