【初心者】Java質問・相談スレッド103【大歓迎】
at TECH
[1からを表示]
50:デフォルトの名無しさん
07/06/28 11:53:45
>>49
いえす
localhost が解らんって言われているけど、postgresqlならば
jdbc:postgresql://localhost:5432/test
のようにURL指定してないとか?
それでもダメなら、localhost を 127.0.0.1 で試す。
後、WindowsのFireWallの可能性もあるかな?
51:49
07/06/28 13:37:37
>>50
レスありがとう。
なんとか動きました。
postgresqlにTCP接続する設定をやっていなかった。
// これがダメだったのかな?
postgresql.confを編集して
URL指定に「jdbc:postgresql://127.0.0.1:5432/hoge」で接続できました。
loclhostだと失敗したんで根本的な解決はしてない気もするけど、とりあえず動いたからおk!!!
52:34
07/06/28 13:52:52
>>38
ありがとうございます。
さっそく実行してみたのですが、次は
org.postgresql.util.PSQLException: The column index is out of range: 2, number of columns: 1.
と表示されてしまいます。
?の数とsetStringやsetIntの数が違うのかなと思ったのですが、
一緒でわかりません・・・
53:デフォルトの名無しさん
07/06/28 14:02:01
>>45
「15歳からはじめる〜」って本を良く耳にする。でも読んだ事はない。
Javaでゲーム作成 2本目
スレリンク(gamedev板)
54:デフォルトの名無しさん
07/06/28 14:25:08
>>52
配列の要素数が0で始まるのか1で始まるのかをもういちど確認してくれ
55:デフォルトの名無しさん
07/06/28 14:34:25
現在の実行コンテキストが Applet として実行されているかどうかを判定することってできる?
56:デフォルトの名無しさん
07/06/28 14:44:03
getCodeBase()
57:デフォルトの名無しさん
07/06/28 15:10:44
Eclipse使ってたら・・・
PreparedStatement のメソッド setDate(int, Date) は引数 (int, Date) に適用できません。
どういうことだよorz
58:デフォルトの名無しさん
07/06/28 15:15:27
要するに
setDate(int, java.sql.Date) は引数 (int, java.lang.Date) に適用できません。
ってことだ。エラーメッセージが悪い。
59:デフォルトの名無しさん
07/06/28 15:44:17
サーブレットから別のデーモン スレッドを実行した場合、
そのスレッドを長時間実行してもタイムアウトになることはありませんよね?
60:45
07/06/28 15:47:26
>>53
それは既に読了です。
いい本ですが、あくまでSwing関連のJavaの入門書でした
61:デフォルトの名無しさん
07/06/28 18:35:06
>>60
まぁ、>>47みてやりたいことは大体判った。
結局のところ探索、評価の繰り返しをいかに精確かつ高速にやるか、というところが肝なわけで…
まともにやろうとすると結構専門的なところまで踏み込むことになるけれども一応参考資料(英語ですが)
URLリンク(www.cs.ualberta.ca)
もともとはリバーシのアルゴリズム解説だけれど、探索や評価のアルゴリズムは他にも応用がききそうなので。
日本語の資料だとつっこんだところまで解説したものってみたことないので情報工学とか数学関係の専門書を
あたった方が早いかもです。
62:デフォルトの名無しさん
07/06/28 19:28:14
>>60
ボーンデジタル
63:45
07/06/28 20:45:50
>>61
やはり専門的な分野になると英語になるのかぁ・・・
最初の1〜2冊は日本語で勉強したかったんです。
Amazonで漁っていくつか候補があったのでとりあえず片っ端から買ってみますw
64:デフォルトの名無しさん
07/06/28 20:51:31
>>62
これですか・・・
URLリンク(www.amazon.co.jp)
流石にいい値段しますが興味はあります・・・むぅ
65:デフォルトの名無しさん
07/06/28 22:39:12
HttpURLConnectionで取得したデータ(画像)のnputStreamを
複数回読みたいんですが、どうしたらいいですか?
66:デフォルトの名無しさん
07/06/28 22:55:51
>>65
できない
InputStreamのStreamの意味を調べたことあるか?
尚、普通の人は画像データを変数に格納するだろう
67:デフォルトの名無しさん
07/06/28 22:58:41
>>65
一回closeしてしまったら、もう読み込めないから、もう一回接続して新しいInputStreamで読み込む。
もしくは、最初のInputStreamで読んだデータは手元にあるはずだから、それを利用する。
68:デフォルトの名無しさん
07/06/28 23:02:55
>>66
> InputStreamのStreamの意味を調べたことあるか?
あります、すみません
resetメソッドとかよくわからずに使ってうまくいかなかったもので…
> 尚、普通の人は画像データを変数に格納するだろう
InputStreamが引数なメソッドを2つ呼び出す必要があるんですが、
やっぱそのたびに生成しなきゃいけないんでしょうか。
↑これがよくわからんかったのでリサイクルしたいと思いました。
>>67
接続は1回にしたいです。
69:デフォルトの名無しさん
07/06/28 23:05:13
ああ、closeしてなくても一回読み出したデータをもう一回読み出すのはInputStreamでは無理だから、
頭からもう一度とはいかない。全データのプッシュバックをサポートするstreamを作って、
HttpURLConnectionのInputStreamに接げばいけるかもだが、
それは最初に読んだデータを再利用するようにした方がいいような気が。
70:66
07/06/28 23:11:05
>>68
言い方がきつかった、すまん
ただ、Streamってのは流れなんだ、流れてくるものを2回読むことはできない
だからデータを溜めておかなければならない。
ちなみに、使うメソッドがInputStreamで引数を持つという事自体がおかしいということはないか?
Imageで受けたり、byte[]で受けたり出来ないような特殊な事情があるのか、検討して欲しい。
それでも、どうしてもInputStreamにしなければならないならば、byte[]等でキャッシュしておき、自前で再度流すようにコーディングする必要があるな
71:デフォルトの名無しさん
07/06/28 23:11:30
>>68
InputStreamのサブクラスにはByteArrayInputStreamというものもある。
何もネットから読み込むだけのストリームではない。
最初にそのメソッドを呼ぶ前にHttpURLConnectionでバイト配列にデータを読んで、
そのメソッドにはバイト配列をバッファにしたByteArrayInputStreamを渡してやればいい。
72:デフォルトの名無しさん
07/06/28 23:31:38
>>70
最終的にはswtのImageを作るんですが、
その前に元のデータのハッシュを取る必要があるんです。
最初はImageを作って それからgetImageData().dataのハッシュを
取ればいいかと思ってたんですが、dataってビットマップ(広義)と知って…
>>71
そうですね、
一旦bete[]にバッファしてそれぞれByteArrayInputStream作ることにします。
ご協力ありがとうございました。
73:57
07/06/29 00:12:38
>>58
ありがとう やっと意味がわかったよ
74:デフォルトの名無しさん
07/06/29 00:22:36
>>72
そういうのってNIOでやるんじゃない?
75:デフォルトの名無しさん
07/06/29 00:29:41
>>72
DigestInputStream
76:デフォルトの名無しさん
07/06/29 00:51:14
Javaを使って遠隔機械操作をしたいんですが関連するパッケージを
教えてください。
RMIとかなんでしょうか
77:デフォルトの名無しさん
07/06/29 00:54:31
>>76
遠隔機器操作だけじゃわからん。どういう事をやりたいか具体的に書く。
78:デフォルトの名無しさん
07/06/29 01:05:56
サーボモーターの制御及び遠隔監視ですが、被制御側にJAVAとCのプログラムを配する予定です。
知りたいのは、ネットワークのストリームの確立方法と制御命令の伝達方法、及び監視情報のリアルタイム
での送受信方法です。
79:デフォルトの名無しさん
07/06/29 01:10:10
78の補足
回線は優先無線の両方を考えてますが、とりあえず有線の方法、通常のインターネット経由の方法で
教えていただけたらと思います。
80:デフォルトの名無しさん
07/06/29 01:17:50
Cも使うのならベタにSocket使えばいいんじゃね。
81:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/06/29 01:43:20
なんか1.5ぐらいからJavaの文法、複雑になっちゃったな
>>81とか俺には理解できない・・・
83:81
07/06/29 02:14:21
>>82
大丈夫。Java7 あたりから俺もわからなくなる。
84:デフォルトの名無しさん
07/06/29 02:26:47
やさしいjavaで勉強初めて一週間程たちます。
色々調べたのですがわからなかったので、初歩的な質問ですが教えてください。
class Car
{
int n;
}
とした時に
Car car[ ] = new Car[3];
のような配列ぽい変数にできるのでしょうか?
今試しているのですがエラーになります。
コンストラクタを使ってオブジェクトを作る時は配列は使用できないのでしょうか?
先のページには出来ている様なコードが書いてあるのですが、抽象クラスでないとダメなんでしょうか?
85:デフォルトの名無しさん
07/06/29 02:27:12
>>80
失礼Cはマイコン用のCで低レベルの制御用にのみ使うものです、通信そのもは複雑なネットワークに
も対応できるようにJAVAを使おうと思っています。
86:デフォルトの名無しさん
07/06/29 02:29:50
>>84
配列要素それぞれをnew Car()で生成する必要があります
Vector使ったほうが簡単では?
87:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/06/29 02:34:24
>>86
>>87
なるほど!!
まずは配列要素それぞれで生成するわけですね。
早速試してみます。
89:88
07/06/29 02:42:00
>>87さんのコードを書き加えたら出来ました!
ありがとうございました!
90:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/06/29 03:22:45
アプレットから Runtime.exec ですか。実に危険だな。
92:デフォルトの名無しさん
07/06/29 03:35:31
>>90
2つ目動作することある?
Runtime#exec(String[]) の2つ目以降の要素は1つ目の要素の引数ではないか?
93:90
07/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:デフォルトの名無しさん
07/06/29 04:39:48
>>85
組み込み用Cしか動かないような環境でJava動くの?
95:デフォルトの名無しさん
07/06/29 04:43:53
>>90
どうせネタだろうけど
Runtime.getRuntime().exec(cmd[1]);
Runtime.getRuntime().exec(cmd[0]);
これでいいよ
96:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/06/29 15:40:33
URLConectionでリクエスト送信→レスポンス受信な処理をやろうとしてるんですが、
ループ内でリクエスト送信後、レスポンス受信の前に次のリクエストを送る事ってできないんでしょうか?
レスポンスを待たずにリクエストを送りたいと思っています。
こういうのはthreadを使うべきなんでしょうか?
99:デフォルトの名無しさん
07/06/29 17:11:46
threadを使うべき
100:デフォルトの名無しさん
07/06/29 17:53:15
国際化対応って最後にまとめてやったほうが効率いいですか?
101:デフォルトの名無しさん
07/06/29 19:48:07
>>100
はじめから考えなきゃだめな部分とそうでない部分がある。
まあ、とにかくはじめに検討することが大事。
102:デフォルトの名無しさん
07/06/30 00:14:50
ArrayList<Integer>クラスのインスタンスをint[]クラスに代入したいのですが、どうしたらよいのでしょうか?
toArray()メソッドを使おうと考えたのですが、Integer[]クラスへの代入はできるもののint[]クラスへは代入できませんでした
103:デフォルトの名無しさん
07/06/30 01:00:43
>>102
ArrayList<Integer>とint[]は一方が他方のサブクラスの関係でないので代入できない。
リストの各要素をint[]の各要素に代入したいのなら、
toArrayでInteger[]を生成したあとで、同じ要素数のint[]を作って、各要素に代入していく。
104:デフォルトの名無しさん
07/06/30 01:03:39
ArrayList<Integer>から各要素を直接取り出してint[]の各要素に代入してもいいし。
105:デフォルトの名無しさん
07/06/30 01:25:21
配列a[]と変数b,c,dがあったとして、
if(a[ i ] && b+c<=d)
という条件文の場合、条件を日本語を訳すと「a配列の@番目の要素とb+cがともにd以下の場合」ということでいいんでしょうか?
106:デフォルトの名無しさん
07/06/30 01:30:52
「a配列の@番目の要素とtrueかつb+cがd以下の場合」
107:デフォルトの名無しさん
07/06/30 01:31:33
×要素と
○要素が
108:デフォルトの名無しさん
07/06/30 01:32:17
JAVAの通信についての質問です、お願いします。
URL url = new URL(address);
URLConnection connection = url.openConnection();
としたとしてサーバーに「GET」としてリクエストが行くと思うのですが、ヘッダーのUser-AgentがJava/1.5.0_12となっています。
ネット上のデータを取得するときに、指定したヘッダーをサーバーに送信するやりかたはあるでしょうか?
今はテストとして、URLリンク(www.cybersyndrome.net)をURLクラスで取得して、User-Agentの書き換えをあれこれ試してるんのですが、
URLConnectionのsetRequestPropertyなど試してもなかなかうまくいきません。
よろしくお願いします。
109:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/06/30 02:24:22
BufferedReaderクラスのreadLineメソッドで一行ずつ読み込む処理を行っているのですが,
現在まで読んだ文字数を知る方法はないでしょうか?
読み込んだ文字列の長さを足していけばいいと思ったのですが,
改行が削除されているために,改行コードがCRかCRLFかわからない場合うまく数えられないのです.
111:デフォルトの名無しさん
07/06/30 02:30:11
>>110
BufferedReader#readLineではたぶん無理
一文字ずつ読んで行にまとめる処理は自分でやる
112:110
07/06/30 02:31:56
>>111
thx
了解です
113:デフォルトの名無しさん
07/06/30 02:35:55
もし改行コードが一貫していることが分かってるなら
とりあえず最初の行末端が出るまでは一文字ずつ読んで
改行がLFかCRLFかCRかを判断したら
あとはreadLineで読んで改行の種類に応じて行ごとに文字数に1か2を足してやる手もある
114:110
07/06/30 02:37:43
すみません,追加で質問させてください.
BufferedReaderで現在まで読んだバイト数(現在位置)も知ることは無理でしょうか?
115:108
07/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:デフォルトの名無しさん
07/06/30 02:52:28
URLConnectionの方でUser-Agentを設定してるのに
実際にデータを読むときはなんでURLからストリームを開いてるの?
117:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/06/30 02:56:18
>>114
多分無理っぽい。自分でカウントするしかなさそう。
>>115
わざわざconnectしなくてもデータを読もうとした時点で勝手に接続してくれるよ。
119:デフォルトの名無しさん
07/06/30 02:58:50
>>117
blpの値によって違う
120:110
07/06/30 02:59:18
>>118
ありがとう.了解です.
>>113の方法でやってみることにします
121:デフォルトの名無しさん
07/06/30 03:01:21
>>119
もしblpが0と1の2種類の場合、0と1でどう違うのでしょうか?
122:デフォルトの名無しさん
07/06/30 03:09:07
blpが非零の時にif文が終了した時点でiに何がセットされてるか考えてみ
123:デフォルトの名無しさん
07/06/30 03:10:59
>>122
実際に実行してみて分かりました!
124:108
07/06/30 03:15:28
>>116
ありがとうございます、UA表示が変わりました。
どうやら、本でURL先のデータ表示だけをする部分に
URLリンク(journal.mycom.co.jp)
ここのヘッダー取得処理を加えたときに、ごっちゃになったようです、すみません…
>>118
私も最初はconnect()いらないんじゃないかと思ったんですが、ぐぐったときに出たサイトで
// コネクション生成(この時点では、接続されていない)
con=(HttpURLConnection) url.openConnection();
とあったので、そういうものだとばかり思ってました。
ありがとうございました、またがんばろうと思います。
125:デフォルトの名無しさん
07/06/30 06:27:34
仕様書よりも馬の骨サイトの方を信用する癖は無くした方がいいよ
126:デフォルトの名無しさん
07/06/30 07:33:53
実行中のウィンドウがアクティブでなくなってもキーボード入力を受け付ける方法ってありませんか?
127:デフォルトの名無しさん
07/06/30 08:41:40
ありますよ
128:デフォルトの名無しさん
07/06/30 21:08:43
Servlet アプリケーションの設定って、どこに記述すればいいの?
Windows アプリケーションでいうところの INI ファイルみたいな
設定ファイルって Servlet にはないの?
properties ファイルはローケール依存テキストを記述するものだから
適当じゃないよね?
129:デフォルトの名無しさん
07/06/30 21:18:21
ここにその質問文を書く時間があれば、
グーグル先生に「Servlet 設定ファイル」で聞いてみろよ。
URLリンク(www.google.co.jp)
130:128
07/06/30 21:25:19
>>129
調べたんだけど、どこか分からないんです。
コンテキスト ファイルでもないし、server.xml でもないし、web.xml でもない。。。
外部プログラムのパスとか、アップロードしたファイルを記録するディレクトリとか、
Servlet を配備するユーザーが書き換えれるような設定ファイルって、どれになるのかな?
131:デフォルトの名無しさん
07/06/30 21:31:00
>>130
そういうことか
アプリケーション自体の設定ファイルなんぞ、読める場所に好きな形式で書いておけばいい
変更も少なく数も少なければ、web.xmlに記述するのもあり。
よくやるのは、設定ファイルのパスをweb.xmlに書いておき、実際の設定ファイルは別にするという形
そうすればテスト用の設定ファイルとかを使い分けるのが楽。
形式はXMLにするかプロパティファイルにするか独自形式か、それは好きにしてくれ
132:128
07/06/30 21:34:23
>>131
ありがとう。とても参考になったよ。
133:デフォルトの名無しさん
07/06/30 21:43:49
>>131
ありがとう。とても参考になったよ。
134:デフォルトの名無しさん
07/06/30 23:23:18
swingのJButtonについてですけど、ActionPerformed()の中でIconをsetIcon()で交互に付け替えています。
しかし、ボタンを2回以上押すとアイコンの後ろに「...」のような文字が入ります。 ちなみに、setActionCommand()も
同時に使っています。 何かのバグでしょうか?
アプリは簡単な動画再生プログラムでPlayとPauseのアイコンを入れ替えるだけのものですが、何か解決方法は
ないでしょうか?
135:デフォルトの名無しさん
07/06/30 23:27:30
>>134
ソースみなきゃ何ともいえないけど・・・
JButton playButton = new JButton();
JButton pauseButton = new JButton();
と個別にインスタンス作って、setEnableで制御した方が確実な気がする
どうしても1ボタンで済ませたいのであれば、setVisibleで見せる/見せないの制御を行うほうが自然
136:88
07/06/30 23:50:05
以前「やさしいjava」で勉強してて質問した88です。
値渡し、参照渡しの理解で苦しんでます。
値渡し、参照渡しは言語によってあったりなかったりぽいのですが、これは理屈どうこうっていうより「java仕様」って事で覚えた方がいいのでしょうか?
なぜ値渡し、参照渡しと別々の考え方なのかが理解できないでいます。
「やさしいjava」曰く、クラス型変数は代入=参照渡しだから〜という内容で、int型等を「基本型」とくくって「基本型の変数は値渡し」と書いてあります。
他のサイトやwikiで調べてみると、基本型とかクラス型とか、そういう考え方は一切なく、intやdoubleは値渡しで処理して、String型等は参照渡しがjavaの仕様と書いてあるような気がしました。
やさしいjavaで「クラスで生成された変数は参照型の処理をされる」と書いてありますが、自分のコードのクラスで生成した変数だろうが、クラスライブラリ使用での変数だろうが、
どっちもクラス型変数のような気がして、いまいち「int型やdouble型は基本型の変数」というのが納得いきません。
int型やdouble型等は値渡し、String型は参照渡し みたいな感覚で覚えていいのでしょうか?
うまく説明できてい上に初歩すぎる質問かもですが、よろしくお願いします。
137:デフォルトの名無しさん
07/06/30 23:57:57
>>136
URLリンク(www.google.com)
138:デフォルトの名無しさん
07/07/01 00:11:09
>>136
やさしいJavaはろくな目にあわないなw
Javaでのプリミティブ型は特殊だという認識を持った上で、メソッド呼び出しの時は全てインスタンスの参照が渡されると認識するならばいいんじゃないか?
納得して先に進みたいならば、この辺に結構詳しく書いてあった
URLリンク(d.hatena.ne.jp)
139:88
07/07/01 00:27:18
>>138
仕組みについては理解できました!
クラス型の変数というところでひっかかっていたようです。
クラスで作った変数1=変数2だと参照型というのは理解していたのですが、
やさしいjavaで「String n」の引数に「一号車」と代入する時はクラス型変数なので参照型 という記述があって、
なぜString型がクラス型の変数なのか?とワケワカラン状態になってました。
プリミティブ型が特殊っていう考え方が非常にわかりやすかったですw
値渡しが基本で、参照渡しが特殊 ではなくて、参照渡しばっかりのjavaの中でプリミティブ型は値渡しが行われてる仕様 って事でいいんですね。
勉強になりました。ありがとうございました!
140:デフォルトの名無しさん
07/07/01 00:36:18
>>139
クラス型変数?
違和感を感じたのはそこか!
「クラス型変数なので参照型」は逆だ、逆。
「インスタンス(正確にはその参照)は、参照型変数に代入できる」が正しい
だから、参照型変数の型は必然的にクラスになる
インスタンスの存在に関する記述がテキトーなんだな、その本は
141:デフォルトの名無しさん
07/07/01 00:38:14
Eclipseにてデバッグした後、プログラム終了時に、
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_ACCESS_VIOLATION 。。。
というメッセージがコンソール画面に出て来るときがあります。
Eclipseのデバッグ画面には、このエラーが発生した箇所が出てこないので、どこで発生しているのか分かりません…
このエラーメッセージが出た場合、とりあえずプログラムのどこをチェックすべきですか?
ACCESS_VIOLATIONってことなので、C言語だったらポインタ演算してる箇所とかをチェックするんですが…
142:デフォルトの名無しさん
07/07/01 00:39:09
javaの値型はC++の値型とは違うからなぁ・・・
143:デフォルトの名無しさん
07/07/01 00:45:57
>>141
Swingとかマルチスレッド関連?
どの手のアプリケーション実行していての話だろうか。
デバッグ時だと予期せぬ状態としか言いようがないな
144:デフォルトの名無しさん
07/07/01 00:54:24
>>141
それが出たときは飼い犬に咬まれたと思って諦めろ
145:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/07/01 01:09:08
>>145
マルチスレッドだと単純に不安定になるよ
デバッグでなく発生するのであれば、別の問題だろうけど
そうでないのであれば原因を突き止めるのはデバッグモードを創れるレベルが要求されそうな予感
147:デフォルトの名無しさん
07/07/01 01:12:19
>>139
>値渡しが基本で、参照渡しが特殊 ではなくて、参照渡しばっかりのjavaの中でプリミティブ型は値渡しが行われてる仕様
値渡しが全て。
プリミティブは、その値自身が、値渡しされる。
オブジェクトは、そのオブジェクトへの参照が、値渡しされる。
148:デフォルトの名無しさん
07/07/01 01:12:37
連続してデバッグしたりするとよく出るね
149:デフォルトの名無しさん
07/07/01 01:18:11
>>145
VMのバグ、または、JNIでの呼び出し先でのバグかも
Javaのプログラムを見ても解決するはずない、たぶん
150:デフォルトの名無しさん
07/07/01 02:55:57
すみません、超初歩の質問です。
URLリンク(www.javadrive.jp)を参考に
したのですが、java test1を実行すると
「注釈処理が〜」というエラーメッセージが出ます。
エラーは1つです。
で、ためしにjava ソース で検索したものを実行させて
みたのですがこれも同じメッセージでエラー1つです。
これは設定が間違っているということなのでしょうか?
151:デフォルトの名無しさん
07/07/01 02:58:55
自分が書いたソース晒せー
152:150
07/07/01 03:02:09
>>151
これです
class test1
{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}
153:150
07/07/01 03:03:36
なんかずれてる・・
もう1度
class test1
{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}
154:デフォルトの名無しさん
07/07/01 03:10:09
エラーメッセージじゃなくて警告だろ。
そのまま実行すれば実行できるよ。
155:デフォルトの名無しさん
07/07/01 03:11:12
そこは間違ってないな・・・throwされた例外を全部そのままコピペして。
あとjavacとjavaのバージョン
156:150
07/07/01 03:19:46
あ”あ・・
いろいろいじってたらまた出来なくなってきた
操作可能なプログラムまたはバッチファイルとして認識されません
とか出てきた・・・
ちょっと出直してきます。すみません・・・
javacのバージョンとは??
javaはjdk1.6.0_01です
157:150
07/07/01 03:23:53
あと、システムの環境変数で、PATHの所だけ
C:\Program Files\Java\jdk1.6.0_01\bin に変えればよいみたい
なのですが、間違えて class PATH とPatch もこれに
してしまったのですが、問題アリでしょうか??
158:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/07/01 03:38:28
というか普通は
JAVA_HOME = <install_dir>
Path = %Path%; %JAVA__HOME%\bin;
とする。
CLASS_PATHは必要な時だけ。
環境変数Pathって復元できたっけ?
160:150
07/07/01 04:05:09
なんとか最初の問題まで戻れました。
エラーはこういう表示です。
エラー:クラス名 'java' が受け入れられるのは、注釈処理が明示的に要求された場合だ
けです
エラー 1 個
C:\jsample>
こっから全く進めません・・・
ぐぐっても出てこないし
161:150
07/07/01 04:06:58
↑
ファイル名をjavaに変更しました
162:デフォルトの名無しさん
07/07/01 04:21:33
ソースファイル名をtest1にしてjavac→java
163:150
07/07/01 04:26:10
>>162
ダメです・・・
同じメッセージしか出ません。
なんでだろう????頭こんがらがってます
3時間くらいずっとつまずいでます
164:デフォルトの名無しさん
07/07/01 04:27:13
答:今日はあきらめて寝る
165:デフォルトの名無しさん
07/07/01 04:29:58
Test01.java
------------------------------------
class Test01
{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}
166:150
07/07/01 04:30:14
'java' が受け入れられるのは、注釈処理が明示的に要求された場合だ
けです
このメッセージをぐぐっても出てこないのは
やっぱり普通はこういう事にはならないからなのでしょうか。
うーーーーん・・
>>164
6時までは頑張ってやってみます
ダメなら寝る
167:デフォルトの名無しさん
07/07/01 04:31:04
ミスった
Test01.java
public class Test01
{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}
168:デフォルトの名無しさん
07/07/01 04:32:29
javac test1 とやると「注釈処理が明示的に要求され・・」と出るようだ。
javacでは拡張子の.javaを含むファイル名を指定する必要あり。
java では拡張子の.classは付けない。
javac test1.java
java test1
169:150
07/07/01 04:49:15
CLASSファイルが作成されたらいいんですよね????
できましたーーーーーーーーーーーーー!!
ファイル名に .java をつけてjavaファイルにしていなかったのが
1番の原因だったと思われます。
ただ、サイトや実用書のように文字が表示されないのが
よくわかりませんが、とりあえず第一関門突破です
ありがとうございました
170:デフォルトの名無しさん
07/07/01 04:53:15
>>150
コマンドプロンプトとかDOSとかCUIってしってるか?
171:150
07/07/01 04:57:42
>>170
コマンドプロンプトは分かります。
DOSはDOS−Vとかのでしょうか?(真っ黒い画面のがそう?)
DOSとCUIは言葉は聴いたことありますが今いちよく分かりません・・
172:デフォルトの名無しさん
07/07/01 04:57:55
JMenu m = new JMenu("ファイル選択");
m.add(new JFileChooser());
という感じで、JMenuにJFileChooserを置いて、メニュー内に選択画面を出す…
という変なことやってみたいんですが、ちゃんと表示はされます。
でも、スクロールバーが動かなかったり、ボタンも機能してくれません。
やっぱり無理なんですかね
173:デフォルトの名無しさん
07/07/01 05:00:12
hoge.java.txt っつーのもあるな
174:150
07/07/01 05:00:56
JAVAファイルをCLASSファイルに変換させるとこまでは
できましたが、Hello Worldの表示が出ない・・・
175:デフォルトの名無しさん
07/07/01 05:03:47
>>171
じゃあさっき生成されたclassファイルがあるディレクトリ(フォルダ)に潜って
java test1
>>172
メニューアイテムが選択された時にチューザを表示するようにする。とか。
176:150
07/07/01 05:12:33
>>175
今までコンパイラとインタプリタを勘違いしてました。
コンパイラで文字を出そうとしていたのですが
やっと意味が分かってきました。
でも、CLASSファイルができたので
java test1 で出てきそうなのですがエラーになります
うーーん・・・
もうちょいやってみます
177:デフォルトの名無しさん
07/07/01 05:21:40
public class Test01
~~~~~~~~~~~~
178:150
07/07/01 05:29:22
Exception in thread "main" java.lang.No ClassDef FoundError:test1
このようなエラーがでます。
おかしいなぁ・・
179:デフォルトの名無しさん
07/07/01 05:40:49
もしかして元もとの環境変数Pathに;.含んでない?
ないなら追加。
180:デフォルトの名無しさん
07/07/01 05:48:14
ところでさ、>>1のwiki内のリンク参照するとたまに
URLリンク(ezrenai.takara-me.com)
にリダイレクトされるんだけどPHPおかしくない?
181:150
07/07/01 05:48:51
>>179
PATHなんですが、いろいろいじったせいで
元々設定してあったのを全部消して今は
C:\Program Files\Java\jdk1.6.0_01\bin
を設定してあります。; はどこに追加すればよいでしょうか?
182:150
07/07/01 05:51:20
すいません、がいしゅつ質問してしまいました。
>>1をちゃんと読んでなかったので
ちょいと行ってきます!!
183:150
07/07/01 06:21:16
なんかよく分からないけど、一応できました。
質問答えてくださったみなさんありがとうございました!
やっと次に進めます
184:デフォルトの名無しさん
07/07/01 06:35:34
皆さんて2人くらいしか居ない気がするw
どうせ俺はvipの深夜保守組だし気にするな。
ただし、昼間は頭使えw
185:デフォルトの名無しさん
07/07/01 09:00:24
色について以前質問したものですが
WEB上で見るときに色の情報がポップアップで見れたりできるようにしたいんですが
どなたか作ってもらえませんか
URLリンク(sky.ap.teacup.com)
欲を言えば最後に絵の具の番号で言うとどうなるのか変換してくれるボックスみたいのがあれば
うれしいんですが
186:デフォルトの名無しさん
07/07/01 09:03:21
モニタのキャリブレーションしてるか?
187:デフォルトの名無しさん
07/07/01 09:05:54
キャリブレーションってなんですか
188:デフォルトの名無しさん
07/07/01 09:12:49
Googleで検索くらいかけてから反応しような
189:デフォルトの名無しさん
07/07/01 09:36:13
>>168-169
Javaのエラーメッセージって相変わらず不親切だな。MSほどじゃないけどさ。
普通に「拡張子(.java)をつけてください」って出せよな
190:デフォルトの名無しさん
07/07/01 09:39:17
そこら辺の屑モニタにキャリブレーションする意味もないだろ。
元が狂いまくってんだし、幅が効かん。
それともそっち系のモニタの話?
にしても>>185はひどいな。
191:デフォルトの名無しさん
07/07/01 12:53:48
JAVA3Dなのですが、1秒ごとに1つずつ同じ図形をずれた位置に追加表示
させるにはどのようにすればいいのでしょうか。
↓こんな感じです
最初 □
一秒後□□
もう一秒後□□□
・
・
・
できれば5個くらい表示させたところで停止させる処理の記述も
教えていただけるとありがたいです。
よろしくお願いします。
192:デフォルトの名無しさん
07/07/01 14:15:28
キャンバスに文字を表示しているんですが、
public void paint(Graphics g) {
・
g.drawString("文字間隔",x,y);
・
}
その文字の間隔を任意に設定はできないんでしょうか?
ご教示願います。
193:デフォルトの名無しさん
07/07/01 16:27:49
>>191
スレッドまたはタイマー
>>192
g.drawString("文",x1,y);
g.drawString("字",x2,y);
g.drawString("間",x3,y);
g.drawString("隔",x4,y);
どのくらい間隔あけるかは、fontMetricsから計算する
194:192
07/07/01 16:43:43
>>193
わかりました。やってみます。ありがとうございました。
195:デフォルトの名無しさん
07/07/01 17:28:44
gifイメージをアイコンに読み込んで表示するプログラムですが、jarに固めるとgifファイルを
読み込んでくれません。 imagesディレクトリに入れてあり、ディレクトリ構造は同じなのですが、
何か MANIFEST.MFに書き加える必要はあるのでしょうか?
196:デフォルトの名無しさん
07/07/01 17:43:17
URLリンク(240k.main.jp)
197:デフォルトの名無しさん
07/07/01 17:48:03
>>196
わかりました。やってみます。ありがとうございました。
198:195
07/07/01 17:56:28
195だけど、getClass().getResource()を使うとうまくいった。 疲れた・・・
199:デフォルトの名無しさん
07/07/01 18:13:22
public class longtest {
public static void main(String[] args) {
long a=2147483647;
System.out.println(a);
}
}
このプログラムのaの値をより大きく表示できるように改変してください。
この値よりも1でも大きくなるとエラーが出てしまいます。
値は出来るだけ大きいほうが良いです。
200:デフォルトの名無しさん
07/07/01 18:16:20
jarに固めるとファイルを読み込めなくなるハマリの初心者的2大原因
1.リソース検索してそのURLを指定せず、ファイル名を直接指定している。
2.Windowsのような大文字小文字の区別をつけないファイルシステムを使っていて、区別をつけるjar内の事情を気にしていない。
201:デフォルトの名無しさん
07/07/01 18:19:59
>>199
どっちでも使え
public class longtest {
public static void main(String[] args) {
long a=2147483648L; //1増加
a=Long.MAX_VALUE; // 最大限に増加
System.out.println(a);
}
}
202:192
07/07/01 18:24:37
>>197
おいおい、IDでないからってパクるなよw
やってみたけど、めんどうですね。ところでMFCの
SetTextCharacterExtra
みたいに1発で指定できないですかね。
setCharacterSpacing
というのがあるみたいですけど、使い方がわからないです。
203:デフォルトの名無しさん
07/07/01 18:36:35
やってることは子供じみてるけれど、
自分の質問に対するレスへの自分を騙ったレスではないんだからいいんじゃね?
騙りとは違うからIDが出ないこととは無関係。
一発で指定したいのなら、後々のことも考えてsetTextCharacterExtraメソッドを自作する。
204:191
07/07/01 18:39:34
URLリンク(www.javaopen.org)
↑をもとに作ってみようとしたんですが、これだとBranchGroupや
TransformGroupはどこで定義すればいいのでしょうか?
205:デフォルトの名無しさん
07/07/01 18:42:30
>>203
了解。
206:デフォルトの名無しさん
07/07/01 20:22:37
>>204
リンク先のソースのどこにもBranchGroupやTransformGroupはないが?
自分のソース貼り付けてくれよ
207:デフォルトの名無しさん
07/07/01 21:39:23
↓の文章がコンソールのところに出てきたんですが・・・
どこが間違ってるってことなんでしょう?
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Shukudai453.main(Shukudai453.java:26)
二行目の()の中をクリックすると、ソースコードのこの部分↓が青くなるんですが・・・
int n = Integer.parseInt(args[0]);
*****************
という質問を他スレでしたら、「引数指定」といわれました。
それ以上聞くとスレ違いだらしいので、ここで聞かせてください。
どこを直せばいいんでしょう?
208:デフォルトの名無しさん
07/07/01 21:41:22
すみません
WindowsでSWT使ってプログラム書いて実行可能なjarを作ろうとして躓いています
マニフェストファイルを作って
Main-Class: Hoge
Class-Path: . swt.jar swt-win32-3236.dll
さらに
jar cvfm Hoge.jar Hoge.mf Hoge.class swt.jar swt-win32-3236.dll
として固めたjarを(Javaだけはインストールしてある)別の機械に持って行って
java -jar Hoge.jar
とするとDLLが見つからないと言われてしまいます
あらかじめカレントディレクトリに
swt-win32-3236.dll が存在する環境だと実行出来るみたいなのですが
209:デフォルトの名無しさん
07/07/01 21:43:43
>>207
java Shukudai453 数字
で実行
210:デフォルトの名無しさん
07/07/01 21:47:10
>>207
どんな環境でなにをどうやったらそうなったのか書け
それすら出来ないならば、ここでもスレ違いだ
211:デフォルトの名無しさん
07/07/01 21:51:49
ええっと
URLリンク(sourcepost.sytes.net)
を実行したんですが・・・
212:デフォルトの名無しさん
07/07/01 21:53:29
実行とは?
Javaのバージョンは?
そもそもコードを理解できている?
あと、学ぼうとする気ある?
213:実行したのはこっちの間違いでした
07/07/01 21:57:38
import java.util.List;
import java.util.ArrayList;
public class Cebysev {
private static List<Integer> primeCache;
static {
primeCache = new ArrayList<Integer>();
}
private static boolean isPrime(int value) {
if (!(primeCache.indexOf(value) != -1)) {
return true;
}
214:デフォルトの名無しさん
07/07/01 21:59:19
すいません>>213は忘れてください・・・
>>212
自分ホント分からないものだらけなんで。。。
明日までに完成させたいんです
215:デフォルトの名無しさん
07/07/01 22:02:41
そんな状態になるまで勉強をしなかったお前が悪い
216:デフォルトの名無しさん
07/07/01 22:04:27
完成させることは無理
同情の余地も無い
大学名と学部を晒したら変わりに提出しておいてやるよ
217:デフォルトの名無しさん
07/07/01 22:23:19
だから宿題スレの701嫁
218:デフォルトの名無しさん
07/07/01 22:28:12
絶望的に理解不足だなw
219:デフォルトの名無しさん
07/07/01 22:28:16
>>208
URLリンク(www.seman.cs.uec.ac.jp)
220:デフォルトの名無しさん
07/07/01 22:29:26
C++で typedef std::vector<std::string> strings_t; という感じに
ArrayList<String> に別名を付けたり出来ますか?
221:デフォルトの名無しさん
07/07/01 22:32:56
>>220
public class StringList extends ArrayList<String> {}
とかすれば出来る(?)けど、何にも意味がないような
222:デフォルトの名無しさん
07/07/01 22:38:17
コンストラクタも定義する必要がありそうな
223:デフォルトの名無しさん
07/07/01 22:38:51
>>220
Javaにはない
224:デフォルトの名無しさん
07/07/01 22:43:02
>>208
URLリンク(launch4j.sourceforge.net)
225:デフォルトの名無しさん
07/07/01 23:11:45
というかエイリアス使えるようにしたらC++みたいにタイプ数減らすためだけに
エイリアスを乱定義して可読性が落ちるからやめてほしいなぁ。
226:デフォルトの名無しさん
07/07/02 06:35:51
Javaの入門書、何を買うべきか迷っています。アドバイスをお願いします。
私の今のレベルは、Cが「少しは」できる感じです。
(配列・構造体・ポインタなど、基礎的な部分は分かる。
コンパイラの挙動やプリプロセッサに関してもある程度分かる。
作ったことがあるプログラムは、一つあたり1000行(.cファイル二つ、.hファイル一つ)程度)
個人的には、『独習Java』か『やさしいJava』かなあ、と思っていますが、どちらか決め難い。
他にもお勧めがあれば教えてください。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5055日前に更新/271 KB
担当:undef