■■■ 最近多い質問とその答え ■■■
Q. javac コマンドを実行したときに、
『コマンドまたはファイル名が違います』や
『'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。』
と表示されてコンパイルできません。
A. javac.exeへのPATHが通っていません。
http://java.sun.com/j2se/1.4.1/ja/install-windows.html を良く読んで、javac.exe のあるディレクトリ(例: C:\j2sdk1.4.1_01\bin )のパスを
環境変数PATHに追加してください。
その後、
Windows98/MEの場合はOSを再起動、
Windows2000/XPの場合はコマンドプロンプトを新たに立ち上げなおしてください。
設定したパスが正しければ、javacが使えるようになります。
それでも同じエラーが出る場合は、設定した値が間違っています。よく見直してください。
Q. javac Hello.java でコンパイルはできるのですが、
java Hello を実行しようとすると
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』
と表示されて実行できません。
A. カレントディレクトリ(.)がクラスパス(classpath)に含まれていません。
コマンドプロンプトで、
set CLASSPATH=%CLASSPATH%;.
と設定する。最後の「;」と「.」を見落とさないように!
または、
http://www.gimlay.org/~javafaq/S004.html#S004-02 を読んでカレントディレクトリ「.」を環境変数CLASSPATHに追加してください。
JavaFAQ 基礎知識
http://www.gimlay.org/~javafaq/S004.html
3 :
デフォルトの名無しさん :02/12/01 17:29
モツ
ログ書きプロセスを非同期にしたいのですが (本処理速度に影響しないように)jdk1.3だと どうやるのが正しいですか?Pipeがあったけど 1.4からですよね。ServerSocketで待つくらい しか思いつかないのでよろしくおながいします。
>>5 自由に非同期にすれば?
JakartaのLog4Jだと、非同期オプションついてるよ。
Streamレベルでやりたければ、BufferedOutputStream Extendsした
クラスを、1秒ごとにFlushするスレッド起動する。
これで復帰ははやくなる。あと、PrintStream,PrintWriterみたく、Synchronizedする
のを忘れずに。
otsu
>>5 本処理をするスレッドとは別にログ吐き専用スレッドを立ててやるのが定番。
メモリ上のバッファを経由して出力文字列をやり取りする。本処理に影響
しないので、書き込む都度ファイルのオープン/クローズやっても平気
(これやっとくと実行中にログファイルを消せる)。
>>6 ServerSocket使うと、Synchronized無しでも実装できるかな。
そうすると、その方が速い?
19 :
デフォルトの名無しさん :02/12/01 18:27
>>9 はなにがしたいんだ?Socketなんか挟んだら、
SendBufとRecvBuf間の転送分だけ無駄にコスト
でそうだが・・・
ログバッファの永続化を行うだけのデーモンス
レッドをプライオリティ最低で起動しといたら
十分かと。
JAVAで map[][] ={{0,0},{0,0},{0,0}}; で初期化した配列に値を入れる場合、 例えばmap[1][1]=0;のようには代入できますが、 map[][] ={{1,1},{2,2},{3,3}}; のようにまとめて入れることができません。 一度にまとめて値を代入することは可能ですか。 お願いします。
21 :
デフォルトの名無しさん :02/12/01 18:32
map[1]={1,1}とか map={{1,1},{2,2},{3,3}}とか。 配列オブジェクトインスタンスの差し替えになるけど。
>>9 ServerSocket 使ってログ吐きサーバ立ててやるつもりかもしれんが、どの道
サーバ側で全部同期取ってれば本処理側もソケットの I/O ウェイトを食らうぞ。
どうやってもこういう形に落ち着くと思う (10 スレッド程度なら全部同期
とってもさして変わらないだろうけど)。
・同期取る部分は最小限に ⇒ メモリ上のバッファを使用
・ディスクの I/O ウェイトは本処理に影響ないように ⇒ ログ出力専用スレッド
>>20 int[][] map;
map = new int[][]{{0,0},{0,0},{0,0}};
map = new int[][]{{0,0},{1,1},{2,2}};
...
>>24 あそか。しもた。
初期化時以外はアレイインスタンス生成せにゃナランね。
map[0]= new int[]{1,1};
もオケということでお許しを。
実験したら、
>>20 の
map[][] ={{1,1},{2,2},{3,3}};
ができちゃったのだが、どうしよう。
Javaの引数はコピーが渡されているみたいですが、 実体を渡すにはどうするのでしょうか? (C言語で言うポインタを渡す) void setString(String msg) { msg = "Hello"; } これだとmsgを渡した側では書き換わってくれません。 よろしくお願いします
>>27 素直に return で String 返せば良くないか?
>>27 ポインタみたいにしたいなら
void setString(String[] msg) {
msg[0] = "Hello";
}
とか やる方法もあるけど…
>>28 のが良さげ。
Windows XPでJavaが「1年半」復活へ
マイクロソフトは6月18日、180度方向転換して、
Windows XPでのJavaネイティブサポートを復活させることを明らかにした。
同社は、夏末頃にリリース予定のWindows XPのService Pack 1(SP1)に、
独自のJavaソフトを含める予定だとしている。
しかし同社は、長期的にはWindowsからJavaを一切削除する計画だ。
http://www.zdnet.co.jp/enterprise/0206/19/02061906.html 今から勉強しても使えるようになった頃にはなくなってしまうのでしょうか?
>>30 1.1.4ベースなら、「復活」はむしろ悪いニュースのように聞こえる。
>>30 M$ は IE4.0 の頃にも同じ事を言ったことがあったよ。別に使えなくなる
わけじゃないし、IE なら Flash や Acrobat みたいなプラグイン扱いに
なるだけ。
>>31 1.1 ベースで作れるなら MS JVM の方がはるかに速い (特に GUI 周り)。
Java Web Startがデフォで入って欲しい、というのは贅沢かな。
正直、今更1.xベースだと非常に迷惑。
javaは、もうだめぽ・・? この先、携帯で生き残るぐらいしかないのかな・・。
1.1ベースの間違い。
何が迷惑なのですか?
>>28 >>29 戻り値はbooleanとかにしたい場合なのですが。
boolean setString(String msg) {
if(XXXXX){
msg = "aaa";
return true;
}
return false;
}
こうゆう場合にmsgの中身を書き換えたいのですが。
Javaじゃ無理なんでしょうか?
>>39 こんなんどう?
boolean isClazz(Clazz c){ // Clazzは、msgを持っているクラス
if (XXXXX){
c.meg = "aaa";
return true;
}
return false;
}
> 今から勉強しても使えるようになった頃にはなくなってしまうのでしょうか? SUN や多くのベンダが注力し続けたから今の Java がある。 MS が独自の Java を作るのを止めただけで、Java が無くなることはありません。
>>30 半年も前のネタを持ち出して釣りかよ。
それに、普通はいまさら、MSのJavaなんか見向きもしない。
なぜなら、AppletとしてのJavaは終わっているから、
1.1系の存在意義は既にない。
.NET対応のアセンブリを生成するJavaコンパイラとかだったら
ちょっと脅威だが、CLIからJava2のライブラリは使えないだろうから
当面はほっておいてもいいしね。
M$にとっては、サンのJVM乗せるぐらいなら、旧い独自JVM乗せる方が有利なんでしょうな。 「長期的」ってのは、訴訟が終わるまでだな。
>>40 ご教授ありがとうございます。
やはりそのやり方しかないのでしょうか・・・・(゚д゚)
関連リンク追加してくれた人に感謝。出かけてました
無くならないんですね?
>>42 釣りではありません。これから仕事でjavaをやるそうなので
プロジェクト終わったあとに使用価値がなくなったらいやだな〜と不安になったものでして・・。
あんがとさんでした。
1.1系のJavaはまだ現役ですよ。 勘違い厨房は先走りしすぎ。
Windows だけでシコシコ Java やってる奴は死滅するかも知れない。 商用 Unix で RDBMS 絡めて Java やってる奴はしばらく生き残りそう。 ただコーダーレベルの人間はもう飽和状態なのよね。設計まで出来る奴は かなり少ないけど。
>>44 Javaには、暗黙のポインタに対してアクセスする手段はないけど、
>>40 のように、明示的なポインタを作ることはできる。
つまり、それをふまえたクラス設計が必要になると思う。
かったるいだろうが、たとえば以下のように
boolean isValid(String msg) {
if(XXXXX){
return true;
}
return false;
}
String convertString(String msg) {
return "aaa";
}
とかで、
if (isValid(msg)) convertString(msg);
するのがJavaでは一般的。
いまちょっと調べてみた。jview.exe ってコマンドが Sun の java.exe みたいにコマンドラインで動くわけね。昔作った 1.1 の GUI アプリ動かして みたらたしかに jview の方が軽いですわ。
>map={{1,1},{2,2},{3,3}}とか。 コンパイル時に「文ではありません。」というエラーが 出てしまいます。
>>47 では聞くけど、Applet以外でどこで使われているの?
しかも、MS Javaがらみで、、、。
うちでは、サーバサイドの開発案件がほとんどなんで、管理用の
アプリもほとんどJava2だけど、世の中広いからなぁ。
>>49 >Javaには、暗黙のポインタに対してアクセスする手段はないけど、
アクセスできないのですね。
勉強になりました。
ありがとうございました。
>map={{1,1},{2,2},{3,3}}とか。 コンパイル時に「文ではありません。」というエラーが 出てしまいます。 いろいろ調べた結果、JAVAの文法が糞すぎて 直感的に分かりずらいことが分かりました。 やはりJAVAはやめてC++に戻ります。 本当にJAVAとかLINUXとかって糞ですね。 だからぜんぜんはやらないんですね。
>>54 試してみたんだが、そのエラーは出ない。
前後のコードを見せてくれる?
わかった。 ○通る int[][] map = {{1,1},{2,2},{3,3}}; ×通らない int[][] map; map = {{1,1},{2,2},{3,3}};
1.1系がMS Javaだけだと思ってる馬鹿がいるスレはここですか? 初心者には有害だな。
初心者のFAQに答えなくてはいけなくなる我々にも有害だな。
すっぱいリンゴだろ。
また〜り いきましょ。
>>57 >1.1系がMS Javaだけだと思ってる馬鹿がいるスレはここですか?
どこからそんな話が出たんですか?
自分の頭が悪いことを認められず、使っている道具に責任転嫁している馬鹿がいるスレはここですか? int[][] map; map = new int[][]{{11, 12}, {21, 22}, {31, 32}};
>>59 たんなるこのスレへの煽りかとおもったが、
Javaとは関係のないLinuxを持ち出したということは、
過去にLinuxでも挫折したことがあるおかたなのでしょう。
FreeBSDなどではちょっと前まで1.1.8がよく使われていました。
いまは1.3もあるし先日1.4のパッチも開発されましたが。
BSDにしても色々あるし、 世の中にOSもまたいろいろあるので、 1.1系のJavaも私が知らないところで色々使われているのでしょう。
>>54 そうだね。君みたいな人にはういんどうずでVC++がぴったりだね。
僕は頭が弱いんでLinuxでJavaやってますが。
>>54 そうだね。君みたいな人にはういんどうずでVBAがぴったりだね。
僕は頭が弱いんでLinuxでJavaやってますが。
> LinuxでJavaやってますが。 そりゃ頭弱すぎ。もう少し賢くなろうぜ。
>>68 いやけっこうLinuxのJava快適。
うちのパソコンはWindowsとのデュアルブートだけど、
スレッドのあつかいの関係なのかWindowsより高速に感じる。
高速に感じるのは俺の気の牲かもしれないが、
少なくともWindowsと遜色なく動作するのだけは確か。
>>44 いまさら手続き指向ですか?W
class Clazz {
String state;
private boolean execute() {
}
public String getState() {
return state;
}
}
>>71 いまいちJavaが理解できないので、すいません。
>>8 >>23 どもです、非同期ログうまくいきますた。
ログ管理クラス(実行時にログファイルを
追加/削除)で内部クラス(スレッド)を走ら
せてキューを読むようにしてみますた。
>>6 log4jとはちょっと用途が違ったんですが
debugとかのフラグの判断がif(debug)より
速いっていうとこだけ真似したいんで
(妄想)
初回だけフラグ判断して関数ポインタに
突っ込む、
if(debug)
this.func = debug_func;
else
this.func = normal_func;
みたいなことってjavaでできますか?
>>74 オブジェクト指向の基礎とポリモーフィズム勉強しなさい。
関数ポインタはJavaにはありません。 anonymous class等で小汚いwrapperを作ってください。 C#(.NET)ならdelegateでスマートに書けるのにね。
>>73 ちなみにそのキューはどうやって実装した?
非同期にして余計に遅くなってなきゃいいが。。。
79 :
デフォルトの名無しさん :02/12/01 23:38
>>76 78は、やさしくああ言ってくれてるが、不愉快だから、マジレスする。
なぜ、.NET Framework 1.1でAnonymous Methodなんていうもんを導入する必要が
あるか、考えて見ろ。関連ある処理をいちいちクソ離れた場所に記述しなければ
使えない、delegateこそクソ丸出し。
>>80 初心者向けスレで馬鹿丸出しのflameごっこはやらんでくれ。
あとお前は知識無さ過ぎ。
>>77 キューはArrayList型で入れる部分は同期で
addで、デキュー+出力をスレッドからという
感じにしますた。
>>82 LinkedListにした方がいい。どうせシーケンシャルアクセスのみだし。
とは言え、BufferedOutputStreamのみで非同期I/Oを実装した場合と
性能差を比べた方がいい(10万回くらいループして性能を取る)。
>>75 > ポリモーフィズム
ifで分岐するより速いものでしょうか?振る舞いを
変えるというより、ある文字列を出力するかしないか
程度の違いの関数を呼び分けたいというのが目的の場合
>>73 キューというかバッファは StringBuffer 使わないで独自に実装しろよ。
StringBuffer は一時的に内部バッファが大きくなってもあとで縮小するようには
出来てない ⇒ メモリ無駄に食うから。
あ、ArrayList でやってるのか、失礼。
87 :
デフォルトの名無しさん :02/12/02 00:21
int型で√演算が肢体です。 えーお約束ですが、 「教えてください」
88 :
デフォルトの名無しさん :02/12/02 00:23
sqrt()があった。ゴメソ
int value = 100; double result = Math.sqrt(value);
90 :
名無しさん@Emacs :02/12/02 00:29
interface Logger{ public void log(String message); } class NoLogger implements Logger{ public void log(String message){}//何もしない } class SimpleLogger implements Logger{ public void log (String message){ System.out.println(message);//stdoutへ出力 } } として、 Logger logger; if (debug){ this.logger = new SimpleLogger(); } else { this.logger = new NoLogger(); } とする。
218.43.192.205
>>92 ∧_∧ ッパシャ ッパシャ
( )】
/ /┘
ノ ̄ゝ
ようやく理解できますた。
delegate は良くない。 スマートじゃない。 goto文の悲劇を思い出す。
>>83 BufferedOutputStreamから読み出すのが
分かりません。PipedOutputStreamなら
漏れでもファイルとか介さないで読めそう
ですが..
>>95 なるほろ。そういう意見があったか。
確かに汚いソースになる元凶を作りそう。
>>96 BufferedOutputStreamにそのまま書けばいい。
flushしなきゃI/Oしないから非同期になる。
(
>>6 を見てるよね?)
flushはバッファのサイズを超えて書き込もうとした
ときに勝手にflushされる。
>>98 なるほどキュー員具のじゃなくて
出力のとこですね。
>>99 キューイングせずに、直にwriteメソッドを実行する場合と、君の作った
非同期と性能を比べてみろって言ってるんだが。
さらに言えば、log4jとも比べるべき(これが一番おすすめ)。
結論から言うと、君みたいな素人が作った物より、既存の物の方がずっと
優れてるから、早く気付けと言いたいだけ。
君はポリモーフィズムも知らない*超ド*素人だろ。LinkedListじゃなくて
ArrayList使ってるあたりからもデキューは絶亡的な性能だろうし、仕様
変更にも弱いだろう。
第一I/Oのバッファリングなんて、IO系クラスでも、JavaVMでも、OS(Unix系)
でもするんだから、さらに君の作ったクラスでキューイングするのは無駄で
しょ。
>>100 FileInputStream/FileOutputStream/RandomAccessFile
って int read() だけで読み込むとメチャクチャ重いけど
アレってバッファリングしてんすか?
>>101 してないっすね。バイト単位のreadごとにI/O発生してる。
>>100 log4jが使えなかった理由は、やりたいことが
もう少し複雑だったんですね。
メッセージを実行時に指定された複数のラベルで
フィルタリングしてそれぞれの出力先をファイルや
画面に振り分けするやつです。
んでLinkedListを使わなかった理由というのは
ですね、APIリファレンスを読み違えてなければ
indexでゲットするような場合はArrayListを
使え、と書いてあったんですね、今回はキュー
だから0から読んでいくのでArrayListの方かなと。
LinkedListはIterator使ってなぞってくような
時に使うもんだと思ってましたが、今回はIterator
作成後にがんがんListの内容が変わってしまうんで
まずいと重いますた。
Iterator s/作成後/取得後
>>100 >I/Oのバッファリングなんて
はもともと気にしてなかったす。振り分け処理が
重いんで、本処理がそれを待ちたくなかっただけ。
行: 100, 1000, 10000 ループ 列: new, add, get(0)&remove(0), itr.next()&itr.remove() LinkedList:329282 434326 3925424 ArrayList:127262 1333515 070409384 indexでアクセスする場合でもリストのサイズが1000超えると LinkedListのが全然速いという結果。Iteratorでなぞるか うんぬんは関係なかったらしいんでスマソ. 今回のキューはあくまで非同期処理時の遅延バッファなんで 100も溜まるようだとヤバイのですが、損はなさげなので LinkedListにしときますた。
LinkedList: 3 29 28 2 4 34 32 6 3 92 54 24 ArrayList: 1 27 26 2 1 33 35 15 0 70 409 384
108 :
コレクションの基本講座 :02/12/02 04:51
LinkedList:内部的に次/前のエントリオブジェクトのポインタを持つオブジェクト を次々とリンクして作るリスト。LinkedListクラス自体はそのリストの先頭へのポイ ンタを持っていて、先頭オブジェクトの前エントリには、リスト最後尾のオブジェク トがはいってる。 先頭、最後尾の頻繁な追加削除を行う、スタックやキューを実現するには最適。 リストの真中あたりをインデックスで取り出すのは糞遅い。 エントリごとにオブジェクトインスタンスを一個消費するので、ちょっとメモリ 消費量が多い。 ArrayList:長さが足りなくなったら自動拡張する機能を追加した、単なる配列。 削除や追加を行うと、今まであった参照の保存位置をずらす作業をそのたびに行 うので、追加削除を頻繁に行うのは不向き。インデックスで取り出すのコストは、 単なる配列に添字で取り出すのと殆ど変わらない。 メモリ消費量はコレクション中最低。配列+状態情報ちょっとだけ。 更新がなくてインデックスで参照することだけが多いコレクションに向いてる。 インデックスが数値以外の何かになる場合は、ハッシュテーブルかツリーを使う べし。
>>95 >delegate は良くない。
>スマートじゃない。
>goto文の悲劇を思い出す。
これはなかなか核心をついた意見のような気が
>>109 理由も書いてないのに核心も無いだろ。
ただの言いがかり。
>>95 =97=109か?
111 :
デフォルトの名無しさん :02/12/02 08:27
>>103 > メッセージを実行時に指定された複数のラベルで
> フィルタリングしてそれぞれの出力先をファイルや
> 画面に振り分けするやつです。
log4jでできるけどね。少なくともlog4jにラッパかませば
できる。
>>110 確かに理由は書いてないが、VJ++の独自拡張delegateに関する過去の議論を
踏まえていれば、それらを総括して端的にdelegateの欠点を言い表した言葉として
非情に簡潔で分かりやすい。背景を知らない初心者にも理解しやすいだろう。
たぶんに感覚的なものではあるけれど。ニュアンスはぴったり。
言いがかりにしか聞こえないのはセンスの違いかな。
ここで議論するつもりはないからこれで終わるけどね。
delegateに関する過去の議論に興味がある人は「delegate java sun microsoft」でGoogle
最近業界でVectorは遅いから業務で使うなっていうヤツが増えてますが、 気にするほど遅いものなのでしょうか? また、その解決法や、synchronizedしてないVectorと似た機能もってクラスなどを 教えていただけないでしょうか。お願いします。
log4j って糞だろ。
>>112 delegateが良いか悪いかは好き嫌いの程度の問題だろ。
gotoはほとんどの人が悪と考え使用しないのに対してC#ではdelegateを使用する。
明らかにJava厨の発言であり、ニュアンスは全然違う。
>>95 =97=109を否定してないとこを見ると自分すげーこと言ったぜモードに入ってるのかな(w
116 :
デフォルトの名無しさん :02/12/02 12:25
>>112 >踏まえていれば、それらを総括して端的にdelegateの欠点を言い表した言葉として
>非情に簡潔で分かりやすい。
さっぱりわかりませんが?
118 :
デフォルトの名無しさん :02/12/02 15:33
>>113 ArrayListがsynchronizedしないVectorだ。
>>117 で、どこが核心をついた意見なの? 核心はどこにあるの?
>>121 delegateの欠点とgoto(の欠点)が両方とも「欠点」という点で似てる。
故に核心をついた意見だ。
と言いたいんでしょ。アホだね。
争いはヤメレ
>>118 質問、便乗させてください。
Synchronizedが必要だったらやっぱりVectorつかいますよね?
いまちょうどそこら辺で悩んでたんですよ。
125 :
デフォルトの名無しさん :02/12/02 18:00
ArrayListをVectorと同等にしたいなら、 List list = Collections.synchronizedList(new ArrayList()); ただ、synchronizedListにしたからといって(=Vectorを使ったからといって)同期が とれるわけではないから、普通は list = new ArrayList(); 〜 synchronized(list) { ...listへの操作... }
>>125 なるほど。わかりました。
となると、私が実装したいのはこんな感じなのですが、
class A() extends Thread{
Vector q = new Vector();
for(;;){
synchronized(q){
x(buf.remove(0)) こんな感じの処理
}
}
public void addQueue (arg0){ ←非同期の複数のスレッドから呼ばれるメソッド
synchronized(q){
buf.add(arg0);
}
}
}
実際にはもう少し複雑になるとは思いますが・・・。
これはVectorよりもArrayListを使う方がよいでしょうか?
私の場合にはそれほどパフォーマンスに影響は出ないと思いますが、
>>113 の書き込みが気になるもので。
なんとなく通りすがりで思ったことを書いただけなんだなぁ、これが。
んで、今通りすがってみたらちょっと話題になっていてびっくりしたよ。
>>95 に書いたことは深い意味があるわけじゃないよ。
何となく思っただけ。
要するに俺は好きじゃない。
でも、諸事情で使うしか無いときってあるじゃない?
だからちょっと愚痴ってみただけ。
ごめんよ。
あ!
俺がこのスレに書き込むのは二度目ですよ。
これ以降は
>>117 でお願いします。
いや、俺は逝かないけどね。
>>126 余計なロックがかからないぶんArrayList使ったほうが速いよ。
あといらんお世話かもしんないけど
キューの途中のデータにアクセスする必要がなければLinkedListのほうが速い。
>>128 ありがとう。
早速LinkedList調べて使ってみまする。
ぱっとみた感じ、ほとんど変更いらなさそうなので。
大学でJavaを勉強し始めて2ヶ月たらずの初心者です。 大学の課題でSwingのJTableを使う必要があるのです が,表示されているテーブルの表示内容を更新する方法が 分かりません。 今やっているのはAbstractTableModelを継承した自作の テーブルモデルで配列などからデータを取り出し,JTable のテーブルに表示させるというプログラムなのですが,元 の配列などに入っているデータの数がユーザの何らかの 操作によって増えたときにテーブルの表示内容を更新した いのですが,方法が分かりません。 JTableクラスのオブジェクトのupdateメソッドを呼ぶだけで はテーブルの行数が増えたりといった変化は起きませんよね? どうしたらいいのでしょうか? 表示の更新はユーザが何かの 操作をしたときにできさえすれば十分です。 よろしくお願いします。
java半年の初心者なんだけど コード書くの面倒だから コードジェネレータ実装して パターン化してXMLに記述して 動的にソース作成してから コンパイルしてロードしたいの JSPがサーブレットクラスになるみたいに com.sun.tools.javac.Main 上記のクラス使えば良さそうだけど 誰か日本語のドキュメントかサンプル どこにあるか知らないですか? UnsupportedClassVersionErrorとか飛んでくるし ようわからん
RMIで画像データを送受信するには どのようなリモートオブジェクトを使用するべきでしょうか?
133 :
名無しさん@Emacs :02/12/02 23:05
>>130 fireTableChanged
>>131 > com.sun.tools.javac.Main
> 上記のクラス使えば良さそうだけど
普通にjavacでコンパイルするのと同じようなもんだよ
com.sun.tools.javac で、tomcatとかのソースファイル検索してみ
>>132 Serializableなオブジェクト
134 :
デフォルトの名無しさん :02/12/02 23:10
appletっておもしろいですか?
135 :
デフォルトの名無しさん :02/12/02 23:10
>>131 結局XML記述がJavaコード記述以上に面倒になるだけかモナー。
自動化って、仕事が画一なものじゃなければ単にエンジン作る
コストの無駄だモナー。
136 :
デフォルトの名無しさん :02/12/02 23:11
>>134 今更必要ないです。JavaWebStartにしましょう。
>>131 >パターン化してXMLに記述して動的にソース作成してから
>コンパイルしてロードしたいの
Googleすると幸せになれる予感。
138 :
デフォルトの名無しさん :02/12/02 23:15
RelaxNGCC
WSDLという手も。
140 :
デフォルトの名無しさん :02/12/02 23:20
>>136 なんかわからんけど、すげー、サンクス!
>>133 うまくいきました。
どうもありがとうございました。
>>136 それってieとかmozでも動くの?
何か追加でインストールしなくても
いいならappletはもう要らないか
>>142 JavaWebStart は Sun 製の JRE をインスコしなきゃ動かん。
win 限定だし、ブラウザ上で動くものでもない。
IE を使っている人が JRE をインストールしてくれるとは思えないので、
JavaWebStart が活躍する場は現状ではかなり限られる。
# 社内でのアプリ配信とか…?
Sun は普及させる気があるのかな?あんまり本気が感じられないのだが。
そんなわけで、多くの人が閲覧可能という点ではまだ applet も
捨てたものではないと思う。
ただし、よほど工夫しないと誰も面白がってくれずにウザがられるだけだし、
仕事ではまず使えないので、趣味で使う人向けだけど。
Macと、RedHatも動くYO!!
>>142 一度見てみたら、どうかの?
何層もディレクトリで階層化された状態で そのすべてのディレクトリにおけるすべてのclassファイルのみを抽出してjarファイルに圧縮したいんで すがどうすればいいですか? jarファイル化したときの構造はもとのディレクトリ構造と同じように 格納したいです。 何度も心みてみたもののできません。
Container.add(Component comp, Object constraints); これしたあとに、constraints を取り出す方法はありまつか?
そういえば、ATI のグラフィックカードで Java1.4.1 を使ってると Win2k/XP が落ちるバグ、fix したらしいね。 次のリリース (1.4.1_02) が楽しみ。
>>146 エントリ作って、jarファイルに書くだけ
java.util.zip, java.util.jarのjavadoc読め
後、何ができないのか書け
>>147 誰が取り出すの?
お答えありがとうございます >133 検索して書いてみたけど UnsupportedClassVersionErrorとか飛んできて ショボーン >135 豆みたいな物から独自実装のDaoクラスにマッピング するだけなので自動化できそうだったのよ 豆のセッターからdaoのセッターにXMLでマッピングしてるだけ ゲッターもだけど >137 幸せになれなかったのでここに書いてみたので できないので、とりあえず寝ます
>>149 誰?
誰というか、add 時に与えた constraints を、後から取り出そうと思ったけど、
Component にも Container にも LayoutManager にも、getConstraints みたいな
メソッドは見つからなかった。
>>147 つうか何故取り出す必要があるの?
>>150 例外じゃなくて、Errorなんだから、よっぽど非道い事やってんだろ。
Javaのシステムクラスパス上のクラスファイルを、VM実行時に書き替えるとか。
>>151 そのままでは取り出せない。だから取り出せるように実装する必要がある。
>>153 やっぱだめか。
LayoutManager の実装クラス作って対処します。
サンクス。
155 :
デフォルトの名無しさん :02/12/03 09:46
>>154 Componentをキー、Constraintsを値にするMap一個作っとけばいいだけやん。
156 :
デフォルトの名無しさん :02/12/03 09:53
>>150 マメ-DAO間でメンバごとにいちいち入れ替えてるのか?アホだ・・・
setterとgetterの名前工夫して、リフレクションパッケージ使えば
そんな外側での苦労ナシに自動的にいれ替えられるロジックくめる
と思うけど。
そもそも入れ替える必要なんかないと思うけどねえ。
DAOがメンバ変数にマメをもつようにして、DAOにマメのsetter置いて
DAOの処理がマメの変数をいじるようにすれば、簡単じゃ。
大それたシステム組む前に、オブジェクト参照をちゃんと使いこな
せるようになれや。
>>156 通ぶって変な用語多用したばっかりに可読性が損なわれている。
あんたのプログラム、保守する奴かわいそうだわ。
ベジェ曲線上の座標を得ることは可能でしょうか? ベジェ曲線を描き、その上をなぞる形で画像を動かしたいのですが。
158ですが、自分で計算式を作り、ベジェ曲線を描けば可能でしょうか?
数学しんどい(泣
あ、よく読んだら結構簡単、式は全部高校数学レベル。理論はよくわからないけど(w
できたー! 3点ベジェも4点ベジェも座標を取得することに成功! 誰かほめてください。
165 :
デフォルトの名無しさん :02/12/03 14:39
文字列がアルファベットかどうかって どうやるんでしたっけ?
それでは覚悟して晒すことにします。 double t;int tc; int[] x={0,160,320,640}; int[] y={240,0,0,240}; int[] b_x=new int [40]; int[] b_y=new int [40]; for (t=0.0,tc=0; t<1.0; t=t+0.025,tc=tc+1) { b_x[tc]=(int)(x[0]*(1-t)*(1-t)*(1-t) + 3*x[1]*t*(1-t)*(1-t) + 3*x[2]*t*t*(1-t) + x[3]*t*t*t); b_y[tc]=(int)(y[0]*(1-t)*(1-t)*(1-t) + 3*y[1]*t*(1-t)*(1-t) + 3*y[2]*t*t*(1-t) + y[3]*t*t*t); } g.drawPolyline(b_x,b_y,40); ググってたらC言語だけど、ベジェ曲線を計算して 描いてるソースを見つけられたので楽勝でした。
158はイイヤツ。
168 :
デフォルトの名無しさん :02/12/03 15:12
native2ascii 相当のメソッドの実装をしたいのですが、 方法がわかりません。助けてください。 "システム" -> "\u30b7\u30b9\u30c6\u30e0"
169 :
デフォルトの名無しさん :02/12/03 15:42
HashtableってListにおけるVectorみたいなもんですか?
>>169 そんな感じ。
valueにnull放り込めないのがイライラする。
ありがとうございます。 ってことは、VectorよりArrayListの方が好まれているように、 HashtableよりHashMapを使った方がいいのれすか?
>>171 「HashMap クラスは Hashtable と同じと見なしてもかまいませんが、
HashMap の方は同期がとられず、null の場合もあります。」
上の通り、同期をとる必要がないならHashMap。
関係ないけど、java.util.HashSetの中を覗くとHashMap使って手抜き
している。
なるほど。よくわかりました。 ありがとうございます。
Appletを継承したクラス内の任意のメソッドで Image img = getImage(getDocumentBase(), "image.jpg"); とした場合 imgはImageクラスのインスタンスなんでしょうか? しかしImageクラスはabstractだし newで作成したオブジェクトがインスタンスと呼べるのでしょうか? だれか教えてください。
>>175 >Image img = getImage(getDocumentBase(), "image.jpg");
の場合 img は「Image のインスタンス」を指す、と言える。
実際にどのImageの実装が使われるかは Applet#getImage() の実装次第。
>>176 少なくともImageかそれを親に持つ派生クラスか。ってとこか。
FileReaderクラスでファイルを開いているとき、 別のプロセスから、そのファイルを開いて読み書きすることは 可能なのでしょうか?教えて下さい
>>178 FileReader で開いてるときって別プロセスから書けたっけか?
>RMIで画像データを送受信するには >どのようなリモートオブジェクトを使用するべきでしょうか? という質問をした者です。実装するリモートオブジェクトは FileOutputStream 及び FileInputStream を使って作成し、 シリアル化すればいいのでしょうか?
184 :
デフォルトの名無しさん :02/12/03 22:00
>>182 パラメータにSerializableなオブジェクト使えという話にみえるが。
画像ファイルをロードして作ったバイトアレイを返せばいいだけかと。
185 :
名無しさん@Emacs :02/12/03 22:57
>>182 何でFileOutputStreamなんだよ。って言うか、RMIを
本当に知ってるのか?
186 :
デフォルトの名無しさん :02/12/03 23:15
インターフェースをどう利用したら言いかがわかりません。 例えばTaxiクラスとBusクラスをつくる場合、 public interface DrivingImpl { pubilc abstract void accelerator(); public abstract void brake(); public abstract void clutch(); } のようなインターフェースを作って確実に実装するように両クラスに インプリメントしたりすればいいんですか? それならインターフェースをつかわずに抽象クラスに定義してもいいような 気がしますがどのように使っていけばいいのか頭が混乱してわかりません。 手元の本には確実にプログラマがメソッドを定義するような設計・仕様書 的な意味合いが強いと書いてありますが。
>>186 >それならインターフェースをつかわずに抽象クラスに定義してもいいような
その通り。
でも、ファイルを保存できるSerializableとかスレッドにできるRunableとかを考えてみる。
エロ本クラスとファイルクラスと言う全然違う用途のクラスが同じ親を継承しているというのは非常に奇妙だとは思いませんか?
そして、そういうオプション的な機能のためにJavaの1本しかない継承関係を消費するのは非常にもったいない。
188 :
デフォルトの名無しさん :02/12/03 23:59
>>186 interface は、まさに仕様書と言っていい。
提供するサービスを規定するものだ。
よくある構成はこんな感じ。
・interface でメソッドを規定
・interface を実装する抽象クラスで共通な処理を記述
・抽象クラスを継承するサブクラスで個別の処理を記述
・使う側は interface 型の変数を宣言してインスタンスを代入する
interface の使い方に思いをはせるのは、工夫の第一歩だ。がんばれ。
でも、Implで終わる名前は interface を実装するクラスに付けるものだから気をつけれ。
>>150 HighStandardプロジェクトって所に、DynamicCompilerってクラスがあったんだが、
今見たら無くなってるな。
なんとか動いたっす
>>152 Mainをnewしたら飛んできました
>>156 おまえアホ?豆、及び、抽象化クラス群の実装を自動生成しようとしてるんだぞ
classどころかソースさえないのに、どうやってリフレクションするんだ?
実装の仕様が来る毎に豆作ってテストするの面倒なんだよ
こんな感じでできるみたい
import java.io.*;
// javac -classpath ./;D:\j2sdk1.4.1\lib\tools.jar jc.java // java -cp ./;D:\j2sdk1.4.1\lib\tools.jar jc
interface base { public void print(); }
public class jc {
static final String javaclass = "public class baseImpl implements base { public void print() { System.out.println(\"ヽ(゚∀゚ )丿\"); } }";
public static void main(String[] arg) {
try {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream("./baseImpl.java") ));
bw.write(javaclass , 0 , javaclass.length());
Class cls = Class.forName("com.sun.tools.javac.Main");
com.sun.tools.javac.Main javac = (com.sun.tools.javac.Main)cls.newInstance();
String[] args = new String[] {"-g","-encoding", "Shift_JIS","-classpath", "./","-d", "./","./baseImpl.java"};
javac.compile( args );
cls = Class.forName("baseImpl");
base bs = (base)cls.newInstance();
bs.print();
} catch( Exception e ) { e.printStackTrace(); }
}
}
191 :
デフォルトの名無しさん :02/12/04 00:41
複数のプロセスが同一データ構造にアクセスしたときに、お互い干渉を受けないように 同一プログラムを実行させられるようにできる制御を組みたいんだけど、 どうやって書いていけばいいかな? また、そんなことについて書いてある参考書やWebページがあったら教えて欲しい。
Javaで? OS依存のコードを書くことになると思うけど...
単に排他制御が出来ればいいというだけなら、スレッドを使ったプログラミングを すればいいのかな?
>>184 ありがとうございます。早速試してみます
>>185 訳のわからないことを書いてすいませんTT
RMIについては最近勉強を始めたところなので・・・
197 :
デフォルトの名無しさん :02/12/04 02:01
誰か居ますか? 質問してもいいですか?
198 :
デフォルトの名無しさん :02/12/04 02:03
いいよ。
200 :
デフォルトの名無しさん :02/12/04 02:04
やっぱだめ
俺、頭悪いから、 いつもスレみてもチンプンカンプン。
202 :
デフォルトの名無しさん :02/12/04 02:07
>>197 お兄さんの胸に飛び込んできなさい!
はやくぅ〜。
203 :
デフォルトの名無しさん :02/12/04 02:18
これより
>>197 をよってたかって教え込むスレになりました。
超XPだな
204 :
デフォルトの名無しさん :02/12/04 02:22
>>190 ClassGen cg = new ClassGen(
"HelloWorld", "java.lang.Object", "<generated>"
, Constants.ACC_PUBLIC | Constants.ACC_SUPER, null
);
ConstantPoolGen cp = cg.getConstantPool();
InstructionList il = new InstructionList();
MethodGen mg = new MethodGen(
Constants.ACC_STATIC | Constants.ACC_PUBLIC, Type.VOID, new Type[] {new ArrayType(Type.STRING, 1)}
, new String[] { "argv" }, "main", "HelloWorld", il, cp
);
InstructionFactory factory = new InstructionFactory(cg);
il.append(factory.createFieldAccess(
"java.lang.System", "out", new ObjectType("java.io.PrintStream"), Constants.GETSTATIC
));
il.append(new PUSH(cp, "Hello, World"));
il.append(factory.createInvoke(
"java.io.PrintStream", "println", Type.VOID, new Type[] { Type.STRING }, Constants.INVOKEVIRTUAL
));
il.append(InstructionConstants.RETURN);
mg.setMaxStack();
cg.addMethod(mg.getMethod());
il.dispose();
cg.addEmptyConstructor(Constants.ACC_PUBLIC);
>>190 cg からバイナリを生成し、クラスとしてロードし、main メソッドを呼び出す。
ByteArrayOutputStream out = new ByteArrayOutputStream();
try{
cg.getJavaClass().dump(out);
Class clazz = new ClassLoader(){
public Class load(byte[] data){
return defineClass(null, data, 0, data.length);
}
}.load(out.toByteArray());
new JavaWrapper(clazz.getClassLoader()).runMain(clazz.getName(), new String[0]);
} catch(Exception anException){
anException.printStackTrace();
}
>>195 お答えありがとうございます
com.sun.tools.javac.Main
を使わずに自分で.class作るとの?
難しすぎます・・・
JVMの仕様など知らないし
でも面白そうだしJVMの勉強になりそうなので
ちょこっと調査してまします
209 :
デフォルトの名無しさん :02/12/04 09:38
データベースから取ってきたデータを詰め込むとき、 ArrayList al1 = new ArrayList(); ArrayList al2 = new ArrayList(); while(rs.next()){ al1.add(rs.getString(0)); al2.add(rs.getString(1)); } String[] data = new String[]{al1,al2}; ....... return data; みたいな感じでやっているのですが、 変数の宣言が多くてなんか効率が悪いような気がします。 例えば10行10列のデータだと、 ArrayListを10個も作らないといけなくなってしまうし。 皆さんはどんな風にしてますか。 どういう風に書けば効率がいいのでしょうか。
210 :
初心者その1 :02/12/04 09:47
HPの閲覧に関してなのですが、 PCから見てる人と携帯から見てる人で表示するページを 切り替えるにはどうすれば良いのですか? JavaScriptで可能でしょうか?
>>209 なぜ、ビーンを使わないの?
というか、1レコード1オブジェクトにするとすっきりすると思うよ。
ArrayList records = new ArrayList();
while(rs.next()){
XXXRecord rec = new XXXRecord(rs.getString(0),rs.getString(1));
records.add(rec);
}
return records;
212 :
デフォルトの名無しさん :02/12/04 10:02
>>209 >String[] data = new String[]{al1,al2};
これってコンパイル通るの?
というか、普通「行」方向にArrayList使いません?
列数はともかく、行数を知る術がない(知りません)ので、最低
一つはArrayList()が必要だと思います(たぶん)。
自分は下のような方法を良く取ります。
int columSize = rs.getMetadata().getColumCount();
ArrayList ary = new ArrayList();
while( rs.next() ) {
String[] row = new String[columSize];
for(int i = 0; i < columSize; i++) {
row[i] = rs.getString(i);
}
ary.add(row);
}
String[][] data = (String[][])ary.toArray(new String[0][]);
return data;
213 :
デフォルトの名無しさん :02/12/04 10:41
>>210 JavaScriptでも可能だが、
ここはJavaだぜ!混同してねぇか?
サーバーならHTTPのUserAgent見て判断なされよ。
てか、それだったら言語関係ないだろ。
質問するスレ間違ってねぇか?
ネットワークプログラミング相談室 Port4で聞いてこいや!
どうもです。 今までずっと独学でやってきているので、 変なことやってても矯正してくれる人がいないんですな。 1レコード1オブジェクトですか。勉強になりました。
>>210 携帯でJavaScriptは動かんだろ・・・
213と同じだが
String userAgent = request.getHeader("User-Agent");
で。
画像を読み込むときに、作成したクラスの下にあるフォルダから 読み込むにはどうすればいいんですか?¥を使ってみたらエラーが出ました。
219 :
デフォルトの名無しさん :02/12/04 13:36
String str = "てすと文字列"; を、実行環境によらず Shift_JIS(あるいは EUC-JP) のファイルで出力するには どうすればよいのでしょうか?
>>219 java.io.OutputStreamWriter ですな
221 :
デフォルトの名無しさん :02/12/04 13:53
Hashtableのリファレンスを見ると、put(Object key, Object value); とか書いてありますが、 格納するモノの型が不定なので、取り出すときに困る・・・そこで型を明示したものを 一緒に格納しようと考えています。 (つまり、intを入れるときは"int"という文字列を一緒に入れておき、出すときに判別する) こういうのってアリですか?それとも豪快に勘違いしてます?(´・ω・`) アリだとしたら、引数はObjectになってますが、複数の違う型を入れることってできるんでしょうか?
222 :
デフォルトの名無しさん :02/12/04 13:56
staticなクラスHogeがgetHoge()というメソッドを持っている場合、 直接、 Hoge.getHoge(); と書くのと、インスタンスを作って Hoge hoge = new Hoge(); hoge.getHoge(); とするのは、何が違うのですか? どのように使い分けられているのでしょうか。
>>184 仰るとおりバイトアレイを返すだけでできました。
ありがとうございました
>>221 >intを入れるときは"int"という文字列を一緒に入れておき、出すときに判別する
キーに含めるってこと?ならいいんじゃない。
>引数はObjectになってますが、複数の違う型を入れることってできるんでしょうか?
int型は入らんと思うが。
参照型のデータならなんでも入ると思うけど。
hash.put("Integer",new Integer(5));
hash.put("String","あああ");
ってことでしょ?
>>220 う〜ん。UNIX 環境だと「@」が文字化けしてしまうのはしょうがないところなのかな。
パラメータは色々試したのですが、何かいい手はないでしょうか?
String str = "てすと文字列\uff5e\u2460";
File file = new File(filename);
FileOutputStream fos = new FileOutputStream(file);
ByteArrayInputStream ins = new ByteArrayInputStream(str.getBytes());
InputStreamReader in = new InputStreamReader(ins, "JISAutoDetect");
OutputStreamWriter out = new OutputStreamWriter(fos, "MS932");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
out.close();
>>224 Keyに含めるんじゃないです。ユーザが入れたデータをKeyとValueに
関連づけて処理するんですが、Keyの名前(これは文字列)とValueに入るデータの
型が不定なので、Valueを入手してから中身の型を判別できないかなと思ったんです。
put時はString→Objectで入れますが、逆はどうしようってことですね。
227 :
デフォルトの名無しさん :02/12/04 15:08
文字列処理についての質問です StringからindexOfとsubstringを用いてある部分を取り除きたいのですが、 その部分に空白が含まれていた場合その空白を取り除きたいです。 StringTokenizerを使ってトークンに分解し、連結するしか方法が浮かぶのですが、 他に良い方法はないのでしょうか
連結するしか方法が浮かぶのですが × 連結する方法が浮かぶのですが ○ すいません
>>227 s = s.replaceAll("\\s+", "");
231 :
デフォルトの名無しさん :02/12/04 16:01
232 :
デフォルトの名無しさん :02/12/04 16:09
oro(Jakarta) もありかな。
>>229 うぁっ、そんなのがあったとは。 Σ(・ω・ノ)ノ
サンクス、試してみます。
>>226 要件ってどんな?なんかえらいマズーな
設計のにほひ..
>>227 replaceのcharで空白飛ばせばいいんでないの
236 :
座標などについて :02/12/04 16:42
今チャットを作ってるんですが文字の転送はできたんです。 final BufferedWriter out3 = new BufferedWriter(new OutputStreamWriter(out2.getOutputStream())); try { out3.write(f3.getText()+"\n"); out3.flush(); こんな感じで。 それで次に、自分の描いた絵を相手に送れるように作りたいのですが、座標を送ったら いいと思うんですけど座標とかを送るメソッドとかは何を使ったらいいんでしょうか?
>>230 ,231,235
ありがとうございます。
replaceAll を利用しました。
1.4使ってるので使えました。
ついでにreplaceも使ってみます。
238 :
デフォルトの名無しさん :02/12/04 17:49
すみません。既出だと思いますが教えて下さい。 Win98+JBuilder5+J2SE1.4.1で作成したクラス(画面)を linux[Redhat7.3] + J2SE1.4.1で実行してのですが 文字化けが発生しました。 いくつかのWEBサイトで、渡辺フォント?を入れろ(設定しろ)と書いてあったのですが なぜこのフォントを入れないと日本語が表示出来ないのでしょうか? またこのフォントを入れなくても表示できる方法はあるのでしょうか?
>>238 論理フォント名使っている?
DialogとかMonospacedとか。
>239 論理フォント名・・・? Linux(UNIX)も今回始めて触った程度なので スミマセン、何の事を言われているか分かりません。 Linuxは別人がインストールしたのでどう言う設定になっているか分かりませんが、 多分、手順に沿って標準インストールだけしてあると思います。 先に書き忘れましたが、WEBサイト参考にして渡辺フォント?を設定したら、 確かに日本語表示出来るようになりました。 けど、なぜそれでOKなのか知りたかっただけです。
>>236 どんな絵?
もしかして、ベクタグラフィック?
読んでるとそんな気がしたものだから。
>>236 何か仕様に則って作っているの?
もし、そうじゃなくて独自のチャットシステムを作っているなら、
作り急がずに、プロトコルの設計からはじめた方がいいよ。
たとえば、図形の座標を送って描画させるにしても、
別な通信路を用意するのか、同じ通信路でやるのか、
同じ通信路(ここではBufferedWriter)を使う場合は、
通常の会話と図形情報を区別する必要があるよね。
例えば、先頭の文字が'#'だったら、会話ではなく
図形コマンドとする、などの決まりを作ることを、
プロトコルの設計というのだけど、このあたりを
うまく考えておかないと、機能を増やしていった時に
苦しくなるよ。
243 :
デフォルトの名無しさん :02/12/04 21:28
int型とdouble型を組み合わせて計算をする場合に 自動的にint型がdouble型に変換され計算されますが。 コレには型の優先順位みたいなものがあるのですか??
244 :
デフォルトの名無しさん :02/12/04 21:29
double型って何て読むの??
245 :
デフォルトの名無しさん :02/12/04 21:34
247 :
デフォルトの名無しさん :02/12/04 21:36
Javaで作ったJavaアプリケーションってどのような形で配布するのですか? たとえばVBならインストールプログラムを作成して、それを配布すれば EXEとランタイムがインストールされてVBが入ってなくても実行できますよね。 Javaの場合はどうするのかなぁと思いまして。 誰か教えてください。
249 :
デフォルトの名無しさん :02/12/04 21:41
>>247 jar使ってマニフェストファイルもまとめて圧縮せよ。
ついでに署名もいれるとよし。
>>249 そんなんで難しいなんて甘えすぎ、と書かれても怒るな
そこらへんの簡単な本を読めばよし
検索しろ
252 :
デフォルトの名無しさん :02/12/04 21:46
>>251 いま入門書を片手にレスしているのですが
「自動的にint型がdouble型に変換され計算されます。」
としか書かれてないのです(´・ω・`)
253 :
デフォルトの名無しさん :02/12/04 21:47
JAVAだけじゃ転職できませんか?
>>252 intのみでdoubleに変換したくなければ
int i = 10;
double d = 20.2d;
int a = i * (int)d;
使用するクラス郡をjarやzipに圧縮することは分かりました。 でも実行環境にJVMがない場合JREをインストールしなくちゃいけないんですよね? 結構面倒?ですね。配布ウィザードなんてあったっけ?
>>254 >int a = i * (int)d;
それだったら
int d =(int)20.2;
で良いような気もする。
257 :
デフォルトの名無しさん :02/12/04 21:52
>>254 キャストっていうヤシですね。
そこを学んでいる時に自動的に変換される
ってあるケドどの型に変換されるとかの
法則はあるのかって考えたのですよ。
258 :
デフォルトの名無しさん :02/12/04 21:54
>>254 「 20.2d」のdはなぜついてるのですか??
>>255 Appletならたいていのブラウザは自動downloadで勝手にインストールをやってくれる。
WinならJVMがデフォルトで入っていることがある。
XPにも入っていたかどうかは忘れた。
だがそのJVMはM$独自仕様のMVM(Microsoft VM)でセキュリティ弱し。
>>257 恒等変換(同じ型どうしの変換)と
拡大変換(int->longみたいに大きい型への変換)は キャスト不要。
>>259 MVM ってのは初耳。 普通 MSJVM って書くような。
>>258 doubleならd付けた方がfloatと区別しやすいから、というのが理由だと思った。つけなくてもいい。
C/C++にもにたようなものがある。
263 :
デフォルトの名無しさん :02/12/04 22:00
>>260 メモリが大きい方に変換されるってことなんですか?
265 :
デフォルトの名無しさん :02/12/04 22:02
>>262 20.2dとdが付いていてもコンパイラは20.2と読んで
くれるのですか?
266 :
デフォルトの名無しさん :02/12/04 22:02
tst
267 :
デフォルトの名無しさん :02/12/04 22:04
>>264 え〜型は大きい方(ビット数?)ってことです(*゚ー゚)
>>263 32bitsと64bitsの違いだろ。本に書いてあるはず。
ちゃんと読みましょう。
>>265 それくらい自分でコンパイルして確かめてくれ。
doubleならdをつけるくせ付けた方が無難。
dがないとfloatとみなされると思った。
>>267 だったら却下。
int -> float, long -> double, は同じビット数でも拡大変換。
long -> float に至っては ビット数減ってるのに拡大変換。
プリミティブ型の拡大変換は
>byte から short,int,long,float,又は double への変換。
>short から int,long,float,又は double への変換。
>char から int,long,float,又は double への変換。
>int から long,float,又は double への変換。
>long から float 又は double への変換。
>float から double への変換。
って
http://www.y-adagio.com/public/standards/tr_javalang/5.doc.htm#25222 に書いてあるだろが。ちゃんと読めよ…
>>270 あ、逆だったね。でもおれはつねにdとかfつける癖つけてるんで全然きにしてませんー。
272 :
デフォルトの名無しさん :02/12/04 22:45
>>271 確信の無い事(実はウソ)を教えたって事に関しては
気にしたほうが良いと思われ…
274 :
デフォルトの名無しさん :02/12/04 23:40
ゾーン10進(符号付)の値を文字型に変換したいんですが、どうすればよいですか? 例えばマイナス123ならば、−123と出力。プラス456ならば、456と出力させたいのです。
275 :
デフォルトの名無しさん :02/12/04 23:44
String#valueOf()
276 :
デフォルトの名無しさん :02/12/04 23:48
275さん、ありがとうございます。 もう少し詳しく書くと、 オラクルのvarchar2で定義してある列:金額に、ゾーン10進(符号付)の値が入っています。 これを数値チェックしたいのですが、どうすれば良いですか? また、−123とか789のように文字型で出力させたいのです。(JAVA) どなたか、お知恵を!m(__)m
>>272 M$も格好悪い。というかどっちもどっちだ。
スコットマクネリとビルゲイツは仲が悪い。Javaというすばらしい技術を持ちながら、
何を考えているのか、毒舌好きのスコットは短気でM$に対する強烈な憎しみばかりいだいている。
それに比べLinuxのリーナストーバルズは平和って気で攻撃的でなく、憎しみも無い。彼は。ただOSを作ることを楽しんでいるという。
>>276 そのあたりは苦手(というか控えめにしたい)な分野なので、知恵を貸せませんが、ゾーン10進なんて(2進な)難しいもの使わないでStringや数値型そのままでINSERTしておいたほうおが楽でない?
速度とディスク容量節約重視のためそれは許されてない?
つかもうSunはJavaから手を引いたほうがいいと思う
>>276 Stringに基数変換できるメソッドとか使えない?
Stringをそれで変換してビット演算子でどうにかならん?
ゾーン10進の値というのは0と1だけの値で入っているんかい?
それとも10進、16進?
そこら辺はわしは馬鹿なのでゾーンのこともう忘れてしもた。2進数8文字で表現するやつか?
>>278 それはすでにM$がやってるだろ。
というより、その理由は?
281 :
デフォルトの名無しさん :02/12/05 01:21
>>278 ところで、推測かもしれないが、投稿しまくっているあんたも暇だな。人の事いえないけど。もしかして、他のスレッドでJavaの質問を繰り返していたか?
まあIBMがひきとった方がJavaのためにはよさそうだがな
>>282 国連がISO標準として引き取るのが理想だな。
ISOに提出しようとしたが、ヨーロッパなど一部の国はISO標準化を認めたが、アメリカが徹底的に反発したらしい。
それでJavaのISO標準化は駄目になったとさ。背後にM$から賄賂で流れていなかったことを祈る。
その後ECMAに提出しようとしたが、M$が邪魔をしてきた。
M$ が Visual J++ を作り出したたため、 Sun はECMAへの提出を取りやめた。理由はJavaの進化が途絶えるからだそうだ。
VJ++によってプラットフォーム非依存性が約束されなくなることを恐れたのだろう。
M$はなんとかしてJavaを自分のものにしたかった。が、VJ++で裁判にかけられものにできなかった。
そこで仕方が無くC#を作った。
>>276 ゾーン10進って扱ったことがないけど、だいたい以下のような感じかな。
たぶん、ResultSetからgetBytes()でバイト列を取り出せると思うから、
それを渡してみて。
public class ZonedBCD {
public static final int ZONE = 0xF0;
public static final int PLUS = 0xC0;
public static final int MINUS = 0xD0;
public static final int BCD = 0x0F;
private byte[] bcd;
public ZonedBCD(byte[] bytes) {
this.bcd = bytes;
}
public String toString() {
StringBuffer buf = new StringBuffer();
int len = bcd.length;
int sign = ZONE & bcd[len - 1];
if (sign == MINUS) buf.append("-");
for (int i = 0; i < bcd.length; i++) buf.append(BCD & bcd[i]);
return buf.toString();
}
}
クラス構造って何ですか?
>>285 package内のクラスの集まりじゃねえの? クラス図とか?
一口にクラス構造といってもいろいろありそうだが。
http://e-words.jp/ これ使っていろいろ調べろ
質問するならもっと具体的な情報を提供しような。
いくら初心者大歓迎といってもこれはひどすぎる。
メーリングリストでこんな質問の仕方したら教えてクンとして非難されるぞ。
おそらく本を読みながら質問したんだろうけど、本を隅から隅まで読んでもわからなかった質問するのが理想だ。
2chだからどうでもいいだろ、2chだったらほうっておけ、といわれればそれまでだが。
287 :
238,240 :02/12/05 09:50
なぜ渡辺フォント入れないと日本語表示出来ないのか、誰か教えてくれませんか?
>>287 さぁ、font.properties でも調べてみれば?
289 :
デフォルトの名無しさん :02/12/05 10:49
サーバにアップロードしたファイルのパーミッションを変更したいのですが、 どうすれば良いのでしょうか?
290 :
デフォルトの名無しさん :02/12/05 12:07
リフレクションいついて質問です。 private Stringのフィールドに値を入れて、 geterで取り出すとnullになってしまいます。 参照が違ってしまっているからなのかななどどかんがえてみましたが、 頭がこんがらがって分かりません。 可能な方法ご存知でしょうか?
291 :
デフォルトの名無しさん :02/12/05 12:09
public final class AccessSupplier { public static Object getField(Object obj.String fieldName) { try { Field field = obj.class().getDeclaredField(fieldName) { field.setAccessible(true); return field.get(obj); } catch(Exception e) { } } } public class Data { private String a = null; public String getA() { return a; } } public class Main { public void execute() { try { Data data = new Data(); //フィールドを取得 String a = (String)AccessSupplier.getField(data,"a"); //フィールドに値を設定 a = "a"; //↓nullが帰ってくる System.out.println(data.getA()); } catch(Exception e) { } } }
292 :
デフォルトの名無しさん :02/12/05 12:12
あと引数がないメソッドの呼び出しのばあい、 parametaTypesには何をいれて置けばよいのでしょうか? ↓java.lang.Class public Method getDeclaredMethod(String name, Class[] parameterTypes) throws NoSuchMethodException, SecurityException
>>291 data.a に値をセットしてないから
null が返るのは当然といえば当然なわけだが…
>>292 null もしくは new Class[0] で良かったような…
>>291 > //フィールドに値を設定
> a = "a";
…
ちょっと気になったんだけど、 メソッドの引数を加工するのは良くないよね? 例えば、 public void a(byte[] data){ data[0] = 0x80; ...処理 } こんな感じなんだけど やっぱりいったんテンポラリかなんかつくって、そっちを操作するのが 基本だよねぇ・・・・。 Javaの作法が今ひとつわからないもんで、教えてください。
296 :
デフォルトの名無しさん :02/12/05 13:19
293 292が自己解決しました。 Class[] parameterTypes =null; として渡せばOKでした
297 :
デフォルトの名無しさん :02/12/05 14:07
>>293 なんとなく分かってきたかも。
セッターを使わないとだめなんでしょうかね
298 :
デフォルトの名無しさん :02/12/05 14:15
SAXParseException : the root element is required in well-formed document っていう例外がでるんですが、これってXML文書本体に誤りがあるってことですよね? でもXML文書本体もスキーマも正しいはずなんですが、どうしてなんでしょうか? 誰かおねがい!!
300 :
デフォルトの名無しさん :02/12/05 15:03
>>298 いや、ねんのためにブラウザから閲覧したがエラーでなかったし、
DTDとの整合性を調べるプログラムも書いてチェックしたが問題なかったのよ。
初心者だからサッパリわからんくて困ってます
>>300 肝心のXMLも載せないで誰がどうやって答えんの?
302 :
デフォルトの名無しさん :02/12/05 17:02
yahooのチャットをjavaアプレットで使いたいのですが java.lang,NoClassDefFoundError=com/yahoo/yacs/lYAEvents というメッセージが出て使えません。以前は問題なかったのですが・・ プログラムのことは分かりませんがエラーにjavaとあったのでここに きてみました。お願いします。
JVMのヒープ領域がどれくらい空いているかを、アプリから知る方法ってないですかね? それから、マニフェストファイルでjava -Xmxみたいな指定はできます?ヒープサイズを指定したいのですが。 よろしく〜。
>>303 >JVMのヒープ領域がどれくらい空いているかを
java.lang.Runtime の freeMemory とか totalMemory とか maxMemory とか。
>マニフェストファイル
マニュアルちゃんと読め。
>よろしく〜。
すげームカツク
>>303 です。
>>java.lang.Runtime の freeMemory とか totalMemory とか maxMemory とか。
なるほど、調べてみます。
>>すげームカツク
2ちゃん的反応ありがとう(^^;
306 :
デフォルトの名無しさん :02/12/05 19:05
>>306 「オブジェクト変数」って何ですか? 初めて聞きました。
フィールドを意図して言ってるなら、Objectクラス自体には
フィールドは存在してませんよ。
配列オブジェクトのクラスにはフィールドが存在しているということでしょうか? どこで見られるのですか?
たとえば、TCPでリクエストを送信するクラスがあるとします。 このクラスの中でソケットを作るとき、呼び出されるたびに Socket sock = new Socket していたら、 実体は呼び出された回数だけ別モノが生成されてしまうんですか? 初回呼び出されたらnewしてソケットを作り、次回以降呼び出されたらさっき作ったのを再利用 させたいんですが、このsocketは自分が既に作ったか?というのは調べられるんでしょうか?
>>303 です。
JVMのヒープサイズはわかったのですが、実行された環境のメモリの大きさを知ることはできないですか?つまり、JVMの最大ヒープサイズではなくて、OSが管理しているメモリの利用可能な最大数というか。
メモリの限界までヒープを取りたいのですが、何か方法があったら教えてくださいm(_ _)m
313 :
デフォルトの名無しさん :02/12/05 20:02
swingでの画像表示方法を教えてください public void paint(Graphics g)とかじゃダメですよね?
315 :
デフォルトの名無しさん :02/12/05 22:49
yymmddの日付チェック方法教えれ。 いや教えてくださいませ。
317 :
デフォルトの名無しさん :02/12/05 23:04
入力されたyymmddが妥当かチェックするのでございます。
319 :
名無しさん@Emacs :02/12/05 23:27
>>312 > JVMの最大ヒープサイズではなくて、OSが管理しているメモリの利用可能な最大数というか
無理。プログラム中で知ったところで、-XmxはJVM起動中には変更できない。
> メモリの限界までヒープを取りたいのですが、何か方法があったら教えてくださいm(_ _)m
スタックサイズ×スレッド数と、PermSizeと、ヒープサイズ足せばいいだろ。
>>313 Javaインストールフォルダ\demo\jfc\SimpleExample\src\SimpleExample.java
を嫁
失礼。画像だったか。 じゃぁ、SwingSet2でも見てみ。 java -jar JAVA_HOME/demo/jfc/SwingSet2/SwingSet2.jar
322 :
デフォルトの名無しさん :02/12/06 00:20
>>309 ローカル変数じゃなくてインスタンス変数とかクラス変数にSocketの参照格納しとけ。
次回以降nullじゃなければ作成済みだ。
324 :
デフォルトの名無しさん :02/12/06 00:47
>>323 いつ切れるか分からなく、1度切れたら再利用不可能なSocketインスタンスに
シングル豚を適用するバカがいたら見てみたい。
最近どこもかしこもシングル豚なプログラムを散見するが、オマエラ本当にその
インスタンスはJVM起動中にゼッタイに一個しか必要ないのか?と小一時間問い
詰めたくなるようなプログラムも多い。ちゃんと考えろ、生兵法のアホどもが!
>>324 俺が怒られたってことはじゃあ
>>322 はシングルトンじゃないの?
まぁ。ソケットの使い回しって例えコネクションが無くてもあまり気持ちの良いもんではないね。
と言うか、ソケットの再利用ってできたっけ。。。
ファイルのサイズの取り方おせーて。お願いします。
いわゆるふつうのunixだとできないねえ
シングルトンをグローバル変数の代わりに使うのがナウい
誰でもどこからでも参照可能で、参照の管理が必要なくて便利だからとい うアホな理由で安易にシングル豚パターンを使うのはやめれ。 グローバル変数マンセーバカCOBOLER OR BASICERと発想が同レベルだぞ。 特にサーバサイドでの開発はマルチスレッドアクセスが前提なんだから、 そんなもんが散乱してたらどうなるカワカランってのに・・・ できるだけインスタンス参照のライフタイムとアクセス可能なスコープ 範囲はコントロールするようにプログラム組んでくれよ・・・まじで、頼む から・・・バタンキュー
>>330 この場合、いろんなメソッドに通信処理が分散されてどれがどの順に呼ばれるかが曖昧になるのが怖いですね。
しまった!! もしかして、File.length()か。ガボーン。
>>325 すまぬ、あんたに怒ったわけじゃない。日頃の苦労でシングルトン
という単語に過剰反応するようになってしまいました。マ板イッテキマス。
334 :
デフォルトの名無しさん :02/12/06 01:00
Boolean oBoolean = new Boolean(false); boolean b = oBoolean.booleanValue(); ↓ boolean b = new Boolean(false).booleanValue(); ↑と同じよーな感じで Thread thread = new Thread() { public void run() { ... } }; thread.start(); ↑を↓(イメージ)のように書けないでしょうか? new Thread() { public void run() { ... } }.start();
できる。
ぐはぁっ,で,出来ました m(_ _)m
JSPなんですけど、Sessionに入れてあるクラスのメソッドに引数を渡して リターンを得るにはどうすればよいのですか? スクリプトレットじゃなくてTaglibでやりたいのですが、 参考資料とかだとプロパティの値を取ってくる例は良くあるのに そういう例が無くて困ってます。
I'm in New York near the Yoshinoya.
Please give order for negidaku and gyoku.
341 :
デフォルトの名無しさん :02/12/06 01:50
>>283 ん?
MSにJavaを遣わせまいと「意地悪」したら、
本当にJava切られちゃって、それは困ると
慌てて法廷に泣きついてる最中だろ?>Sun
342 :
デフォルトの名無しさん :02/12/06 03:51
ボタンは表示されるのですがイメージが表示されません。なぜでしょう? class ClientFrame extends JFrame { public ClientFrame() { JPanel jp = (JPanel)getContentPane(); Container cp = getContentPane(); cp.setLayout(null); cp.setBackground(Color.white); super.setTitle("The Study.Server"); super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JButton transmitbutton = new JButton("送信"); transmitbutton.setBounds(30, 30,100, 20); cp.add(transmitbutton); ImageIcon icon = new ImageIcon("C:/load.jpg"); JLabel label = new JLabel(icon,SwingConstants.CENTER); cp.add(label); } }
343 :
デフォルトの名無しさん :02/12/06 03:52
(つづき) JButton transmitbutton = new JButton("送信"); transmitbutton.setBounds(30, 30,100, 20); cp.add(transmitbutton); ImageIcon icon = new ImageIcon("C:/load.jpg"); JLabel label = new JLabel(icon,SwingConstants.CENTER); cp.add(label); } }
344 :
デフォルトの名無しさん :02/12/06 04:13
EJBを使ってらっしゃる方、どのように勉強したのでしょうか? 何かいい本かHPがあれば教えてください。
>>342 直接の原因は、labelにsetBoundsしてないから。
間接的には、レイアウトマネージャの支援を受けてないから。
layoutをnullにせず、LayoutManagerつかってみたらどう?
setTitle("The Study.Server");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton transmitbutton = new JButton("送信");
ImageIcon icon = new ImageIcon("load.jpg");
JLabel label = new JLabel(icon, SwingConstants.CENTER);
Container cp = getContentPane();
cp.setBackground(Color.white);
cp.add(transmitbutton, BorderLayout.NORTH);
cp.add(label, BorderLayout.CENTER);
pack();
>>315 DateFormatのパースを使ってみてエクセプションを投げつけられるかどうかで判定か?
しかし有り得ない日付は勝手に違う日付に解釈される仕様のようだから、
再びDateFormatのフォーマットを使って文字列に戻してから元の文字列を比較して、
違う日付にされてないかも調べないと危ないな。
349 :
デフォルトの名無しさん :02/12/06 10:40
Calendarクラスなんですが、IE 5.50(SP2)のアプレットで実行した場合、 set(Calendar.DAY_OF_MONTH, 2); で設定した場合、正しく2が入りますが、 set(Calendar.DAY_OF_YEAR, 2); で設定した場合、無視されてしまいます。 NC 4.75/AppletViewer(JAVA1.1)/AppletViewer(JAVA1.2) の環境で動かした場合ちゃんと動きます。 VMのバグですか? とりえあず試せるソース import java.applet.*; import java.awt.*; import java.util.*; import java.text.*; public class TestCalender extends Applet { public void paint(Graphics g) { Calendar A = Calendar.getInstance(); Calendar B = Calendar.getInstance(); SimpleDateFormat F = new SimpleDateFormat("yyyy/MM/dd"); try{ A.setTime(F.parse("2002/1/1")); B.setTime(F.parse("2002/1/1")); }catch(Exception e){} A.set(Calendar.DAY_OF_MONTH, 2); B.set(Calendar.DAY_OF_YEAR, 2); g.drawString("A=<" + F.format(A.getTime()) + ">", 20, 30); g.drawString("B=<" + F.format(B.getTime()) + ">", 20, 50); } }
JAVAアプレットについて質問です。 ブラウザで動作するアプレットをつくり、そのアプレットから インターネット上にあるサーバ内DBにアクセスできるのでしょうか? アクセスできたとしてその情報をリアルタイムに表示とか出来るんでしょうか? サーブレット等はサーバに入ってないです。 もし、出来ないとしたらそれはなぜなんでしょうか? 全然JAVAわかってない香具師でごめんなさい;;。
351 :
デフォルトの名無しさん :02/12/06 12:36
class MyCanvas extends Canvas{ private Image image1; private Graphics graphics; public void MyCanvas() { image1 = createImage(100,100); } public void paint(Graphics g) { graphics = image1.getGraphics(); graphics.setColor(new Color(0,0,0)); graphics.drawRect(0,0,10,10); g.drawImage(image1,10,10,this); } } イメージ作ってから表示するクラス作って これをインスタンスにしてaddしてみたのですが ぬるぽぬるぽ言われるんです。 どうすればまともに動きますか?
>>346 setBoundsしたらできました
ありがとうございます
>>351 createImageのAPIドキュメント読め。
class MyCanvas extends Canvas {
private Image image1;
public void MyCanvas() {
}
public void paint(Graphics g) {
if (image1 == null) image1 = createImage(100, 100);
Graphics graphics = image1.getGraphics();
graphics.setColor(new Color(0,0,0));
graphics.drawRect(0,0,10,10);
g.drawImage(image1,10,10,this);
}
}
>>355 何がどうわからなくて何を知りたいのかサッパリわかりません。
public void MyCanvas() { if (image1 == null) image1 = createImage(100, 100); } だとぬるぽになるのがわかりません。
「何が」ぬるぽ?
漏れの頭が。
360 :
デフォルトの名無しさん :02/12/06 19:12
CCDカメラを使用して画像を取り込むにはどうしたらいいですか?
361 :
デフォルトの名無しさん :02/12/06 19:22
EUCのファイルを読み込んで別のファイルに出力しているのですが 「〜」の文字だけが変換できずに?で出力されてしまいます。 どうすればよいのでしょうか? BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(args[0]), "EUC_JP")); FileWriter out = new FileWriter(args[1]); String line; while ((line = in.readLine()) != null) { out.write(line); out.write("\n"); }
362 :
デフォルトの名無しさん :02/12/06 19:24
Componentの仕様だけ把握してもどうしょうもないだろー Containerの仕様も把握しとかねば。
>>361 >FileWriter out = new FileWriter(args[1]);
Writer out = new OutputStreamWriter( new FileOutputStream(args[1]),"SJIS");
366 :
デフォルトの名無しさん :02/12/06 19:43
public class Applet1 extends Applet { public void init() { textField1.setText("厨"); add(textField1); textField1.setBounds(132,36,60,24); SymText lSymText = new SymText(); textField1.addTextListener(lSymText); //…としてから、initを終了する前に textField1.setText("漢"); //…とする1行を加えるだけで、その後のアプレットの挙動が暴走寸前になってしまいますが、 //何かヤバイですか? //この1行が無ければ何の問題もないのです。 } }
>>364 usingブロック/java.lang.Disposableもホスィ...
糞質問で申し訳ない。 基本情報のためにjava覚えようと思い本を読んだりしてるんだけど さっぱりやる気が起きません delphiやvbとかを覚えようとしたときは、自分がよく使うフリーウェアを まねて作ったりして覚えていったんですが javaだと凝ったウインドつくったりするだけで少々私には無理があり、 また、実行速度が遅い、とよく聞くのでフリーウェアを作る気も起きません 個人でjavaを使用されてる方は、どのような目的で使われてるのでしょうか? ほんとにしょうもない質問で、ほんとに申し訳ない
>>366 単に登録したリスナーのバグだろ?
SymTextのソース晒せ。
>>369 iアプリ作れば?
後はサーブレットで掲示板作るとか。
>>369 今は文法覚えてるヒヨッコだけど、
俺の場合、特にオブジェクト指向について勉強したいと思ったから。
デザインパターンやらUMLの本もjavaが多い(と思う)しね。
しかもjavaのアルゴリズム本買っちゃったし。
おいおいC++などにも触れてみたいから。イキナリハ・・・
例外処理書かないと、コンパイルが通らんところとかガベコレやら
面白いとおもった。
俺も基本情報目指してる(w
iアプリですか。iアプリ自体使ったことないので眼中に全く無かったのですが iアプリとは一体どんなものなのか早速今から試してみます サーブレットとか掲示板とかは全く未知の領域. >例外処理書かないと、コンパイルが通らんところとかガベコレやら >面白いとおもった。 凄いですね。全く面白いと思ったことないのですが、なんか文章を見てると java覚えるのがもの凄く楽しそうで羨ましいです 基本情報の試験にpascalがあれば...ググ..
>>375 というか、表示してみないと必要な大きさも分からないのに、
createImageできるか、ボケ。ってとこだと思うがどうか。
JFrameに対してダブルバッファリングで描写するのはできるんだが、 JPanelに対してダブルバッファリングで描写するのってどうするの? できないの?
>>377 ふと、そんなにちらついたっけ?と思った。
379 :
プロの逝って良しの1 ◆MvRbZL6NeQ :02/12/06 23:48
>>377 ダブルバッファリングは実は問題の解決になってない。
同期転送や同期切り替えしか正しい解決法は無い。
>>378 赤と白の塗りつぶしを1フレームで交互にやってみれば?
>>378-379 レス頂いたのに言葉足らずで須磨祖。
ウィンドウに隠れるなどして失われた描画の再描写なんです。
例えばボタンを押すとPanelに図形描写するプログラムで
void jButton1_actionPerformed(ActionEvent e) {
Graphics2D G = (Graphics2D)jPanel1.getGraphics();
G.setColor(Color.cyan);
for(int i=10;i<=100;i=i+5){
Shape S = new Rectangle2D.Double(i,i,i+10,i+10);
G.draw(S);
}
では、隠れると再描写されないので
Dimension mySize = jPanel1.getSize();
Image myImg = createImage(mySize.width, mySize.height);
Graphics2D G = (Graphics2D)myImg.getGraphics();
G.setColor(Color.cyan);
for(int i=10;i<=100;i=i+5){
Shape S = new Rectangle2D.Double(i,i,i+10,i+10);
G.draw(S);
}
としたいのですが、この場合
G.drawImage(myImg,mySize.width,mySize.height,jPanel1);
をどこに記述すればいいのかわからんのれす。
だいたいこれでいいのか???それもわからなくなってきた。。。
ウィンドウの上にあるステータスバーを消去したいのですが どうしたらいいでしょうか? ヒントとなるキーワードでいいです・・ 教えて下さいませm(_ _)m
382 :
デフォルトの名無しさん :02/12/07 01:54
CCDカメラから画像を取り込むにはどうしたらいいでしょうか?
javacのエラーメッセージは全部でどれぐらいあるのでしょうか? 一覧見たいものがあれば見たいんですけど、無いでしょうか? プログラムに関する質問でなくてすいません。
tools.jar の com.sun.tools.javac.v8.resources.javac.properties com.sun.tools.javac.v8.resourcse.javac_ja.properties com.sun.tools.javac.v8.resources.compiler.properties com.sun.tools.javac.v8.resources.compiler_ja.properties
>>380 うーん、普通はActionListenerに描画コードは書かないだろ?
たとえば、380が作っているアプリに将来undo機能をつけようと思ったりしたら、
その方法では破綻するよ。
基本的には、リスナーでは描画に必要な情報(たとえば座標とか)を何らかの仕組みで
追加し、管理するだけにして、
paint(g)の方で、その情報を元に再描画コードを実装するってのが基本かな。
ダブルバッファリングで、途中までのイメージを残しておき、追加された
描画情報の分だけを追加描画して高速化を図るってのもありだと思うが、
その前に、基本的な仕組みを作り上げてからパフォーマンスチューニングに
取り組んだ方が良いと思うよ。
388 :
デフォルトの名無しさん :02/12/07 10:23
awtやswingなどGUI関連をJSPで使用することって可能なのですか? 教えてテレホマン。
>>388 JSPはサーバサイドで動いているので、何も考えずに使うとサーバの画面に表示されることになる。
クライアントの画面に表示させたいなら、Appletを使いましょう。HTMLと同じようにApplet関係のタグを埋め込んで普通に使えます。
JSPも、JSPのタグの評価が済んでしまえばHTMLと変わらないんですよ。
>>390 嘘ではないが、極めて不合理的な方法だな。
IEとNetscapeでは、そもそもアプレット用のタグが違う。
<applet... <object... <embed...
こういったケースに個別に対応するよりは、<jsp:plugin type="applet" ...
とJSPの提供する方法を利用して書いたほうがいいと思う。
>>387 >普通はActionListenerに描画コードは書かないだろ?
レスありがとうございます。
「10日で覚えるJava実践教室」のサンプルですが、
再描写について調べてもpaint(g)のオーバーライドしかないのはそういう理由なんですね。
ActionListenerで描画してそれを再描写するのは無理みたいですね。
ちなみに、
.NETではPictureBoxが保持するBitmapクラスに描画して転送する方法で再描写できるんですが、
Javaではこういうことは「しない」と考えた方がいいのですね。
<C#>
private void button1_Click(object sender, System.EventArgs e)
{
Rectangle r = pictureBox1.ClientRectangle;
pictureBox1.Image = new Bitmap(r.Width,r.Height);
Graphics g = Graphics.FromImage(pictureBox1.Image);
Pen p = new Pen(Color.Aquamarine,2);
for(int i=10;i<=100;i=i+5)
{
g.DrawRectangle(p,i,i,i+10,i+10);
}
}
>>393 「できるけどしない」っていうことなら、そうだね。
そのC#のコードだって、undo入れたりするとき苦労するでしょ?
リスナーではモデルに当たるデータを変更することにつとめ、
ビューへの描画ロジックはpaint()に任せることで、モデルと
ビューの分離ができるのさ。こうすることで、ビューの変更、
たとえば、更新履歴をテーブル形式で見たいなど、
ビューの追加や変更に柔軟に対応できるようになる。
taglibで文字列の比較をやりたいんだけど、 2つの変数同士を比較するにはどーすればよいの?
>>394 そういった実用上の「作法」を理解してないので、
サンプルに惑わされてしまいました。ありがとうございました。
うんうん、気持ちは分かる。 なんだか俺もプログラムをはじめたときの気持ちを思い出したよ。 ひたすらコーディングするべし。
オンラインで対戦できるホッケーゲームみたいの作ってるんですけど、 データ転送の速度が描画の速度に追いつかず、描画が飛び飛びになってやれたもんじゃありません。 DataInputStream を Socket を連結させて今はやってます。滑らかに描画するにはどうしたらいいんですか?
399 :
JMF@382 :02/12/07 14:51
CCDカメラをUSB接続してるんですけど、 MediaLocatorの指定場所はどこになるのでしょうか?
400 :
デフォルトの名無しさん :02/12/07 14:56
switch文は、条件二つ指定できなかったよね?一つだけだよね?
switch(*****) // ←こっちは1つのみ
402 :
デフォルトの名無しさん :02/12/07 15:02
できるの?switchで二つ条件指定できるの?
switch(x){ case 0: // 処理 break; case 1: // 処理 break; default: // 処理 }
404 :
デフォルトの名無しさん :02/12/07 15:08
ですよねぇ、無理ですよねぇ。素直にif使おう。
406 :
デフォルトの名無しさん :02/12/07 15:26
よくアプリケーションで設定を変更すると, 「この設定を有効にするためには(アプリケーションを)再起動する必要があります」 なんてことを聞かれ,OKボタンなどを押したのち, 自身で再起動するものがありますが, この「自身で再起動」をJavaアプリケーションで行おうと思った場合, 一般的にはどのような方法が用いられるのでしょうか? 僕が思うにデーモンスレッドあたりをうまく使うのかなと思うわけですが.
408 :
デフォルトの名無しさん :02/12/07 15:36
>>391 のお話に関連して質問したいことがあります。
appletなんて仕事で使ったことないんでいまいち分かってない者なんですが、
<applet>はブラウザ付属のVMを起動してしまい、
<object>や<embed>は、SUNが配布しているplugin(ActiveX経由?)->JRE
を呼び出すためのタグと考えてよろしいのでしょうか?
IEだと<applet>でもSUNのpluginを呼び出すような設定が出来るようですが、
実際に仕事でappletを使用したい場合はどちらが好ましいのでしょうか?
. l ::::|l .i ::::::::::;;;',;::;゙、:;;',、:::::;;;;;l ,,、-、'""、;;:;::::;;;',. ヾ;;゙、 ,r<_,.,、、z゙'、、゙;、ヾ;゙、;;;;;;l;;;!;;::::::::::::
',::::l ! :.l. . .:::::::::::;;;;',;:;;,゙、;;',゙、::;、rl'" ,,.゙、',..,゙'、;;;;;;;;゙、 ヾ;、 ,,,;;シ''!"~~゙゙';,ヾx、.゙、;;;!;;l;;;:;::::::::::
',:::l ',:;;',.:゙、;;;::::::::;;;;;',;;;;, ヾ;r'、::;;;;!.r'',,、zェュ、. ヾ、;;;;゙、 ヽ''" l, ,,、:':'、 ヾ:;、;!;l;;;';;::::::::::
. ゙、:!. ',:;',、::゙、;;;;:::::;;;;',゙、;;/ヽ.ヾ;;;'ill!'''"゙i ~` ゙ヾ、゙、. lr''゙!::li!::;i, ヾj//;;;;::::::
ヾ ゙、:',゙、:゙'、;;;;::::;;;゙、ヾ;、 ヽ;lrヾ、 .,i, `` l;;::ゞン;::;j ツ;/;;;;;;::::;;
゙、 ゙、.!:ヽ、ヾ;;;;;;;;;゙;、 ヽ、;ll!. l ,r';::l, l;;;. .::: ,;;j ',;イ:;;;;;;;;::;;;;
,'ヽ、;:::l';,、゙、r、;;゙;、. ill!. ';;:'゙'i,,j;::l, 、,. ゞ--一゙- ,//:;;;;;;;;;;;;;;;
i ::::;:::!;;;;;;;l゙'',、.゙、ヽll!. 'i;:: ゙''゙:. l、 ,/'/;;;;;;;;;;;;;;/;;
! :::: :::l;;;;;;;;;! l .゙、. ヾ、. ゙、;;;;:、‐'''''" / /;;;;;;;;;;;;;シツ'
. |.:::;:: :::l;;;;;;;;;l 、〈゙、 、 '´ , ´ ,.';;;;;;、-'" ´
. l::::; ::i:::l;;;;;;;;;ヽ, ヽ、゙、 ;l /''" / 藍より青し 公式ホームページ
l::::;;:::',::',;;;;;;;;;゙、゙ヽ、. ゙、. ゙' ,イ
http://www.aiyoriaoshi.com/index2.html ',:::;;;:::',::',;;;;;;;;;;r'"~゙''ー'、 -‐ '''''" ,.';;;! 2話 - 夕餉 - 画像
゙、:;;;;::;',:゙、'''" ヽ、 、:::' /!;;;i!l
http://wqio6xt.hp.infoseek.co.jp/aiao/idx022.html
>>398 それだけの情報では、何とも答えようがないし、、、。
転送されているデータってどういうものなの?
あと、データの転送タイミングは?
追いつかないほどのデータ量なのか、気になるところ。
データが、座標とかわずかなものなら、原因は別なところにあると思う。
412 :
JMF@382 :02/12/07 16:40
413 :
JMF@382 :02/12/07 17:24
デバイスリストの取得プログラムを実行したのですが、 何も引っかかりませんでした。(オーディオ、ビデオ共に) CCDカメラはドライバをインストールしてPC上では認識されています。 import java.util.*; import javax.media.*; import javax.media.format.*; public class CaptureTest { public static void main( String[] args ) { System.out.println( "List of All Capture Divices:" ); Vector list = CaptureDeviceManager.getDeviceList( new VideoFormat( VideoFormat.YUV ) ); // new AudioFormat( AudioFormat.LINEAR ) ); for( int i=0; i<list.size(); i++ ) { CaptureDeviceInfo info = (CaptureDeviceInfo)list.elementAt( i ); MediaLocator locator = info.getLocator(); System.out.println( locator.toString() ); } } }
415 :
デフォルトの名無しさん :02/12/07 19:35
これからJAVAを勉強しようかと思っているCOBOLerですが、 初心者でもわかりやすくJAVAが勉強できるようなサイトがあったら教えて下さい。
JEditorPaneに表示したもの全体を、そのままImageオブジェクトとして保存したいのですが、その方法を教えていただけませんか?
>411 レスありがとうございます。 転送しているデータはStringで、 ボールの座標、相手のバー(ボールを跳ね返すためにつかう)の座標、自分のバーの座標が一緒になって入っています。 (例えば、129,80,20,30,33,280, みたいになってます。) 転送のタイミングは40ミリ秒置きになっています。
>>419 255は1Byteに入る。
"255"は1Byteには入らない。
まぁ、原因はここじゃないだろうけど。
スピードほしいならUDP使えば?別に40ミリ秒毎のデータが1枚届かなかったところで影響は深刻ではないわけで。
>420 ちょっとUDPにしてやってみます。 レスサンクス。
自分、入門3日目のコボラーなんですが、 JAVAってREADした固定長テキストをデータレイアウトにつっこんで 処理するという概念はないんでしょうか? 無い事はないんでしょうが、本屋のテキストみてもその辺りの記述が見つけられません。 どこかにいい見本は無いでしょうか・・。
>>422 無いです。つぅかすごい教育受けてきたんだなぁと手続き世代の僕は思いました。
>>422 XMLをDOMに読み込んで書き換えて吐き出すのとどう違うの?
>>423 まじっすか。
なんかいきなりでかい壁にぶちあたった気が・・。
汎用機でバッチ流すのがめんどい処理をローカルにしちまおうと思ってたんですが
ちと挫折気味。
>>424 >どう違うの?
入力と出力がXMLではない。
コボラー恐るべし・・・
>>419 エアホッケー?ボールの軌道の計算は、クライアント側に任せられない?
>>428 脳内プログラム概念の再構築がでんでん進みませんです。
JAVAやC畑の人はシステム乗り換え時のセットアップ用データ受け渡しとか
どうしてるんですか?
DBの情報渡してはいおしまいとか?
コンバータするか、アダプタかます。もしくは、DBの情報渡してはいおしまい。
バージョン1.4のBufferクラス活躍できるかもの予感
JavaやCやその派生言語って入出力は基本的にストリームじゃないですか。 unixの影響も大きいと思うんですけども。 コボルって入出力がすんげー特殊なんすか?
>>434 なぁ、UNIX作った言語CがUNIXの影響が強いというのはこれ如何に。
標準Cライブラリ(FILE*)やC++のstd::iostreamの話では?
テキストコンポーネントに表示したもの全体を、 そのままImageオブジェクトとして保存したいのですが、 どう実現したらよいのでしょうか?
ImageオブジェクトからGraphicsをゲットしてそこにdrawして差し上げる
439 :
not 437 :02/12/07 23:55
>>438 結局,その方法になっちゃうんだろうなぁ.
どうにかして,ComponentのインスタンスからgetImage出来ないものか・・・
AWTのモデルからして描画"した"結果は揮発性な扱いでしょう。 (それゆえexpose/WM_PAINTでpaintが呼ばれるわけですが) 描画内容を保持するモデルならば、コンポーネント自身がImageProducer になれると思うです。まあ、重いからやんなかったんでしょうね。
>>422 それって、Cでいう共用体みたいな使い方をしたいってことだよね。
Javaでやる場合はクラスを使うんだけど、同じようなことは実現可能だよ。
1.固定長データを1件READ
2.データ(byte配列)を引数に、ビーンを生成。
3.ビーンのgetterメソッドで必要な位置のbyte列を必要な情報に加工したものを取得する。
COBOLやCの共用体のように言語の支援がないので、趣きが異なるように感じるかもしれないけど、
データ1件分を1レコードではなく、1オブジェクトとして扱うだけと考えれば、
そんなに違うわけでもないでしょ?
レコードとクラスのマッピングはどうするの? と質問してくるに100はらたいら
>>437 java.awt.Robotクラスで似たようなことはできる
445 :
デフォルトの名無しさん :02/12/08 00:18
JFrameではなくてJWindowを継承してGUIを作っているのですが、 JWindowの上にJPanelを貼って、JPanelの上にボタンやらテキストフィールドやら を貼っています。 Frame上にボタンやらを貼ったら普通に動作しますが、 JWindow上に上記のように貼ってもテキストにカーソルすら置けないし、ボタンも押せるけどアクションが聞きません。 どうすればテキストの中を書き換えたり、ボタンをアクションさせたりできるのでしょうか?
447 :
デフォルトの名無しさん :02/12/08 00:26
>>446 Frameのタイトルバーや管理ボタンを表示させたくないのでWindow継承したのですが・・・・・
そうするとタイトルバーや管理ボタンがでてしまいませんか?
どうなんでしょう?
448 :
デフォルトの名無しさん :02/12/08 00:30
Windowの上にContainer、Panel、Buttonってやっても動かないです。
今、RealPlayerを内蔵したJAVAアプリケーションを作ろうとしているのですが、 どうにもRealPlayerを内臓する方法が見つけられなくて困っています。 もし、参考になるサイト、もしくは書籍がありましたら教えてください。
450 :
デフォルトの名無しさん :02/12/08 00:35
Ja-Jakartaってなんて読むの?じゃじゃかるた?じぇいえーじゃかるた? あとわかんないのは char。ちゃー?きゃら?
452 :
JMF@382 :02/12/08 01:19
>>414 JMFはウィンドウズ依存版です。
また、教えて頂いたサポート一覧表を見ると、
僕が使っているカメラはサポートしていないみたいです。
ところでJavaCamっていうのはCCDカメラから画像を
取り込む機構でしょうか?
<<438 <<439 <<440 レスありがとうございます。 参考になりました。 <<444 これから調べてみます。 ありがとうございました。
454 :
デフォルトの名無しさん :02/12/08 02:58
もうだめぽ・・・ 誰かバカな私にご指南くださいませ 現在、クライアント班、サーバー班にわかれて通信実験をすることになり、 クライアントのjavaを私ががんばってます。が・・・ socket(host,80)でソケット生成、 "GET ファイル名 http/1.0\n" にgetBytes[]をして送ると、希望したファイルの内容が dos窓に表示されるのでこの時点での 私のjavaソースにミスは無いものと思われます。 しかしながら、 "POST サーバー班が指定したcgi名 http/1.0\n" +"Content-Length: 4\n\n" +"moe-" と送信すると、サーバーから返答がありませんし、 期待した成果は得られません。 ちなみにPOSTをGETにしてもまったく変化ありませんでした。 これはクライアントの私のミスなんではないかと思い 色々探したのですが、わからないんです。 私にどうか間違いを教えてください。
すみません。
色々実験してて、勘違いをしてしまいました。
>>455 での相談では、サーバの返答は
HTTP/1.0 400 Bad Request(以下略
が返って来ます。
どうか、間違いを教えてください。
さらにミスです。 色んなソース書いて、色んなこと実験してたから間違いだらけですみません。 GETの場合はBad Requestで POSTの場合は返答無しです。
>>386 御指導ありがとうございます。
ZipInputStream等を使ってtools.jarのリストを取得してそれらのファイルの存在を確認できたのですが、
そこからどうすればエラーメッセージを得ることができるのかわかりません。
どうすればよいのでしょうか?
解凍ソフトで解凍しちまえばとかったですね。すいません。
>>452 もう、ググって分かったと思うけど、僕も興味があったので調べてみたよ。
JavaCamってのは、WebCam32という製品をサーバにしたAppletなんだね。
動画というよりは、静止画を一定時間でリロードしていくようなものみたい。
だから、カメラとのやり取りはWebCam32の方がやっているから、そっちの
製品概要を調べてみるといいよ。
462 :
デフォルトの名無しさん :02/12/08 17:09
javaで0〜23の数字を入力して 0−11ならおはよう 12ならお昼 13−18なら今日は 19−23ならこんばんわ それ以外なら範囲を超えてます いうのを作りたいんですけど if文で作るのはわかるんですが ユーザに入力させるのはどうすればいいんですか? readlineって奴ですか? 初心者ですいませんが教えてください。 あと参考になるようなサイトをご存知なら 教えていただけないでしょうか。
463 :
デフォルトの名無しさん :02/12/08 17:14
>>462 Servlet使ってWEBブラウザから入力するってのはどう?
>>462 PC初心者板で答えてやった。マルチか?
>if文で作るのはわかるんですが お前ついさっきまでわかってなかっただろ?
文字列検索で、OR検索ってできないの? イメージでは「ab」か「cd」が最初に出てくる場所を探すのに int i = str.indexOf("ab"||"cd"); って事をしたいんだけど、||は使えなくてエラーでした。 2回(以上)検索して値の小さい方を選ぶしかないのかな。
すいませんまだわからないです。 jarファイルを解凍してファイルの中を見ると日本語部分と思われるところが \u8A00のように文字化けしてしまいます。色々調べたのですがunicodeによる文字化け? かなというとこまでしかわかりませんでした。どのようにデコードすればよいのでしょうか?
最近は、入門書の始めの方に出て来るようだ。これ
>>462 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine();// lineに読み取った文字が入る。
>>467 native2ascii -reverse マニフェストファイル
訂正 s/マニフェストファイル/プロパティファイル/ もう寝る。
できました。ありがとうございます。 ここの住民の方々すごくやさしいですね。ありがとうございました
474 :
ほんとーに初心者で申し訳ない :02/12/08 18:31
コマンドラインから「java moner」として(もちろんmoner.classはちゃんとある) System.out.printlnがコンソールに表示されないのですが、どのヘンに理由があるのでしょう? 環境はWin2KSP3+JDK1.2、他に必要な情報があればご指摘を(拝)
たとえば、コンパイルしたクラスファイルが前のバージョンで、 System.out.println文が入っていないとか。
>>475 それは大丈夫です。なぜかというと、実はこれ、JSPがメインのシステムなんです。
で、JSPやJavaBeansからはちゃんとSystem.out.printlnが(Servletエンジンで
吐き出すシステムログに)出力されています。
んで、たまたまバッチ処理を書かなければならなくなったので、同じ環境でstatic mainな
コードを書いてコンパイルして、現在コンソール上からデバッグ中、上手く言ったらATコマンドで
自動実行、と考えているのですが……
1.System.out.printlnが入ったメソッドが呼ばれていない。 2.System.out.printlnの出力が空文字列 3.System.outがリダイレクトされて、どっかのファイルに出ている の可能性はないか?特に1.は往々にしてありがち。
>>474 main(String[] args){
System.out.println("オマエモナー");
}
でも表示されないのかと問い詰めたい。
479 :
JMF@382 :02/12/08 19:36
>>461 ある方の協力の下、デバイス情報の取得に成功しました。
解決方法とその結果は以下の通りです。
JMF1.2.1\bin\jmfinitを実行すると、
jmfregistryにPC上にある全てのCaptureDeviceが追加され
JMFから認識可能に。
>>479 すばらしい。よかったね。
ところで、手持ちのカメラは何使ってるの?
481 :
JMF@382 :02/12/08 19:53
>>480 I/O DATAのUSB-CCDっていうUSB接続CCDカメラです
(特に名前はなし?みたいです)
>>481 どうもありがとう。
興味があったけど、いろいろ調べるきっかけを作ってくれて
とても参考になったよ。
483 :
JMF@382 :02/12/08 20:47
>>482 とんでもないですw
丁寧にご指摘して下さいましてありがとうございました。
484 :
デフォルトの名無しさん :02/12/08 22:06
最近の広告は、まぎらわしくなってきた。
486 :
デフォルトの名無しさん :02/12/08 22:30
DisplayMode(640, 480, 32, DisplayMode.REFRESH_RATE_UNKNOWN) 使って以上のような解像度変えようとしても、 java.lang.UnsupportedOperationException が出てきて変えられない。。。。。。。。。。 サポートされてないってドキュメントにかいてあるぉ・・・・・・・ どうやって変えればいいんだろう・・・ 知ってる方ご教授願います。 ちなみにDisplayModes()で確認しますたけど、上記の640×480解像度はうちのマシンでは出せるはずなんすけど
487 :
デフォルトの名無しさん :02/12/08 22:38
わあああああああーい
今まさに初めてJAVAりますた!
結城のプログラミングレッスン上を通学電車で読み今日まさに
Hello
と表示できました・・・涙
本読んでとりあえずHelloを出そうとしたよ。
じゃあそのたった5行のプログラムをどこに書くんだろう、とまずはまった。
友人に聞いたらメモ帳やxyzzyを教えてくれた。
xyyzyをインストールして書いたよ、たった5行をね。
コマンドプロンプトで
javac Hello.java
したけどうんともすんともいわねー。
cd、そうcdでディレクトリを移動するんだーって移動したけど
どうにもならん。
で、また友達に聞いたら問題は
>>2 に書いてあることだった。
488 :
デフォルトの名無しさん :02/12/08 22:42
Java超初心者です. 今、Applet上でスクロールバーを使って絵を動かすプログラムを作ってます。 リセットボタンを押すと、絵が元の位置に戻るようにしたのですが、 スクロールバーが元に戻りません。これはどうしたらいいでしょうか。 おしえて下さい。
489 :
デフォルトの名無しさん :02/12/08 22:42
path追加しようとしたけど、え、どこにあるのjsdkちゃんは・・・・
って良く見たらJDK(開発用)じゃなくてJRE(実行環境)インストールしてたじゃん。。。
んなわけでJDKをインスコして
http://www.hellohiro.com/appli.htm ここを見て環境変数の設定をしてやりましたよおおおおおおお
javacすると何やらマスィンが作業して・・・うまくいったか?!
よし
java hello
と思ったがエラー。直後
java Hello
を打つと・・・・感動の・・・・
Hello
なんだと
>>487 ,489のせいで俺の質問が流れた・・・・・・・・・
せめてもっと小さく書いてください。
感動の後、今焼肉を食べました。
>>490 java Sorry
>>492 今日は僕にとっての記念日です。
2002.12.8 ディセンバーエイト
>>493 java Sorry
引き続き、荒らさせてください。
serverVMで-Xmx64mしているのですが、 Runtimeで*Memory見ているとせいぜい 1.4,5メガしか確保されていません。 これは64mまで必要に応じて逐次増えて いくようなものなのでしょうか?
>420 UDPにしたら相当改善されました。 さんきゅう。 >429 そうです。エアホッケーもどきです。 ボールの軌道の計算をクライアントにさせる・・・ トライしてみます。レスサンクス。
498 :
デフォルトの名無しさん :02/12/08 23:46
>>496 そうです。
SunのVMは(他はシラン。自分で-verbose:gcして調べてね)その1.5メガの領域が
オブジェクトインスタンス(ゴミふくむ)で一杯になったところで、MajorGC起
動とともに確保領域の拡張を行います。
>>496 そ。
-Xmx は最大ヒープサイズ
-Xms が初期ヒープサイズ
501 :
デフォルトの名無しさん :02/12/09 00:19
Jtreeを使っていて壁にぶつかりました。 +ルートノード |_test1 |_test2 |_teset3 |_test4 |_test5 例えば、このようなツリーがあるとします。 この場合test3のインデックスを知りたい場合どうすればいいのでしょうか?? どなたかご教授お願いします。
502 :
デフォルトの名無しさん :02/12/09 00:24
503 :
デフォルトの名無しさん :02/12/09 00:32
例えば、↑の例でいうと、Test3は2ということです。 私がやりたいことは、test3を消したいのです。 で、remove(int index)とやったら消えると思うのですが、 このindexの求め方がわかりません。
504 :
デフォルトの名無しさん :02/12/09 00:58
スレ汚しすまぬ。 自己解決しますた。<<500
>>477 >1.System.out.printlnが入ったメソッドが呼ばれていない。
>の可能性はないか?特に1.は往々にしてありがち。
ビンゴでした・・・逝ってきます(T_T)
>>478 >main(String[] args){
> System.out.println("オマエモナー");
>}
>でも表示されないのかと問い詰めたい。
小一時間問い詰めてください(T_T)
506 :
デフォルトの名無しさん :02/12/09 02:40
int p[] = new int[1000]; int rank[] = new int[1000]; int BOX_SIZE = Integer.parseInt(args[0].substring(0, args[0].indexOf('.'))); のように宣言した変数が、後で同クラスのメソッド内で 例えば rank[x] = 0; などと書いた時に、rankの元々の宣言を認識してくれてないのか、何なのか、で、動いてくれません。 これって何故でしょうか。
507 :
デフォルトの名無しさん :02/12/09 06:01
>>506 まずコンパイル通ってんの?
順序だてて説明しろ。
>>506 モチツケ。何言ってるかよくわかんねーぞw
ここで聞いてよいかどうかわかりませんが、 JBuilder7 Personalの使用方法についての質問です。 OSはWin2000 personalで、スクロールマウスは他では正常に動作してますが、 JBuilderのソースエディット画面でスクロールしようとグリグリやっても うんともすんとも、ピクリとも動きやしません。 調べたらJDK1.4からスクロールマウス使えるようになったそうですが、 JDK1.3でコンパイルされてる?っぽい?JBuilder7じゃ駄目なんでしょうか。
おはようございます。
えっと
>>506 ですが、コンパイル通ってません。
program.java:52: シンボルを解決できません
シンボル: 変数 rank
場所 : Krus の クラス
rank[x] = 0;
^
というエラーがでます。
どういうことなんだ〜???
>>509 jbWheel使うか、JBuilderをJVM1.4の上で動かせばOK。jbWheelが無難かな
>>512 おお、jbWheelすげー。動いてます動いてます。
サンクス!
>>506 >>int rank[] = new int[1000];
int[] rank
が最近の書き方でないかな。
あと、
public int[] rank ...と書いてみてコンパイル通るかためしてみろ。
通ったら自分で原因を考えろ。
516 :
デフォルトの名無しさん :02/12/09 16:26
UNIX の diff みたいなことをしたいんですが、 どっかに Java に移植したサンプルってありませんか?
517 :
デフォルトの名無しさん :02/12/09 16:29
UNIX の diff みたいなことをしたいんですが、 どっかに Java に移植したサンプルってありませんか?
>517 誰?
519 :
デフォルトの名無しさん :02/12/09 16:38
UNIX の diff みたいなことをしたいんですが、 どっかに Java に移植したサンプルってありませんか?
>518 誰?
>520 誰?
>525 俺?
528 :
デフォルトの名無しさん :02/12/09 22:48
>>506 >のように宣言した変数が、後で同クラスのメソッド内で
どこで宣言してんの?フィールド?
>例えば
>rank[x] = 0;
rank[x]が初期化されてない可能性大です。
配列の宣言だけでは初期化されないよ
最近Javaを始めたばかりで全然できなくて困ってます。 ax+b=cまたはax-b=cのかたちの一次方程式を解くプログラムをだれか 教えていただけませんか?マジでお願いします。。。 授業の課題なのですがテキストは「やさしいJava」で、授業は クラスライブラリのとこまでやったのでそれまでの知識でできるはず なんですが。。。お願いしますm(__)m
x=*******; にするだけじゃないのか?
int a = 100; int b = 20; int c = 222; x = (c - b) / a; System.out.println(x);
開 一夫 さんにメールしました
WebProgのJAVAスレにもポストしてしまったのですが、こちらの方が 早いかもと思い、マルチポストゴメンなさい… Tomcat4.0.4、PostgreSQL7.3から配列をキャストしたいのですが String[][] my_Array = (String[][])rs.getArray("name"); 等とすると 「この型は declaration には不適合です。 java.lang.String[][] から java.sql.Array には変換できません。」 と言われてしまいます。SQL配列をキャストする、変換する方法ってないのでせうか?
マルチポスト厨ウザイよ。しねば?
うつだしのう
>535 ハァ?テメーが死ねよ(ワラ
538 :
デフォルトの名無しさん :02/12/10 03:24
Java の質問なんですけど、不要になったオブジェクトって C++ の delete 演算子のように明示的に破棄できるんですか? 初心者的質問ですみません。
539 :
デフォルトの名無しさん :02/12/10 03:50
nullでも代入汁
>>539 オイオイ
null を代入したら即座に破棄されると勘違いされるぞ。
541 :
デフォルトの名無しさん :02/12/10 05:15
ちょっとSQLも混じってるけど、ここで質問させてもらいます。 DBからSELECTした数字に1足して、DBにUPDATEしようとしています。 以下は、Bean内の記述の一部(UPDATE)です。 int qqq= 3; sttSql.executeQuery( "UPDATE sample SET count='qqq' WHERE id=1" ); 結果、DBにはcountの中に0が入ってしまいます。 3を入れるにはどうしたらいいのですか? DB内のcountの型はint型です。
UPDATE sample SET count=3 WHERE id=1
>>541 "UPDATE sample SET count='" & qqq & "' WHERE id=1"
544 :
デフォルトの名無しさん :02/12/10 06:19
>>542 いや、そういうことじゃなくて。。
>>543 レスどうもです。
試してみたのですが、エラーが出ました。
bean_count.java:42: 演算子 & は java.lang.String,int に適用できません。
"UPDATE sample SET count='" & kkk & "' where id=1");
>>541 int qqq= 3;
sttSql.executeQuery(
"UPDATE sample SET count=" + qqq + " WHERE id=1"
);
ちなみに、0が返っているわけではなく、NULLが返っているんだろ?
APIよめ。
ってオイ、executeQuery じゃなくて executeUpdate だろ。
>>538 できない。できるのは、参照をきること。
オブジェクトへの参照が全てなくなれば、ゴミ収集日に回収されます。
>>538 hogehoge.finalize();
hogehoge = null;
これでバッチリ
>>486 32ってのが怪しいけど、、、。
DisplayModes()で取得したやつで、変えてみてできるかどうか見てみたら?
>>549 それって、hogehogeのスーパークラスのfinalize()も呼ばれちゃわねーか?
>>503 どうやって、そのtest3を特定するつもり?
マウスで選択したらってこと?
その場合、リスナーでタイミングをとるだろ。
リスナーの引数のイベントから選択パスがとれるから、それ使って消せ。
APIにあたれ。
>>549 finalize() は protected だから普通はそーゆー事できんね。
それに finalize() ってガベージコレクタ以外が呼んでも良いんだっけ?
>>532 課題の趣旨を考えろ。
誰も一次方程式の解き方なんか聞いちゃいねぇよ。
入力文字列をどうパースするかってことだろ。
ここまでヒントやるから、あとは自分で解決しろ。
>>554 チッ
じゃあリフレクション使って Method#setAccessible(true) しろ YO!
つーかネタを (ry
557 :
デフォルトの名無しさん :02/12/10 07:22
>>545 541っす。
>ちなみに、0が返っているわけではなく、NULLが返っているんだろ?
>APIよめ。
すまん。そのことは理解してたんだけど、まだjava始めたばっかだから、
0と表現してしまった。
とりあえず、できたよ!ありがとう。
558 :
デフォルトの名無しさん :02/12/10 08:33
強制的にゴミ収集してもらいたかったら System.gc(); これで即座に破棄される。
解決しますた。
>>558 >これで即座に破棄される。
なるべく早く回収してね♪じゃなかったっけか?
Javaで簡単なアプリケーションをつくって、shockwaveプラグインを 表示したいのですが、どうやればいいのでしょうか? よくアーティストのCDの付録でCで書いた、ShockwaveやQuicktimeなどで プロモーションビデオの再生や簡易ゲームが表示できる簡単なソフトがついてい ますが、あれのJavaバージョンです。 本にはFlashなどのプラグインの導入はそれほど難しくはないと書いてあっただけで 具体的にどうするのかは書いてありませんでした。 宜しくお願いします。
>>561 「簡単なアプリケーション」をWebアプリケーションにすれば
ふつうにHTMLにうめこむだけですね。
563 :
デフォルトの名無しさん :02/12/10 12:03
わかる人、おすぇてぇ〜。 いきなり、最初でつまづいてます・・・。 サーブレットを学んでいます。 本に書いてあるとおりに指定のフォルダに作成したjavaファイルを置いて、 プロンプトからコンパイルすると、↓エラー(一部)が出ます。 rrv_intro.java:5: シンボルを解釈処理できません。 シンボル: クラス HttpServlet 位置 : srv_intro の クラス public class srv_intro extends HttpServlet { コードの内容は、予めCD-ROMにあるサンプルファイをそのまま コピペしたので間違えてないです。 もしかしたら、サンプルファイルのそのファイルだけ、間違ってると 思ったので、他のサンプルファイルで試してみたのですが、 やっぱりうまくいきません。 前に試したときは、うまくいったのに、サーブレットをコンパイルしようと するとたまにこういうことがあって、なぜコンパイルできないのか 考えているのですが、わからないです。
>>563 CLASSPATHが通ってない。
いじょ。
>563 classpathのパス名にスペースがあるのに、""で囲っていない
566 :
デフォルトの名無しさん :02/12/10 13:18
Socket接続したStreamからreadLine()をスレッド中で呼んでいるのですが、 スレッドを停止するのにSockt.close()でreadLine()からIOExceptionを throwさせてcatchしています。 スレッドを停止するのに他にいい方法はないでしょうか?
サーバサイドのプログラミングで煮詰まってます。 ユーザが指定した検索条件から検索結果を表示するページを作成しているのですが、 検索結果が複数ページになった時、前のページ・次のページ等の リンク(検索処理のURLに"?index=n"を付加)で移動させる為、 検索条件をscope="session"のbeanに格納する事にしました。 が、何故か次のページのリンクをクリックした時、 格納されていた筈のbeanのプロパティの値がnullになってしまいます。 何故でしょうか? 学習する時間が無いまま開発に入っていますので、 基本的な事が抜け落ちている可能性もありますが、 何か思い当たる事がありましたら、よろしくお願いします。
>>566 Socket#setSoTimeout() セットしてループしながらデータ読み込み。
停止する側から Thread#interrupt() で割り込み。
>568 やってみたんですが、Socket#setSoTimeout() の変更が利きませんでした。 なぜだろう?こんな感じでやったのですが。 class reader extends Thread{ ... run(){ while(flag) try{ String data= buffer.readLine();//bufferはsocketに接続 System.out.println(data); }catch(Exceptione e){ flag=false; } } ...止めるルーチン socket.setSoTimeout(1);//readerのbufferはsocketに接続 reader.interrupt(); socketを維持したまま、スレッドを止めたいのです。 Javaを始めて1週間の初心者なので、すみません。
すみません。上のは class Reader extends Thread .... 止める側 Reader reader = new Reader( です。とりあえず、BufferedReaderやInputStreamの仕様を もっと読んでみます。
またまたすいません。>569のSocket#setSoTimeout() の変更は、 次回入力では利いていました。
>>569 ちがう。スレッドに割り込みが掛けられていないか定期的に確認するために
setSoTimeout() を設定して I/O ブロックを抜けれって意味。
public void run(){
Socket socket = new Socket("www.2ch.net", 80);
socket.setSoTimeout(1000);
InputStream in = socket.getInputStream();
byte[] buffer = new byte[1024];
while(! this.isInterrupt()){
try{
int len = in.read(buffer);
System.out.print(new String(buffer, 0, len));
} catch(InterruptedIOException ex){/* */}
}
return; // クローズとかは自分でヤレ
}
>>562 それはswfファイルを<object>タグでHTMLファイルにHTMLで埋め込めばいいという意味でしょうか?
いろいろカスタマイズしたいのでできればアプリケーションとして独立させたいのですけど、なにかやり方をご存知でしょうか?
ちなみにswingで<object>タグで埋め込んでみても何も反応はありませんでした。
>572 どうもありがとうございました。要するに、readLineは使うなということですね。 オライリージャパンのJava ネットワークプログラミングを今よく読んでいたら、 readLineは使うなということが書いてありました。本に改行処理のコード も書いていたので、572さんのコードと組み合わせてやってみます。 ほんとうに、ありがとう
575 :
デフォルトの名無しさん :02/12/10 15:38
Webアプリケーションに関する質問です。 同一の JVM 上で複数のweb-appを動かしている場合、 例えば「/abc」というコンテキストに属するクラスを 「/def」コンテキストのクラスから使用することは可能 なのでしょうか? 次のような構造の時に、AクラスからBクラスを使えるか ということです。宜しくお願いします。 /abc /WEB-INF /classes /net /2ch /abc /A.class /def /WEB-INF /classes /net /2ch /def /B.class
>>573 IEコンポーネントをSwing上で使えるようにがんばってみるとか。
>>575 クラスパス通ってるならできないと困ると思われ。
578 :
デフォルトの名無しさん :02/12/10 17:35
>>563 で質問した者ですけど、ご指摘のとおり、
CLASSPATH=.;c:\j2sdk1.4.0\jre\lib;c:\j2sdk1.4.0\lib;c:\j2sdk1.4.0\lib\tools.jar;"C:\Program Files\Apache Tomcat 4.0\common\lib\servlet.jar";"C:\Program Files\Apache Tomcat 4.0\webapps\jsp10\WEB-INF\classes";
として、classpathのパス名にスペースがあるので、""で囲みました。
で、再起動して、再び、
C:\Program Files\Apache Tomcat 4.0\webapps\jsp10\WEB-INF\classes
にあるjavaファイルをコンパイルしたのですが、まだ同じ
エラーがでます。""の囲み方が間違ってますか?
579 :
デフォルトの名無しさん :02/12/10 17:46
JDIまたはJPDAについて分かりやすい解説のあるHPを教えろ。
580 :
デフォルトの名無しさん :02/12/10 18:31
EditorPaneを使って、簡単なブラウザを作ってみたんだけど、 ときどきエラーが出てくる。 ↓ java.lang.NullPointerException at sun.net.www.http.KeepAliveStream.close(KeepAliveStream.java:63) at java.io.FilterInputStream.close(FilterInputStream.java:159) at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.close (HttpURLConnection.java:1283) at java.io.FilterInputStream.close(FilterInputStream.java:159) at javax.swing.JEditorPane.read(JEditorPane.java:514) at javax.swing.JEditorPane$PageLoader.run(JEditorPane.java:551) これって、どんなエラーなのか教えれ。 おながいします。
582 :
デフォルトの名無しさん :02/12/10 19:59
>>578 誰かわかりませんか?
何かお気づきの点がありましたら、お願いします。
>>580 漏れも同じようなものを作ってます。
ページの取得は多分GETPAGE(URL)で行ってると思うんだけど、
これの読み込み速度に回線の速度が追いついていないんじゃないでしょうか。
解決策は…どっかにバッファとしてURLからの入力ストリームを溜めておいて、
読み込みが終わったら一気に描画するとかでしょうか…。
言ってる本人もよく判ってないのですが(゜Jし゜)
584 :
デフォルトの名無しさん :02/12/10 20:43
一定周期で何かする、というルーチンをどうやって組ンでます? 例えば10秒周期でhoge()を実行する無限ループ、とかだと for(;;){ hoge(); sleep(10000); } なンて書き方だと、hoge()の処理時間分だけ どンどン周期がずれていくから、一日経つと 結構ずれるンだよね。 hoge()の実行時間が一定ならいいンだけど・・・ やっぱ、いちいちカレンダーを見るしかないンでしょうか?
タイマー
>>585 (゚∀゚)サンクスコ
探してたのはまさにコレだった
>>578 CLASSPATHだけど、以下のでいいんじゃない?
"もいらないよ。XPだけど、"で囲んでないよ。
CLASSPATH=.;c:\j2sdk1.4.0\lib\tools.jar;C:\Program Files\Apache Tomcat 4.0\common\lib\servlet.jar
588 :
デフォルトの名無しさん :02/12/10 21:58
java.lang.clone()を使おうとしたら コンパイルエラーで The method clone() from the type java.lang.Object is not visible と出ます。 オーバーライドしているクラスでは publicで宣言しているのですが・・・ public Object colne() { try{ return super.clone(); }catch(Exception e) { return null; } } というか、Clonableをimplementするだけでいいんですね・・・
589 :
デフォルトの名無しさん :02/12/10 22:02
>>587 ありがとう。試してみます。
当方、98SEです。
590 :
デフォルトの名無しさん :02/12/10 22:08
>>587 だめでした。
となると、クラスパス以外に何か原因を考えた方が
いいのでしょうか。わからんです。。
>>590 ほんとにservlet.jarのパスあってる?
コマンドラインの引数でコンパイルしてみたらどうかな?
javac -classpath ".:C:\Program Files\Apache Tomcat 4.0\common\lib\servlet.jar" *.java
javac -classpath ".;C:\Program Files\Apache Tomcat 4.0\common\lib\servlet.jar" *.java :と;間違えた。
で、誰か The method clone() from the type java.lang.Object is not visible が出る理由わかりませんか?
>>593 もちろん、API見てから書いてるんだろうな。
もう一回読んでみな、書いてあるから。
596 :
デフォルトの名無しさん :02/12/10 22:52
>>594 じゃあ、clone()ってどうやって使うんだ?
意味ないじゃん。
599 :
デフォルトの名無しさん :02/12/10 22:55
>>597 protectedをpublicでオーバーライドできなかったような・・・
>>600 できるよ。
答えはそこじゃないのに、、、。
マニュアル読めって、、、。
602 :
デフォルトの名無しさん :02/12/10 23:00
再起動したらできました IDEのバグですかね・・・ レスどうもです。
604 :
デフォルトの名無しさん :02/12/10 23:50
>>591 ありがとう。
教えてくれた
javac -classpath ".;C:\Program Files\Apache Tomcat 4.0\common\lib\servlet.jar" *.java
のコマンドでコンパイルすると上手くいくみたい。
一部、変なコンパイルエラーがでるファイルがあったけど。
やっぱり、servlet.jarのパスが通ってない見たいですね。
cドライブ直下にある「Autoexec.bat」ファイルを直接いらわずに
システム設定ユーティリティのAutoexec.batタブから
パスの編集したんだけど、どうもうまくいかないみたいです。
鉛筆みたいなマークが出てるのが気になるけど、それは関係ないかな?
そこでいろいろパスを指定してるようだったけど、
順番とか考えずに、classpathって項目を勝手に作ってしまったけど
いいのかな?
最初は「Autoexec.bat」から編集してたんだけど、どんどん汚いファイルに
なってきてるけど。。
>>604 Antの使い方を覚えよう!
システムの環境変数はあまりいじらない方がよろし。
606 :
デフォルトの名無しさん :02/12/10 23:57
>>604 システム設定ユーティリティのAutoexec.batタブから編集しようと
したんだけどそれでいいんだよね?
Antってなんですか?
>>604 悪いこと言わないから、本気でやるんだったら
ant使っておいた方が良いと思う。
>>606 antについては検索して。
別にautoexec.batはメモ帳かなんかで編集すれば良い。
autoexec.batを編集して再起動してるのか?
>>580 前スレ辺りで似た話題あり。
>>604 皆の言うとおり、Antを使うか(おすすめ)、
バッチファイルの使い方がわかるのであれば、
Dosプロンプト起動時にCLASSPATHを作っておいたバッチファイルから
読みこませたりすると、Autoexec.batが汚くならない。
つーか知らないと結構弊害が出てくるようになってるんじゃない。 隣のやつが苦戦してた。
612 :
デフォルトの名無しさん :02/12/11 00:29
>>608 そうです。最初は、直接、書き込んでそれから再起動してました。
>>607-610 ant有名なんですね。610のリンクも参考にさせてもらうよ。
antなんか聞いたことなかったよ。
プログラマやるには覚えることいっぱいあるんだな。
皆はどれくらいでJAVAを使いこなせるというか
苦手意識がなくなったというか、仕事として、プログラマ
やっていけるようになった?
早く上達するには何に注意したらいいかな?
細かな文法の意味は、ほとんど覚えないで、
本見ながらとりあえず組むみたいなプログラムの書き方で
こんなことしてたら、あとあと伸びないかもと思い始めてる。
>>612 個人的な意見だが、
ガタガタ言わず、とにかく速度優先で作りたいものを作る。
理論は後からついてくる。
ハマる量が多ければ多いほど、力になる。
ただし、入門書はとりあえず読んだけどね。
>>576 SWTだとIEコンポーネントを使うのは簡単だけどね
615 :
デフォルトの名無しさん :02/12/11 00:50
>>613 あー、そうなの!?
てっきり、何も考えずに先すすむとあとで壁にぶちあたるみたいな
話があると思ったんだけど、そういう意見もあるんですねん。
>>613 激しく同意。結局本ばっかよんでる奴はプログラムも書かずこんなところで揚げ足取るだけで終わる。
ハマらないと、なぜそれが必要なのか結局理解できない。 WeakReference、listenerリークの回避、poolingなど。
>>613 ,616
うんうん。
いろいろ作っている過程で必要なことが腐るほど出てくるからそれを調べて覚えるのが楽だし、理解が速いと思う。
622 :
デフォルトの名無しさん :02/12/11 02:27
com.oreilly.servlet.MultipartRequestの質問なのですが どなたかわかりますでしょうか? MultipartRequest multiRequest = new MultipartRequest(request, tmpdir.getPath()); ・・とすると以下の例外がでます javax.servlet.ServletException: サーブレットの実行により例外を投げました at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) : root cause java.lang.NoClassDefFoundError: javax/servlet/ServletRequest at com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:222) at com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:109) at com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:89) :
>java.lang.NoClassDefFoundError: javax/servlet/ServletRequest 書いてあるジャン com.oreilly.servletの.jarはどこに置いてる?まさか jre/lib/ext とかじゃないよな
624 :
デフォルトの名無しさん :02/12/11 15:45
先生!質問! class Hoge { public static void main(String args[]) { new Hoge(); } Hoge() { ... } } みたいな感じで、 mainメソッドにはインスタンス生産だけしか書いておかないっていうのは、多用していいの? 上の書き方のほうが普通にmainメソッドに書いてくよりは便利かな〜と思ったから聞いてみまひた。
>>624 ちっさなさンプルソースか?せめて、
new Hoge().doSomething();
pvivate void doSomething() {
}
にしとけ。
627 :
デフォルトの名無しさん :02/12/11 16:37
PERLにおける前方参照 /(\w)dad(\w)/ の$1をゲットしたいんだけどどうやるの
>>625 レスどうもです。
うっとおしいとは思いますけど、
何故そのようにしたほうがいいかを教えていただけると、なるほど!と思えるんで、
教えてくらさい。
×pvivate
○private
630 :
デフォルトの名無しさん :02/12/11 16:56
>>630 ああ、maches()唱えてからじゃないと取り出せないから注意してね。
632 :
デフォルトの名無しさん :02/12/11 17:36
>631 findでもGETできたYO!
引数 int[] data でメソッドに渡されたものを、そのメソッド内で data[i].byteValue(); とかやると cannot be dereferencedと怒られますが、これは何故なんでしょうか? (int[]をbyte[]に変換する手段は無いのかな・・・)
>>634 いや、そう大きく間違ってはないと思われ。
>>624 Hogeの初期化だけで動くものならもちろん多用してOKだと思うよ。
HogeがたとえばGUIアプリのメインフレームとかならよくあるパターンだと思う。
逆にHogeの初期化以外の処理をHogeのコンストラクタに書く必要があるときは
スマートじゃないと思う。
いま思いつく例だとコマンドラインオプション文字列の解析とか。
>>637 回答ありがとうございます。
なるほど!と思いました。(・∀・)
639 :
デフォルトの名無しさん :02/12/11 22:42
コンパイラのダウンロードの仕方教えて下さい。
>>639 ダウンロードするコンパイラのURLをブラウザに入力してエンター
641 :
デフォルトの名無しさん :02/12/11 22:53
サンは英語ばっかっりで解らないんです。
643 :
デフォルトの名無しさん :02/12/11 23:01
>>643 JBuilderには古いJDK付いてくるけど?
JDK=SDK なの?
647 :
デフォルトの名無しさん :02/12/11 23:06
>646 げ、マジ? 冗談でしょ?
>>647 正直、さじを投げた。
適当な入門書くらい読んでからきてくれ。
丸腰じゃ戦えん。
649 :
デフォルトの名無しさん :02/12/11 23:10
>>648 えーー。
そりゃないよーー。
つきあっちくらはい。
>>649 よく考えたら昔俺も英語苦手だったわ。
だから
>>651 に書いとく。がんばってくれ。
後、入門書くらいはほんと読んでください・・・。
653 :
デフォルトの名無しさん :02/12/11 23:25
654 :
デフォルトの名無しさん :02/12/11 23:29
JREって何? これだけでも教えてくらはい。 SDKの方ですよね?
VBのランタイムみたいなものだ>JRE
誰か別ネタふれよ
659 :
デフォルトの名無しさん :02/12/12 00:10
マジ話、なんでJ2SDKインストールするとJREまでインストールされるのかわからん。 LIBをJREにインストールしたいなれj2sdkフォルダにもわざわざインストールしてくれるなと思うが・・
660 :
デフォルトの名無しさん :02/12/12 00:18
>>623 java.lang.NoClassDefFoundError: javax/servlet/ServletRequest
at com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:222)
at com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:109)
at com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:89)
・・・だからcom.oreilly.servlet.MultipartRequestは識別していると思ったのですが・・
cos.jarは手当たり次第に
j2sdkのlib/ext
jreのlib/ext
Tomcat4.1のcommon/lib
Tomcat4.1のserver/lib
にいれたけどダメでした・・なぜ!?(*_*)
>>660 >java.lang.NoClassDefFoundError: javax/servlet/ServletRequest
思ってるだけですね。クラスパス通す。
例外を出しているのは、 javax/servlet/ServletRequest になっていますよ。落ち着いて。
663 :
デフォルトの名無しさん :02/12/12 00:43
>>662 落ち着いてもわからないワタクシ・・・コード見直しても悪い箇所ないっぽいし・・あるんだろうか?もう一回みてみよ・・
文字列FFを数字256に変換する関数ありますか? digitは調べたのですが、charで入力しなければならないので、F,Fは16,16と表現されます。後で掛け合わせて計算してもよいのですが、 楽な方法ないかなって思いまして。
665 :
デフォルトの名無しさん :02/12/12 01:00
1バイトの上位(又は下位)4ビットを2進数で参照するにはどうすれば良い ですか。 例えば上位4ビットが1111(2進数)ならOKとかしたいのです。
汚いコードですまん。 BigInteger b = new BigInteger("FF", 16); return b.intValue();
>>665 保守性を考えないのなら〜 &の論理和でGo〜
>>666 Integer.parseInt("FF", 16);の方が良い。
667さん、もう少し具体的にお願いできませんでしょうか? すいません。m(__)m
>>666 ,668ありがと。
あとchar型の配列をstringに直すにはどうしたらよいのでしょうか。
ごめん、String hoge=new String(Char[] char); でいけた。
誰か私の質問よろしくです。m(__)m
673 :
デフォルトの名無しさん :02/12/12 01:47
昨日からcom.oreilly.servlet.MultipartRequestの質問をしてる者ですが・・ ようするにHTMLからファイルをアップロードできればいいのですが みなさんはどうやってやってますか? JavaMailとか使った方が一般的ですか??
>> 665
boolean hoge( byte b ){
return ( (b & 0xF0) == 0xF0 )
}
これじゃだめ?
ツーかこれなにやってるかわからないなら、
>>2-20 参照汁
>>673 servlet.jarをロードしたクラスローダよりも上位のクラスローダがcom.oreillyを読み込んでいるからそうなる。
→javax.serveltからはcom.oreillyが見えるが、com.oreillyからはjavax.servletが見えない。
>cos.jarは手当たり次第に
これが最悪。
手当たり次第に置いたファイルを*全部*削除して、WEB-INF/lib だけに入れとけ
だいたいcom.oreillyなんてパッケージよく使う気になるな。あれはオライリ本買わないと使えないぞ。
ファイルアップロードなら検索すればサンプルがでてくるだろうに。
CJK互換漢字をJavaMailを使ってISO-2022-JPで送るにはどうしたらよいでしょう? MimeMessage msg = new MimeMessage(session); .... String message = " ア リ X ^ u } ~ ゥ ア ウ エ キ モ レ I "; msg.setText(message,"ISO-2022-JP"); Transport.send(msg); こんな漢字に送るともう化け化けです。
679 :
デフォルトの名無しさん :02/12/12 09:40
メソッドのstatic、非staticって奴は何によって決まるのでしょうか?
age
>>679 staticを使うか使わないかだと思ふ。
>>678 自分でISO-2022-JPに変換するってことですか??
ちょっとそれはいきなり難しくないですか??
>>679 そのメソッドがインスタンスを必要とするかだろ。
必要としない場合でも、オーバーライドできるようにしたい場合や、
どちらがいいか悩むくらいなら迷わず非static。
>>684 を見ると、自分の読解力の無さがよく分かる…。
鬱。
686 :
デフォルトの名無しさん :02/12/12 15:32
servletではなく、 classから、JSPをdispatchするってことはできるのでしょうか?
687 :
デフォルトの名無しさん :02/12/12 17:12
688 :
デフォルトの名無しさん :02/12/12 19:52
スレッドを停止、開始を行うにはどういった方法がBESTですか?
690 :
デフォルトの名無しさん :02/12/12 20:12
>>689 ありがとうございました。
それにフラグ一つつけてあげればできそうです。
>>690 synchronizedも忘れずにチェックしなされ
忘れてました・・・ 仕方ない、今日はこれ調べよう・・・
↑ブラクラ
GOUKEI 2 0 4 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1 6 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 たとえばこのようなファイルがあり GOUKEIの隣の2がすべてのオブジェクト数を表しているとします 次の行の0 4ってのが1個目のオブジェクトで[4][3]の行列を用意、 その次がデータで その後にある1 6が2個目のオブジェクトが[6][3]の行列を用意してます 4や6などこれはnumberとしてます。 それで実際はGOUKEIの隣の数もファイルによって違い、オブジェクトの 中身も違ってきます。 続く〜
続き〜 double kekka[][]; int number; .... //とりあえずgoukeisuu(ここでは2)を最初に読む for(int i=0;i<goukeisuu;i++){ //i番目のオブジェクトのnumberを読む kekka =new double[goukeisuu][3]; for(int a=0;a<number;a++){ //nextToken()やnvalなど使って1行づつ読み、以下の三つに入れていきました kekka[a][0]=... //1番最初だと0.1が入る kekka[a][1]=... //1番最初だと0.2が入る kekka[a][2]=... //1番最初だと0.3が入る } } このような感じで作っていくとkekkaの配列にはgoukeisuu回ほどnewを繰り返してしまうので ここの例でいうと[6][3]の最後のデータしか残りませんよね? 本当は kekka0は[4][3]の領域確保してデータを入れる kekka1は[6][3]の領域確保してデータを入れる みたいに別々に保持したいんですがここでどういう書き方をすればいいのかわかりません newのところを kekka(a) =new double[goukeisuua][3] みたいな感じにしたいんですがなにか良い方法とかありましたらお助けください。 よろしくお願いします。
697 :
デフォルトの名無しさん :02/12/12 22:44
必要な領域を確定させてから生成。
>>695-696 オブジェクトにした方がいろいろ良いと思うけど、
どうしても配列でやりたいなら、以下のような感じだよ。
Javaの配列は、特殊なオブジェクトであることを利用するのさ。
Object[] array = new Object[goukeisuu];
for (int i = 0; i < goukeisuu; i++) {
//i番目のオブジェクトのnumberを読む
double[][] rec = new double[number][3];
for (int j = 0; j < number; j++) {
rec[j][0] = 1;
rec[j][1] = 2;
rec[j][2] = 3;
}
array[i] = rec;
}
で、使う場合は、例えば以下のようにして
目的の配列を取り出せばいいよ。
double[][] anyrec = (double[][])array[1];
System.out.println(anyrec[5][2]);
>>700 は、
double[][][] array = new double[2][][];
としても同じだけど、3次元のまま使うのはおすすめできない。
>>699 丁寧にありがとうございましたっ!!
さっそくやってみます
ありがとうございました
703 :
デフォルトの名無しさん :02/12/13 01:13
他スレから誘導されました。 private int DatagramSocket ds; って宣言の仕方おかしいですか? Eclipseをつかっていまして トークン"ds"に構文エラーがあります。正しくは";","."です。と表示されますが、 どういうことでしょうか。
あ、解決しました。 スマソ
705 :
デフォルトの名無しさん :02/12/13 06:01
Javaの参考書で勉強しているんですが、その中のソースで ちょっと疑問に思ったことがあったので質問させてください。 public class DBAccess { /* 〜中略〜 */ // DBから書籍情報を取得する static BookData getBook(String primary_key) { BookData bk = null; // 書籍オブジェクトを生成して、書籍情報を格納する bk = new BookData(); /* 〜中略〜 */ // 生成した書籍オブジェクトを返す return bk; } /* 〜中略〜 */ } これを他のクラスから BookData bk = DBAccess.getBook(primary_key); として呼び出します。 ここで思ったのですが、DBAccess.getBook()の戻り値である BookDataオブジェクトはDBAccess.getBook()内で宣言されたものです。 ということは、 BookData bk = DBAccess.getBook();で bkにBookDataオブジェクトのアドレスが渡されているのだとすれば、 C言語流の考えだとBookDataオブジェクトはDBAccess.getBook()内で 宣言されたオブジェクトですから、DBAccess.getBook()を抜けた時点で 解放されてしまう可能性がありますよね。 ここのところどうなってるんでしょうか・・・。ご存じの方お願いします。
ああ、なんか自己解決かも (ノД` ;) static宣言してるから解放はされませんね・・・。 ごめんなさい。 質問を変えます、 BookData bk = DBAccess.getBook(primary_key); ここで参照ではなくオブジェクトのコピーをbkに渡したい場合どうしたらいいでしょうか?
>>705 まず、705の方。Javaでは強い参照が残っているオブジェクトは解放されない。
オブジェクトを受け取った方がそのオブジェクトに対して、強い参照を持っている。
706の方。Javaの場合、複製をサポートしていないクラスは複製することはできない。
708 :
デフォルトの名無しさん :02/12/13 07:09
>1 なんで基本的にsage進行なんだ.あほか.
>>705 参照と実体の区別を意識した方がいい。staticか否かは関係ないよ。
C流に言うならnewはmallocと同じ。
BookData bk という変数はDBAccess.getBook()メソッドの中でのみ有効で、
そのメソッドが終了すると無くなるけど、
bkが参照しているBookDataオブジェクトはgetBook()終了後も生き続けます。
mallocでメモリリーク起きるようなもの。ただし、Javaではどこからも参照されなく
なったオブジェクトは自動的にそのうち廃棄される。
getBook()メソッドでは毎回別のBookDataオブジェクトを作っているので、
以下のコードを実行すると"違う"と表示される。
BookData bk1 = DBAccess.getBook("a");
BookData bk2 = DBAccess.getBook("b");
if( bk1==bk2){
System.out.println("同じ");
} else {
System.out.println("違う");
}
>>705 基本的に、returnで返される値は呼び出し元に戻るまで、
参照が維持されているから、GCの対象にはならないよ。
言語仕様を見てくれ。
>>706 Javaでは、複製は自分で実装することになっている。
基本的に、Cloneableをimplementsして、
clone()をオーバライドするわけだが、super.clone()で
すむと思っているヤシもいるようだけど、
そのオブジェクト固有のフィールドは自前で複製を
作る必要がある。その際、浅いコピーにするか、
深いコピーにするかちゃんと考える必要がある。
フィールドがStringとか値が書き換わらないオブジェクトなら、
浅いコピーで十分だが、setterで値が変更されてしまうような
フィールドは、影響度を検討して、深いコピーにするかどうかを
決める必要がある。
>>709 同じ値として扱うことも可能だよ。
その場合、equals()とhashCode()をオーバライドすることになる。
そのような例としては、Stringなどが代表的だね。
>>709 ごめん、コードをよく見てなかった。==で判定の場合はそうだね。
メモリ上の別な場所を参照しているから当然違うね。
JavaにはGotoはないのかよ!!
>>713 本来の使い方ではない&完全なGOTOの代替にはならない。バックジャンプできないし。
>>709 >>710 なるほど、要するに生成されたオブジェクトはどこからも参照されなくなるまで
廃棄されないってことですね。
丁寧な説明どうもです。すごく助かりました。
717 :
デフォルトの名無しさん :02/12/13 12:15
Win98SE + JDK1.3.1 です。 Frame を幾つか開いていると、 時折、モーダル Dialog が出ているかのように GUI に対する反応がなくなります。 このときには Windows の wav も鳴ります。(Toolkit の beep の時と同じ奴) Frame は、継承しつつ内部に WindowAdapter を持っている奴ですが、 酷くなると単純に main から Frame を表示するプログラムさえ同様の症状に遭います。 表示させるときは show を使っていますが、setVisible でも起こります。 これは何かのバグでしょうか? 作法のようなものが必要でしょうか? お教え下さい。
追加情報を。症状が出ている間は、 Alt + Tab のリストに、無反応な Frame が含まれなくなっています。
>>718 ごちゃごちゃ言わんとソース出した方が早くないか?
一度起こるとこれでも起こるようになるんです。 import java.awt.*; public class Tes { public static void main(String[] args) { Frame f = new Frame(); f.setSize(200, 120); f.show(); } } WinMe の PC でもたまに起こっています
713は中卒
723 :
デフォルトの名無しさん :02/12/13 15:33
>>721 多重にネストしたループから脱出するためのbreak,continueのラベル移動以外で、
goto使う必要なんてあんの?
724 :
デフォルトの名無しさん :02/12/13 17:41
notify(),wait()を使ってスレッドの停止、再開を行う場合は スレッドが一つしかない場合では停止はできても再開はできないのでしょうか? キー入力でそれを実現したいのですが・・・
>>724 >キー入力でそれを実現したいのですが・・・
???
>>724 そらそうだな。キー入力待つ奴を別スレッドにするしか。
っていうか空ループとかじゃだめなの?
>>726 そのてがあったかあぁぁぁ!!!!!!!!!
ありがとうございました。早速試してみますね。
728 :
デフォルトの名無しさん :02/12/13 19:34
どなたかjava.awt.MenuBarの背景色の変更の仕方を教えてください。 出来ないのなら出来ないといってください。
730 :
デフォルトの名無しさん :02/12/13 19:58
Jtreeで最初から子ノードが展開された状態で表示したいのですが どうすればよろしいでしょうか?
731 :
デフォルトの名無しさん :02/12/13 21:27
>>729 それはもう見ました。
それっぽいメソッドがないんで、何か他に方法が
あるのかと思って聞いてるんです。
わかるんなら教えてください。
てゆーかその中に変更する方法があるんですか?
答え知っててそのリンク貼ってんの?
>>731 >それっぽいメソッドがないんで、何か他に方法があるのかと思って聞いてるんです。
できないことをわざわざ書く奴はいない。アホか。と。
733 :
デフォルトの名無しさん :02/12/13 21:53
>>732 まじで出来るの?
何回読んでもわからないんですけど。
親クラスにも見当たらないし。
勿体つけないで教えてください。(とか書くと教えないんだろーなー)
てか出来ないんでしょ?
736 :
デフォルトの名無しさん :02/12/13 22:05
質問です アクションリスナを載せた内部クラスで 初期化した変数を別のクラスに参照渡したいのですが どうしたらいいんでしょうか?宜しくお願いします。
IEのツールバーにある戻るボタンのように履歴を実装したいのですが、 何か参考になるものがあったら教えてください。
739 :
デフォルトの名無しさん :02/12/13 22:21
クラスパス上に有るクラス一覧を 取得する方法はないでしょうか? パッケージとインターフェイスのみがわかっている状態で、 そのインターフェイスを実装するクラスをすべて 取得したいのです。 宜しくお願いします
>>739 環境変数読んでそのディレクトリFile#findで列挙すれば?
最近迷惑メールの中で差出人が自分になってることが多いのですが、それはどうなってるのですか!? なんか業者はそうなるようなコマンドとかスクリプトとか使ってるのですか? からくりを教えてください!!
配列についての疑問なんですが・・・。 int[] test = new int[3]; とやってから適当な数値を3つ放り込み、 classA.hoge( test ) で classAの中にある public void hoge(int[] data ) { System.out.println( data.length ); } を呼び出すと、3 が表示されるかなと思ったんですが、出てきたのは 13。 呼び出す前はちゃんと 3 なのですが、何故なんでしょうか・・・。
>>743 ちゃんとできるよ。あなたのソース見せて。
import java.util.*;
public class hoge {
public static void main (String args[]) {
int [] test = new int[3];
for (int i = 0; i < 3; i ++) {
test[i] = i;
}
System.out.println(test.length);
hero hero1 = new hero();
hero1.moe(test);
}
}
class hero {
public void moe (int [] data) {
System.out.println(data.length);
}
}
745 :
デフォルトの名無しさん :02/12/13 22:49
>>740 その方法も考えたのですが、jarとかwarになったときに・・・
でもjava.util.zipを使えって話にもなりそうだが・・・
やっぱり外部ファイルにクラス名を記述するのがいいのかな
>>746 >jarとかwarになったとき
はクラスパスにファイル名まで指定しなくてはいけない。よって問題なし。
>>747 ん?結局はやっぱりzip解凍してクラス取得ですか?
749 :
デフォルトの名無しさん :02/12/13 23:04
>>744-745 ありがとうございます。
すみません、13じゃなくて、3にデバッグ用の文字がくっついてたようです。
お騒がせしました・・・ケーブル抜いてルータ投げて逝ってきます。・゚・(ノД`)・゚・。
>>750 PCは下記住所に送ってくれ。大事にする。
>>740 環境変数だと実行系依存するから危なそう。システムプロパティのほうが
まだましっぽいけど、例えばSunのJ2REだとjava.class.pathにはユーザクラス
パスしか入っていなくて、ブートストラップクラスパスとかはsun.boot.class.path
に入るからこれまた実行系依存だね。だから例えばBeanShellなんかがクラスを
探す方法はSunのJ2REに限定してたきがする。なにか汎用的な方法があったら、
私も知りたいので誰か教えて。
753 :
デフォルトの名無しさん :02/12/13 23:21
なんかこのままスルーされそうなんで
>>736 を宜しくお願いします。
>>753 つぅか意味不明でみんな無視を決め込んでるだけかと。
>>753 「内部クラス」と「他のクラス」を具体的に示したほうが分かりやすいと思う
>>752 こういうのってjakartaあたりで作ってないのかな。
757 :
デフォルトの名無しさん :02/12/13 23:31
>>754-755 なるほどwすみませんでした。例えば
class A{
int i;
---
class B implements ActionListener{
---
i=100;
}
のiを別クラスのclassCで使いたいのですが…
初心者なもんでこれ以上うまく説明できないので
理解できた方は翻訳お願いします(ノД` ;)
>>757 class A{
public int i;
〜
new B().iをCに渡せばいいんじゃない?
>>752 ちなみにJava CookBookという本にはこう書いてある。
Q.環境変数はどうやって取ったらいいですか?
A.やるな。
>>730 ち、しかたねぇな。
自分で展開してから表示するしかない。
リスナーとか設定する前にやれよ。
int rc = tree.getRowCount();
for (int i = 0; i < rc; i++) {
tree.expandRow(i);
rc = tree.getRowCount();
}
>>760 環境変数とかってあまり推奨されてないよね。
Class[] classes = HOGE.getClasses("java.lang.*");
みたいなのがあればいいけどなー
763 :
デフォルトの名無しさん :02/12/13 23:50
レス有り難うございます。 new B().iですか。それで出来たんですね。前やったときは 出来なかったのでもう一度ためしてみます。 ActionListenerを載せた内部クラスでiを初期化したから Aのiにもその値が入ると思っていました。 なんでiをBで初期化したあとでnew A().iしてもnullなんでしょうか? 自分でもなにいってるかわからない・・・意味不明ならスルーしてください。 とりあえず有り難うございました
764 :
デフォルトの名無しさん :02/12/13 23:51
>>761 丁寧な答え本当に有難うございます!
助かりますた.
環境変数すら拾えないって不便だねえ。 環境変数LANGでロケールを切り替えたいんですが?みたいな。
>>765 Javaですることでもあるまい。
と、言うかアプリが勝手に環境変数いじるのはどうよ?
>>765 同感。でもロケールは得られたような・・・
環境変数もそうだけど、Javaのこのへんの無理な仕様は、
小事にこわだって大事をおろそかにする馬鹿の典型だね。
>>760 で、そのやるなって理由が環境変数という仕組み自体が実行系依存だから...
なのよ。ちなみにいま調べてみたけど、j2reだとデフォルトクラス
ローダはsun.misc.Launcherの内部クラスで、URLClassLoaderの
サブクラスになってる。sun.misc.Launcher自体のメソッドからも、
URLClassLoaderのメソッドからも検索パスの取得はできるけど、これなら
システムプロパティからでも実行系への依存度はかわらないね。
>>763 プリミティブ型だとiはnullにはならないよ。
ActionListenerって使ったことないから分らないけど
Bのフィールドが初期化されたことをAは知ることできないんじゃないの?
環境変数に依存してたらマルチプラットフォームは実現できないでしょ。 Cみたいに環境移行するたびにコンパイルしなおさなければいけないし。 でもロケールは取得できるよ。
環境変数に依存してたらマルチプラットフォームは実現できないでしょ。 Cみたいに環境移行するたびにコンパイルしなおさなければいけないし。 でもロケールは取得できるよ。
Javaでマルチプラットフォームってネタだろ。 誰もそんなこと期待してないし。
もしかして、771までの一連の書きこみのは、 クラスパスにあるクラスの情報取ろうとしてるものやったんすか? なんでまた、環境変数の話題に?
>>773 クラスパスは多くの環境では環境変数に登録されてます。
別に使いたいやつは、java.lang.System.getenv(String name) 使えばいいんじゃねーの。可搬性は自分で判断することで他から いろいろ言われるすじあいじゃねー。って、Sunのコンパイラからは 文句いわれるか。
>>774 最近ブートストラップパスは環境変数で指定されないから...
話がループしているね。
>>772 私は普段からUNIX上で稼働するシステムをWindows上で開発してますが何か?
WinでearファイルにしてUNIX上にデプロイしてますが何か?
>>772 私は普段からUNIX上で稼働するシステムをWindows上で開発してますが何か?
WinでearファイルにしてUNIX上にデプロイしてますが何か?
おいらも開発はWindowsだけど 実行環境はLinuxだな。 文字コード関係が氏ぬほどウザイ。 んで、結局クラスパス上のクラスを 不完全な名前で取得する方法ってないのかな。
780 :
デフォルトの名無しさん :02/12/14 00:32
earファイルって何ですか? jarとかwarの仲間?
クラスファイルの置き場所が知りたいの? クラスパスが通っているクラスが知りたいの? 後者なら、別の手もあるんじゃない?
>>780 J2EEアプリケーションのアーカイブ形式。
>>781 クラスパス上にあるクラスをクラス型で取得したいのです。
具体的に何をやりたいのかというと、
特定のパッケージ内で特定のインターフェイスを実装した
クラスを全取得したいのです。
取得するときは、パッケージ名とインターフェイス名は
知っている状態で、クラス名は何も分らないという状態です。
>>784 Javaのクラスって、必要になったときにクラスローダで
動的に読み込まれるはずだから (ネットワーク越しとかも可)、
784 そのままの目的はたぶん達成できないだろうね。
"てすと" == "てす" + "と" はどうしてtrueになるんですか? String str = "てす"; "てすと" == str + "と" はfalseになりました。
>>787 >"てすと" == "てす" + "と"
コンパイルの時点で結合されて
"てすと" == "てすと"
にされてるんじゃないか?
>String str = "てす";
>"てすと" == str + "と"
>はfalseになりました。
final String str ="てす";
"てすと" == str + "と"
にすると true になるみたいだし。
>>787 コンパイラの実装による。
コンパイラが最適化を行った結果そうなることもあるが言語仕様としては
そうなることは保証されていないのでそういった動作を前提にしたプログラムを
作らないように注意しよう。
>>787 コンパイラの実装による。
コンパイラが最適化を行った結果そうなることもあるが言語仕様としては
そうなることは保証されていないのでそういった動作を前提にしたプログラムを
作らないように注意しよう。
>>782 サンクスコ。
ソースを落としてきたので見てやってみます。
目的って言うのは、あるインターフェイスを実装している
クラスを実行したいのです。。。
プラグインみたいな使い方が出来ないかなと思って・・・
Exception in thread "main" java.lang.NoClassDefFoundError: コンパイルした後、実行したらこんなエラーが出てしまいます。 わかる方は、お願いします。
なにぶん初心者なので、、、、
>>794 書いてあること読めないのは初心者以前の問題だろう。
訳してみると、クラスの定義が見つからないですな? スタートアップJavaとかいう本に、付属してるCDの中のサンプルを コンパイルして、実行してみたのですが、このようなエラーが出たので 聞いてみたのです。
どう訳したらそんな日本語になるのだろうか。
ていうか
>>1 を読めという
>>793 の親切なレスを無視しているあたり、中学生?
>>797 >>1 読めっていわれても読めませんか?
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』
>>2 二度と来るな。氏ね。
そして「釣れた」という。
ツレタ(・V・)
釣れたw
おおー!こんな所に!気が付かなかった。すまそ
>>798 793では、793と1があほだと言っている、と勘違いしたのでしょう。
>>805 名前かくさんでいいぞ(*´・ω・`*)イヨウ
>>805 そのとうり!動きましたありがとうございました
808 :
デフォルトの名無しさん :02/12/14 13:38
809 :
デフォルトの名無しさん :02/12/14 13:47
>>808 ただの「.zip」ファイル。
べらぼうなファイル数なんで解凍場所気をつけれ。
810 :
デフォルトの名無しさん :02/12/14 14:02
ってかこれSDKじゃねーじゃん いらんもんDLしてしもた〜〜
namazu等で検索できるようにしておくとgood
812 :
デフォルトの名無しさん :02/12/14 14:36
Swingで質問します JBottun等をクリックした時にブラウザを開き設定されたURLへ ジャンプする機能をつけたいのですが、方法がわかりません。 よろしくおねがいします
813 :
デフォルトの名無しさん :02/12/14 14:58
815 :
デフォルトの名無しさん :02/12/14 19:58
基本的なことのような気がするけど、分からないのでお助け下さい。 以下のようなことやりたいんですけど、コンパイルが通りません。 まぁ、確かに危ういことやってるような気もするのですけど、 どういう理由でコンパイルが通らないのかがよく分かりません。 こういう風に、条件によって配列を異なる初期化をしたいとき、 どうするのがいいんでしょう? int[] hogehoge( int a ){ if( a == 0 ){ int[] b = { 40,90,20, 0, 〜〜〜 }; } else if( a == 1 ){ int[] b = { 30,30,20, 0, 〜〜〜 }; } return b; }
816 :
デフォルトの名無しさん :02/12/14 20:29
>>815 ありがとうございました。よくわかりました。
>>815 コンパイルエラーでエラー内容書かない奴ってアホだと思う。
818 :
デフォルトの名無しさん :02/12/14 20:57
>>816-817 まぁそういわず……ということは、Javaの文法としてはそんなに間違って
ないのかな?
エラー内容さらしますので、よろしくお願いしますです。
--
シンボルを解釈処理できません。
シンボル: 変数 b
位置 : toroChangerCanvas の クラス
return b;
^
やってるのはiアプリです。
iアプリとかあんまり関係ないようかと思ったんでここで聞いてる次第。
関係ないよう → 関係ない内容
>>815 変数のスコープって知ってる?
ifブロックの中で宣言した変数はそのブロックの中でしか有効でない。
elseブロックも当然同じ。
変数bはメソッド変数として宣言するがよろし。つまりif〜elseブロックの外側ね。
>>815 変数のスコープって知ってる?
ifブロックの中で宣言した変数はそのブロックの中でしか有効でない。
elseブロックも当然同じ。
変数bはメソッド変数として宣言するがよろし。つまりif〜elseブロックの外側ね。
スマソ。某2ちゃんねるビューア使っているんだが、この板に限ってなぜか2重書き込みされてしまう。他意はない。
と思ったら今度は大丈夫ぽ・・・・
>>820 サンクス。
そういうことですか。理解しました。
んー、では、こういうふうにint配列を、条件によっていろんな値で
初期化するには、要素ひとつひとつ代入するしかないってことですかね。
要素数が多くて大変めんどくさいのだけど・・・
無視かよ!!もうこねーよ!
ひらめいた。こうすればいいのか。 int[] hogehoge( int a ){ int[] c = null; if( a == 0 ){ int[] b = { 40,90,20, 0, 〜〜〜 }; c = b; } else if( a == 1 ){ int[] b = { 30,30,20, 0, 〜〜〜 }; c = b; } return c; } ちょっと回りくどいけど……これが一番いい方法かな?
827 :
デフォルトの名無しさん :02/12/14 21:42
JPDAのいい日本語ページないですか? グーグルじゃあ、ろくなのひっかかりません。
>>826 int[] hogehoge( int a ){
int[] b = null;
if( a == 0 ){
eb = { 40,90,20, 0, 〜〜〜 };
c = b;
}
else if( a == 1 ){
b = { 30,30,20, 0, 〜〜〜 };
c = b;
}
return c;
}
int[] hogehoge( int a ){ int[] b; if( a == 0 ){ b = new int[]{ 40,90,20, 0, 〜〜〜 }; } else if( a == 1 ){ b= new int[]{ 30,30,20, 0, 〜〜〜 }; } return b; } でいいだろ。javaの文法の基本。
>>828 ???
b = { 30,30,20, 0, 〜〜〜 };
のところが通らないかと……
>>829 サンクス。俺が目指していたのはこれだよ。
しかし、
b = new int[]{ 40,90,20, 0, 〜〜〜 };
なんて書き方、うちにある初心者向けの本には載ってない。
とにかく助かった。
ナマズで検索できるようになって、楽しくなってアレコレ検索してみたよ。 それで分かったんだが、JDKの日本語訳は糞だな。
>>832 プ。あれほど日本語版日本語版言っといて・・・
J2SEで使える赤外線通信用のクラスってありますか?iApply用のはあるみたいですが。 フリーのクラスでも教えてもらえるとうれしいです。
836 :
デフォルトの名無しさん :02/12/15 00:38
>>834 「Serializable=直列化」って訳は意訳だったのか?。
>>836 1:1対応させやすくてよし。
っていうかプログラミング言語に限っては直訳は多いと思われ。名前空間とか。
ハッシュ=連想配列とか変に意訳しようとして死んでる例もある。
もともと連想配列はlispのassociation listのことだったんじゃないかなあ で機能が似てるからハッシュにも名前を流用したと
英語ドキュメントがなんとか読めるのは、 日本語ドキュメント上で専門用語がほとんど直訳orカタカナ化しただけだから、 とも思える。
public String httpget(URL url) throws Exception{ int character; String s; URLConnection urlconnection = url.openConnection(); s=""; int contentlength = urlconnection.getContentLength(); if(contentlength > 0){ InputStream in = urlconnection.getInputStream(); while((character=in.read()) != -1){ s+=(char)character; } in.close(); } return s; } こんなんやってJEditorPaneにsettextしてわーい簡易httpクライアントできたー ってやりたかったんですがなんかうまくいきません。 出力されたのが <HTML><HEAD><TITLE>2?????????????????±?≫</TITLE> っていう感じになっちゃいます。 HTML表示させるにはどうしたらいいでしょう。
>>840 >InputStream in = urlconnection.getInputStream();
InputStreamReader in = new InputStreamReader( urlconnection.getInputStream() );
>>841 何が来るかわかんねーならとりあえず "JISAutoDetect" を付けておいた方が
良くないか? まぁちゃんとやるなら Content-Type や <META> タグを見るという
方がいいけど。
>>840 >s+=(char)character;
強烈に遅いはず。
844 :
デフォルトの名無しさん :02/12/15 12:09
下記のようにコードを書いたのですが、何度やっても、内部サーバエラーがでてしまします。 セッションのテストをしていて、1回目の訪問には「aaa」を返して、更新するとそれ以降、「bbb」を返すというようにしようとしてます。 どこが問題かわかるでしょうか?? 『jsp』 <%@page contentType="text/html; charset=Shift_JIS"%> <jsp:useBean id="sess" class="jspbean.JspBean" scope="session" /> <html> <head><title>JspBean</title></head> <body> <%= sess.getset() %> </body> </html> 『bean』 package jspbean; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class JspBean { private String sval = "aaa"; JspBean(){} public String getset(){ if( sval.equals("nothing") ){ sval ="bbb"; return "nothing"; }else{ return sval; } } }
845 :
デフォルトの名無しさん :02/12/15 12:14
844です。 すみません。『bean』の下の方の部分間違えました。 正しいのです。↓ private String sval = "aaa"; JspBean(){} public String getset(){ if( sval.equals("aaa") ){ sval ="bbb"; return "aaa"; }else{ return sval; } } }
で、どんな例外が出てるんですか?
847 :
デフォルトの名無しさん :02/12/15 12:28
こんな例外です。 root couse java.lang.InstantiationException: class jspbean.JspBean : java.lang.IllegalAccessException: Class java.beans.Beans can not access a member of class jspbean.JspBean with modifiers ""
>>845 コンストラクタをpublicにして試してみて。
849 :
デフォルトの名無しさん :02/12/15 13:16
>>845 ありがとうございます。できた。
たぶん、できないだろうと思ってたんだけど、
コンストラクタにpublic付けないだけで、jspからアクセスできなく
なるんですね。サンクス。
850 :
デフォルトの名無しさん :02/12/15 13:44
12月からJAVAを始めた新人です。 素朴な疑問ですが、教えてください。 ResultSetで取り出した項目「処理年月日」('20021215'のように入っています)を 文字列から数値型へ変換するのに int SyoriYmdint = Integer.parseInt(rs.getString("SYORI_YMD")); とした場合、結果は8桁の数値になると思いますが、これはint型の桁数を 超えてしまうのでダメでしょうか?
>>850 intの桁数って何じゃらほい?
intは31bit分の正の整数を扱えます。
852 :
デフォルトの名無しさん :02/12/15 14:09
すいません。short型と間違えてました。
853 :
デフォルトの名無しさん :02/12/15 15:27
byte a; が16進の0xF0から0xF9の範囲内かチェックするので、 if (a >= 0xF0 && a <= 0xF9) としたのですが、うまく判定されません。 どこが問題でしょうか?
こんにちは、 ほんとに初心者でプログラム組んだ事無いんですが、この度javaを勉強してみたいと思いました。 本屋に行ってjavaの本を一冊と思いましたが多すぎてよくわかりませんでした。 そこで、ここにいる皆さんが初めてjavaをやるときに買った本をお聞きしたいです。 どうか宜しくお願いします
>>854 Sunの売れ残りの本を教科書として買わされた。
でも、さすがオフィシャルで一通りのことは書いてあった。
はっきり言って自分で読んでわかりやすい本。来れにつきる。
856 :
デフォルトの名無しさん :02/12/15 15:35
>>853 よくわからんが・・・単純に1バイトが0〜9の範囲か聞くんじゃダメなのかな?
858 :
デフォルトの名無しさん :02/12/15 15:39
859 :
デフォルトの名無しさん :02/12/15 15:41
class a{ public static void main(String args[]) { String str="Hello"; String stru=str.toUpperCase(); String strl=str.toLowerCase(); System.out.println("元の文字列"+str+"です"); System.out.println("大文字に変換した文字列"+stru+"です"); System.out.println("小文字に変換した文字列"+strl+"です"); } } どうですか?
860 :
デフォルトの名無しさん :02/12/15 15:43
853です。 00Q というような文字列を1byteずつ取り出して判定しています。 1byte目は0なので、これは16進で0xF0なのでokだとおもうのですが、 条件式のelseでエラーになってしまいました。 ちなみに、その内容をSystem.out.printlnで見たところ48となってました。 (何のコードだろう?) 上記例だと、00Q が 48 48 81 ですべてエラーとなっていました。
>>859 public class aの方がいいよ。
>>860 間違いなく'0' == 48ですけど。
863 :
デフォルトの名無しさん :02/12/15 15:47
F0ではないのですか?
865 :
デフォルトの名無しさん :02/12/15 15:58
元データが汎用機(富士通?)からくるのです。 それは符号付10進?というものらしくて、123なら F1 F1 C3 とか -456なら F4 F5 D6 とかはいっています。 これがそのまま、ORACLE上の文字列に入っており、数値の判断をしたいのです。 うーん。。。
866 :
デフォルトの名無しさん :02/12/15 16:04
System.out.println("Help me !"); System.err.println("Help me !"); 両者の違いを教えてください。
869 :
デフォルトの名無しさん :02/12/15 16:41
何度も申し訳ありません。284を見た上での質問です。 865に書いたデータが実際ORACLE上では、00Qといったように入っています。 これを、byte a[]; 格納後、1byteずつ取り出して、数値チェック(0xF0から0xF9の範囲内かなど)しています。 if (a[i] >= 0xF0 && a[i] <= 0xF9) としたのですが、うまく判定されません。 どこが問題でしょうか?
>>869 だからJavaタンかSQLタンが親切にASCIIに変換してくれてるんだと思われ。
>>868 標準出力と標準エラー出力の違いを教えてください。
言葉が違うというくだらない答えは却下します。
>>871 標準出力:処理結果などを出力する場合に使用
標準エラー出力:主にエラーを出力する場合に使用
共にデフォルトではコンソール(ディスプレイ)に割り当てられている。
リダイレクトでファイル/スペシャルファイルにアサイン可能。
>>872 用途の違いだけなのですか?
技術的(仕組み的)には変わらないのですか?
両方とも
共にデフォルトではコンソール(ディスプレイ)に割り当てられている?
リダイレクトでファイル/スペシャルファイルにアサイン可能?
874 :
デフォルトの名無しさん :02/12/15 17:22
>>864 似たような事で悩んでいる奴がいるもんだ。便乗して教えて下され。
漏れはコード変換で悩んでいるのだが、アスキーコードの
0が0x30とういのはわかるが、何故これが48なんだ?
876 :
デフォルトの名無しさん :02/12/15 17:28
変換テーブルとは、0x00〜0x7Fを00〜127に自力で変換するのですか?
>>874 0x30 = 3 x 16 + 0
3
x . 16
---------
18
3
---------
48
0x30 = 48
878 :
デフォルトの名無しさん :02/12/15 17:41
>>869 通りすがりですまんが、2進数でチェックすれば、何のコードかなんて気にしなくて
いい気もするが。
でもoracle上にそういう値が入っているなら同じことか?
>>841 InputStreamReaderというのを使えばいいんですか。
ありがとうございます。
>>842 getContentType();でとればいいんすね。はい。
>>843 強烈に遅いです。
BufferedReader in= new BufferedReader(new InputStreamReader(urlconnection.getInputStream()));
とやってreadlineで読み込むことにしました。今度は早くなりました。
880 :
デフォルトの名無しさん :02/12/15 18:05
>>878 oracleにはいっている値を16進で見ようが2進で見ようが同じでは?
>>879 StringBufferを使うともう一寸速くなるかもな。
(コンパイラによっては最適化してくれるのか、これ?)
>>881 つぅか内部は全然違うことしてると思われ。
ないぶはだいぶちがう。
>>869 つまり、Oracle上はEBCDICで、RusltSetからgetBytes()するとASCIIが返ってくる
ということでよろしいか。それはOracleのJDBCドライバが自動コード変換を
行っているものと思われる。(NLSがらみね)
で、どうするかだけど、今回たった30文字程度なんだから、自前で変換すれば
すむんじゃないの?
JavaにEBCDICのエンコーディングが用意されていれば、文字列にして
getBytes(エンコーディング名)で取り出すことができそうだけど、
あるのかどうかわからんし、、、。("Cp1026"あたりだろうか。)
>>884 >RusltSetからgetBytes()するとASCIIが返ってくるということでよろしいか。
よろしいかもへったくれも結果がそう語っている。
>>886 でも、それを否定すると説明が付かんぞ。
Oracle用JDBCドライバの仕様書を読むしかないんでは。 884の中で仮定されてるのはそこだけだよね。
889 :
デフォルトの名無しさん :02/12/15 19:27
>>869 コード表見ながら、作ってみた。
今回は、こんなので十分じゃないかな。
public static int convertToInt(byte b) throws Exception {
switch (b) {
case 0x30: case 0x7B: case 0x7D: return 0;
case 0x31: case 0x41: case 0x4A: return 1;
case 0x32: case 0x42: case 0x4B: return 2;
case 0x33: case 0x43: case 0x4C: return 3;
case 0x34: case 0x44: case 0x4D: return 4;
case 0x35: case 0x45: case 0x4E: return 5;
case 0x36: case 0x46: case 0x4F: return 6;
case 0x37: case 0x47: case 0x51: return 7;
case 0x38: case 0x48: case 0x52: return 8;
case 0x39: case 0x49: case 0x53: return 9;
default:
throw new Exception();
}
}
public static boolean hasMinusSign(byte b) {
switch (b) {
case 0x7D: case 0x4A: case 0x4B: case 0x4C: case 0x4D:
case 0x4E: case 0x4F: case 0x51: case 0x52: case 0x53:
return true;
default:
return false;
}
}
890 :
デフォルトの名無しさん :02/12/15 19:52
つーか、単純に取り出した1バイトごとにASCII→EBCDIC変換すりゃいーじゃん。
>>890 今回の目的はEBCDICにすることじゃなくて、数値判定したいんだろ?
ASCII->EBCDIC->数値では無駄と思われ。
>>892 ASCIIで"11Q"と書かれていて、これが118とすぐ分かれば問題ないが?
>>893 853です。
00Q というような文字列を1byteずつ取り出して判定しています。
1byte目は0なので、これは16進で0xF0なのでokだとおもうのですが、
条件式のelseでエラーになってしまいました。
ちなみに、その内容をSystem.out.printlnで見たところ48となってました。
(何のコードだろう?)
上記例だと、00Q が 48 48 81 ですべてエラーとなっていました。
895 :
デフォルトの名無しさん :02/12/15 20:10
>>892 だからASCIIで判定してるやん。(と、突っ込み鋭くあごも鋭い・・・)
896 :
デフォルトの名無しさん :02/12/15 20:14
>>894 議論の内容理解してるか?
F0ってのはEBCDICコードでの話。ASCIIなら0x30
897 :
デフォルトの名無しさん :02/12/15 20:17
質問者のif文ロジックを生かすなら、取り出したbyteをEBCDICに変換する 方法を教えてやるのが一番簡単な方法じゃないの? この後、EBCDIC使って何かしたいのかも知れないし。 たぶん、この人276と同一人じゃないかな?
898 :
デフォルトの名無しさん :02/12/15 20:19
>>894 >>889 を使ってみろ。
if文で書き直せば速くなるぞ。
符号は配列の最後のバイトにしかないので、そこだけ相手にすればOK
残りのバイトは、& 0x0Fで十分だぞ。
>>897 ASCII->EBCDIC変換にif文なんていらないだろ?
256のbyte配列だけでOKだが?
>>899 なる。数字だから嫌でも1;1対応だもんな・・・。
901 :
デフォルトの名無しさん :02/12/15 20:37
符号つきゾーン10進って、、、、懐かしいww これって確かCOBOLだとS9(5)とかってやつだよね。 だとしたら、たとえば0123Qとか入っていたら、0123まではそのまま数字 で、最後のQだけ見ればよいのでは。つまり最終桁以外は見えてる数字そのものということ。 Qは-7だから、01237のマイナス、すなわち-1237ということでokですか。>皆様
QはEBCDICで0xD8だから、-8じゃないの?
903 :
デフォルトの名無しさん :02/12/15 20:54
何か訳わからなくなってきたぞ。 QはASCIIの0x51ですよね。 これを889さんの記述に当てはめると-7ですよね。
>>903 バグです。2つのコード表比べながら書いたから、ミスった。
0x51, 0x52, 0x53ではなくて0x50, 0x51, 0x52だな、スマソ。
905 :
デフォルトの名無しさん :02/12/15 21:10
ちなみに889さんの表は左の列がプラス0から9、右の列がマイナス0から9 だと思うのですが、真ん中の列は何?(恥ずかしい質問スマソ
906 :
デフォルトの名無しさん :02/12/15 21:19
907 :
java入門 :02/12/15 22:33
908 :
java入門 :02/12/15 22:34
909 :
デフォルトの名無しさん :02/12/15 22:35
初歩的な質問ですが、よろしくお願いします。 JavaでAWTやSWINGを使ってアプリケーションを作りたいと思っているのですが 作成したアプリケーションを、アイコンをWクリックして起動させることは可能なのでしょうか? よろしくお願いします。
912 :
デフォルトの名無しさん :02/12/15 22:57
>>905 最後尾バイトは符号をかねていて、マイナスなら0xD?だが、
プラスなら0xC0なのだ。
文句があるなら、ゾーンBCD決めたIBM?のヤシにいってくれ。
914 :
デフォルトの名無しさん :02/12/16 00:54
途方に暮れてます。 すみませんが、どなたか教えて頂けませんか? public class Box { private static int data; public Box(){ } public static int getData() { return data; } public static void setData(int data) { Box.data = data; } } とやっておいて、
915 :
デフォルトの名無しさん :02/12/16 00:55
import java.util.Enumeration; import java.util.Vector; public class VectTest { public static void main(String[] args) { Vector dataBox=new Vector(); for(int i=0;i<100;i++){ Box b=new Box(); b.setData(i); dataBox.addElement(b); } Enumeration ea=dataBox.elements(); while(ea.hasMoreElements()){ Box la=(Box)ea.nextElement(); System.out.print(la.getData()+" "); } } } を実行すると、99が100個並びます。 1 2 3...とする為にはどうしたら良いでしょうか?
916 :
デフォルトの名無しさん :02/12/16 01:10
>>914 class Boxのdataからstaticをはずしてみてください。
>> 916 早速ありがとうございます。 2行目の事でしょうか? はずすと、getter, setterの所で 「static 参照は、非staticフィールド dataではできません。」 というコンパイル・エラーが出ます。
>>917 説明が足りなかった。
Boxからstaticを全部はずしてみて。
>> 918 ありがとうございました!!!
920 :
デフォルトの名無しさん :02/12/16 01:53
Web上でアプレット見ようとするとclassが見つからないと怒られてしまいます(;;) ・appletviewerでは見れました。 ・jviewerではダメ(><) ・バイナリモードにしてます。 ・クラス名の大文字小文字を間違えたりはしてません。 何か他にも考えられる原因はあるでしょうか?
921 :
デフォルトの名無しさん :02/12/16 02:03
>>920 applet単体だけのプログラムなの?
他に必要なクラスにクラスパスが通っているかな?
922 :
デフォルトの名無しさん :02/12/16 02:17
JPDAだせ。
923 :
デフォルトの名無しさん :02/12/16 02:27
924 :
デフォルトの名無しさん :02/12/16 04:27
>>920 ブラウザで見るとき古いvmが立ち上がってるとか。
>>920 HTMLのコードベースの記述あたりのブラウザ間の解釈の微妙な違いがくさい気がする。
926 :
デフォルトの名無しさん :02/12/16 06:00
自分の家でコンパイルしたクラスファイルを 友達の家で実行できますか? できるようなことをきいたのですが。
>>926 友達の家に JRE があって、
コンパイルしたクラスファイルを友達の家に持っていけば実行できます。
>>920 JDK 1.4 でコンパイルして IE 標準の JVM で実行させようとしているに
一票。-target 1.1 を付けてコンパイルしてみ。
>>926 実行するにはJRE(ランタイム)が必要です。
友達の家で実行するみたいに不特定多数に配るのが目的なら
ランタイムがいらないDelphiを使ったほうが良いですよ。
930 :
デフォルトの名無しさん :02/12/16 08:00
すみません。JREってなんですか? 友達も自分も普通の一般環境?でJAVAしてます。 大丈夫ですか?
>>930 友達もやってるならJREは入っていると思いますが
バージョンが違うと不具合が出たりします。
しかも新しいのを入れると前のものに不具合が
発生したりして困る可能性があります。
932 :
デフォルトの名無しさん :02/12/16 08:05
>>931 そうですか。
だったら、ソースファイルだけ持っていくことにしますね。
ありがとう。
>>929 Java Runtime Environment、 Java実行環境
「普通の一般環境」って言われてもなぁ…
935 :
デフォルトの名無しさん :02/12/16 08:36
936 :
デフォルトの名無しさん :02/12/16 12:00
Math.roundっていうのは四捨五入なんでしょうか?
937 :
デフォルトの名無しさん :02/12/16 12:48
返り値が配列になっているメソッドから結果を受け取るには 受け側で配列を用意しないといけませんが、それには元々長さを指定して 生成しないといけないですよね。 ピッタリの長さで受け取るのは無理なのでしょうか?
メソッド内で配列作れば?
939 :
デフォルトの名無しさん :02/12/16 12:58
>>937 もともと長さを指定する必要は無いはずだが。
補足説明をすると、配列を宣言する時にメソッドから配列を取得すれば大丈夫。 でも、これだと宣言したスコープの中でしか使えないから、スコープの外で配列を 使用できないかな。
>>928 それでした。神認定!
他の皆さんもありがとうございましたm(_)m
>>940 そんなわけない
return new String[] {"1ch", "2ch", "3ch"};
何の問題もなく使える。
>>940 >でも、これだと宣言したスコープの中でしか使えない
… C++ と勘違いしてませんか?
>>936 Math.round()は (long)Math.floor(a + 0.5d) らしいから、ほとんどの場合に四捨五入になる。
ただ、double自体に10進2進の変換誤差が出てくるので、シビアな場面では
最初から最後まで String + BigDecimalで計算するのが無難。
System.out.println(0.6 + 0.3 - 0.4);
System.out.println(Math.round(0.6 + 0.3 - 0.4));
System.out.println(new java.math.BigDecimal(0.6 + 0.3 - 0.4));
>>937 public int[] hoge(){
int[] x = {1,2,3};
return x;
}
受ける側
int[] xx = hoge();
とか
int[] xx;
xx = hoge();
で大丈夫。
ついでに、 object xx = hoge(); でもいけたような気がする。 リフレクトにあるArrayクラスを使えば そのまま値も取得できた気がする。 上記の例で言えばIntegerで取れるんじゃなかったかな。 間違ってたらスマソ。 あと、スコープ云々は関係ない話と思われ
>>939 ありがとうです。配列の実体が戻ってくるので、受けるときにnewする必要はないんですね・・・。
hoge()がint[]を返すとき、↓だと信じていました。・゚・(ノД`)・゚・。
obj指向を勉強し直してきます。
public static void main(String[] args) {
int[] funi; = new int[?];
funi = hoge();
}
>>947 そんなんOO勉強しても何の意味もない罠(w
とりあえず、逝ってらっしゃ〜いヽ(´ー`)/
949 :
デフォルトの名無しさん :02/12/17 02:11
すいません、一個質問させて欲しいのですが 今Linux上でCSVファイルを生成しようとしているのですが Windowsでは文字化けしないのにLinuxだと文字化け してしまうんですがどうしたらいいでしょうか? try { java.io.FileWriter r = new java.io.FileWriter( "/usr/local/uma.csv" ); String str1 = "ウマー"; String str2 = "マズー"; String str3 = "クマー"; r.write( str1 + "," + str2 + "," + str3 + "\n" ); r.close(); }catch( Exception e ) { e.toString(); } Stringの変数を str1 = new String( str1.getBytes("8859_1"), "JISAutoDetect"); str2 = new String( str1.getBytes("8859_1"), "Shift_JIS"); とやっても化けてしまいます。 どうやったら回避できるか教えてください〜
>>950 try {
OutputStreamWriter w = new OutputStreamWriter(
new FileOutputStream( "/usr/local/uma.csv" ), "SJIS");
String str1 = "ウマー";
String str2 = "マズー";
String str3 = "クマー";
w.write( str1 + "," + str2 + "," + str3 + "\n" );
w.close();
} catch( Exception e ) {
e.printStackTrace(System.err);
}
とかではどう?
>>950 いろいろ小細工をする前に、まずデフォルトエンコーディングを
確認してごらん。
[既定コンストラクタ]ってなんですか?
>>953 デフォルトコンストラクタとも言います。
プログラマーが自分でコンストラクタをソースに書かなくとも、
Javaのシステムが最初から用意してくれているコンストラクタのことです。
http://www.bohyoh.com/Java/FAQ/FAQ00002.html このデフォルトコンストラクタというシステムがあるおかげで、
たとえコンストラクタを一つも記述しないクラスを作ったとしても、
そのクラスのインスタンスを生成することができるわけです、
↓コンストラクタはソース中に記述されていないがコンパイル可能。
public class Sample {
public static void main(String[] args) {
Sample sam = new Sample();
}
}
>>954 丁寧な回答ありがとう。
google してもなぜかほとんどヒットしなかったのよね。
「デフォルトコンストラクタ」という名前で覚えておきます。
>>951 952
ありがとうございます!
稼動しました〜、今回のようにエンコードしながらって場合には
OutputStreamWriterを使うんですね〜・・・
勉強になりました
nioパッケージって何に使うの? あんまり使い道が浮かばないよ。 活用事例とかある?
962 :
デフォルトの名無しさん :02/12/18 09:07
appletでタイピングソフトを作りたいのですが参考になるソースどっかにありませんか?? 教えてください。
>>962 たまには自分の頭で考えてみたらどうだい?
964 :
デフォルトの名無しさん :02/12/23 23:32
で、どうすればいいのかな?
965 :
デフォルトの名無しさん :02/12/23 23:35
>>964 具体的なイメージが浮かばないなら、
まずはJavaの入門書や入門サイトなどをみて勉強するといいかも。
>>965 それ以前の問題だと思うけどな。
まぁ、一つネイティブラングイッジな言語作ってれば便利だわね。
タイピングが成功していったら脱いでくのはどうかなあ?
成功するとゴスリングが一枚いちまい、 Javaティーシャツを脱いで逝くタイピングゲームきぼんぬ。
>>968 プレイヤーが?
って言うのはジョークで、
>>966 >それ以前の問題だと思うけどな。
何で?
アドレスきぼんぬ
973 :
デフォルトの名無しさん :02/12/24 01:24
はじめに public static void main(〜〜〜 云々って毎回書きますがこれは 何を意味してるのでしょう? まだ勉強し始めて3日ぐらいなのでわかりません おしえてください
974 :
デフォルトの名無しさん :02/12/24 01:28
おいおまいら、今売ってる JavaWorld、付属の CD-ROM に 2001/12〜2002/11 までの 記事が全部 PDF で入っとるぞ! 廃刊決定でとりあえず手持ちのネタを金に換える策に走ったか…
>>973 public : 他のクラスから呼び出せる。
static : 静的である(インスタンスをnewしないでそのまま「クラス名.メソッド」で呼び出せる)←これをクラスメソッドという。
void : 戻り値がない。
main : java Hoge.javaで最初呼び出されるクラスメソッド。
>>975 >main : java Hoge.javaで最初呼び出されるクラスメソッド。
間違い。
java Hoge
ね。
(int)変数 で変数に少数が入ってる場合は四捨五入されるんでしたっけ?
978 :
デフォルトの名無しさん :02/12/24 02:09
あ、切り捨てですかサンクスです。
>>975 ありがd でも書いている内容が全くわからない^^; あぅぅ
>>980 じゃあもっと簡単に書くと、君がAppというクラスを書いたとするでしょ。
そしてコンパイルするとApp.classってファイルができる。
これを、
java App [引数1,引数2...]
で起動するんだけど、
引数1,引数2...はString[]型のオブジェクトまとめられて
最初に
App.main(引数);
って呼び出される。
だから、君はAppクラスにmainクラスメソッドを作っておいてそれを受け止めるんだ。
>>982 >java App [引数1,引数2...]
java App [引数1 引数2...]
ね。
100%既出な質問なのでもっとよく検索しろと言われるでしょうが…。 ふだんはCやPerl使ってますが、Javaにも足を突っ込んでみようかと。 で、真っ先に困ったのが“sprintf (printf)がない”という事実。 単に(コンソールで)表示数値の右揃えとかがやりたいだけなのにぃィ。 Sunで AS IS な PrintFormat.java は拾ってはきましたが、 jovadoc でドキュメント抜き出しても今ひとつ使い方が読み取れない。 (基礎知識がまだ不足しているからでしょうが…) できれば日本語でこれを解説している、あるいはサンプルの豊富な 解説ページ等をご存知でしたらお教えください。 #他言語からJavaへ進んだ人はよくケつまづく事象だと思うけど、 #その割りにはぐぐるにもあまりマトモな情報が引っかからん気が…。
>>985 984氏は右揃えと言っていますが。かくいう私も、sprintf(buff, "%08d%-08d", x, y);
相当の処理をTextFormatさんでどう実現すれば良いかわかりません。
987 :
デフォルトの名無しさん :02/12/25 01:48
4つ質問があります。 つまらないことで悩んでますが、おながいします。 1 response.encodeURL()でURLパラメータにセッションIDを埋め込んだ場合、セッションIDを次のページで取得することはできるのでしょうか? 取得の仕方ってありますか?セッションとセッションIDがちょっとごっちゃになってるんで、混乱してます。。 2 セッションIDはクッキーが有効になっていないときにだけ、URLパラメータに埋め込まれると何かの本で読んだのですが、 クッキーを有効にしても、セッションIDがURLパラメータに埋め込まれたと友達が主張してました。そんなことってありますか? 3 あと、携帯電話では、携帯電話でクッキーを無効にしているとき(そんな機能があるかどうかわかりませんが)、 セッションIDはURLパラメータに埋め込まれ、そのセッションIDが埋め込まれた URLを携帯電話の表示画面から見ることができますか? もし見ることができるんだったら、セッションIDを使っても、携帯電話でセッションID付きのURLを 打ち込んだら、直接、画面が表示されると思いましたので。 携帯電話はinputタグでgetメソッドしか使えないから、パラメータ付きのURLを直打ちされたら、画面が表示されますよね? セッションIDもそうなのかなって思って質問しました。 4 携帯電話では、普通、JavaScriptは使えませんが、これまた、友達が一部のものは使えると言っておりました。 これは本当でしょうか?すみません。携帯電話持ってないので、確かめようがなくて。 以上、ちょっとでもわかることがありましたら、お願いします。
URL? クッキー!? 携帯電話!!?
>>987 携帯電話にクッキーはないと思うよ。
WAPは知らんが。
あと、POSTメソッドも使えるよ。JPHONEの古い機種はダメだけど。
JavaScriptは無理でしょう。俺は使えるなんて聞いたことない。
>>984 1) ChoiceFormat と DecimalFormat の併用で回避する。
2) 右揃え用 NumberFormat を自作する。
3) DecimalFormat に空白右揃えのための仕様を追加しろと BugParade で RFE。追加されるまで待つ。
4) 986への回答みたいに 0 による右揃えで我慢する。
どれでも好きなようにしてくれ。
>>986 printf( "%08d", x );
みたいに桁が足りない時は '0' で補う場合は
DecimalFormat( "00000000" ).format(...);
みたいのでどーにでもなったり…
>>984 sprintf()は
Java houseのトピックスの
クラスライブラリ/フレームワーク
で議論されてます。
埋めとくか
>>991 そんなくだらないこと議論してるなんて
Javaはとことん糞ですね
価値の判らない糞にとっては糞ですよw
>>993 君はずいぶんと悲観的なものの見方をするね。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。