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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
過去ログ、関連スレの一覧や、これからJavaでプログラミングを
始めたいが何をすればいいかわからない人は、下のリンクをクリック。
http://www.wikiroom.com/java/

以下のエラーが表示されて、途方にくれているあなたは、下のリンクを。
「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path%2Cclasspath

JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc2.2ch.net/hp/

前スレ。
【初心者】Java質問・相談スレ41【大歓迎】
http://pc2.2ch.net/test/read.cgi/tech/1076338506/l50

すべてのクラス (Java 2 プラットフォーム SE v1.4.0)
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
Java (TM) 2 SDK ドキュメント
http://java.sun.com/j2se/1.4/ja/docs/ja/index.html
Java言語規定 第2版 目次
http://www.y-adagio.com/public/standards/tr_javalang2/jTOC.doc.html
>>1
2次元配列のStringを Arrays.sort() を利用してソートは可能でしょうか?

// このデータを
String[][] wk = new String[3][3];
wk[0][0] = "9";
wk[0][1] = "B";
wk[1][0] = "0";
wk[1][1] = "B";
wk[2][0] = "9";
wk[2][1] = "A";

//このように並べたい
wk[0][0] = "0";
wk[0][1] = "B";
wk[1][0] = "9";
wk[1][1] = "A";
wk[2][0] = "9";
wk[2][1] = "B";

ご助言、よろしくお願いします
ネタ心者も歓迎してくれますか?
>>3
無理
63:04/02/23 16:11
>5

了解っす
なんか、うまい方法ないでしょうか
7デフォルトの名無しさん:04/02/23 16:14
>>3
所詮 1次元分だけをソートしてるようにしか見えないんだけど。
wk[j] として String[] を与えたら?
java1.5で重たい処理をすると、MP3の音楽が割れてしまいます。
CPUを使いすぎてると思うのですが、どうすればいいのでしょうか?
1.4のときはそんなことはなかったので鬱です。
93:04/02/23 16:17
>7

サンプルが誤解生む書き方だったっすかねぇ・・・
ソートキーが二つあるんですよ

SQLで言うなら Order By A, B ってな感じなんです
>>8
Thread.currentThread().setPriority( )
で適当な値をセット
11デフォルトの名無しさん:04/02/23 16:27
>>9
一次元でも良ければComparator渡せば、Order by A,Bは実装できるが、それじゃダメか?
129:04/02/23 16:30
>11

Comparatorってなんすか (´∀` )?
13デフォルトの名無しさん:04/02/23 16:31
int型データをchar型に代入して出力をしたいのですが、
どうすればできるのでしょうか?
つーか、できるのか?
>>12
Object 2つの順序付けを定義するインタフェース。
カスタム実装して ソート処理などに用いる
>>13
キャストせい
16デフォルトの名無しさん:04/02/23 16:36
>>13
int a = 33;
char ch = (char)a;
System.out.println( ch );
17デフォルトの名無しさん:04/02/23 16:39
>>12
あー、Comparator使えば二次元だろうができそうな希ガス。
二次元配列を、配列オブジェクトの一次元配列と考え、Comparatorでその配列オブジェクト同士を比較すればいいんだよ!!!
なんだってー(棒読み
やっと今JAVAの解説書を読み終わりました。
が、しかし、第2巻があるらしく、JAVAマスターへの道はまだまだ遠い…。

で、よくわかんなかったところを質問させてもらいます。
データ型とクラスの関係っていったい何なんでしょう?
1912:04/02/23 16:41
>14, 17

よし、MMR出動だ!

勉強してきまふ
20デフォルトの名無しさん:04/02/23 16:49
>>12
サンプル作ってみた。
おまいの欲しいものとは違うと思うが。

String[][] array = {
{ "A", "A", "C" },
{ "A", "B", "C" },
{ "A", "A", "A" }
};

Arrays.sort( array, new Comparator() {
public int compare( Object o1, Object o2 ) {
String[] a1 = (String[])o1;
String[] a2 = (String[])o2;

int len;
if ( a1.length > a2.length ) {
len = a2.length;
} else {
len = a1.length;
}
21続き:04/02/23 16:50
for ( int i =0; i < len; i++ ) {
int result = a1[i].compareTo( a2[i] );
if ( result != 0 ) {
return result;
}
}

if ( a1.length > a2.length ) {
return -1;
} else if ( a1.length < a2.length ) {
return 1;
} else {
return 0;
}
}
}
);

for ( int i =0; i < array.length; i++ ) {
for ( int j =0; j < array[i].length; j++ ) {
System.out.print( array[i][j] );
System.out.print( "," );
}
System.out.println();
}
22デフォルトの名無しさん:04/02/23 16:52
>>18
データ型は計算など取り回しは用意だが、オブジェクトとして扱えない(Javaの仕様)
そこで、Integerなどのラッパークラスが登場するわけ
2313:04/02/23 16:54
>>15, >>16
どうもアリガトン!!
>>10
ありがとうございます。しかし変化がありませんでした。
うーこんなんじゃ世に出せないYO
>>22
NG 。それはプリミティブ型の説明。

>>18
普通データっちうのは、例えば
・身長165cm
・体重60kg
・スリーサイズB85W60H84
てやつだろ。
上二つは数字一つで個々の違いを表せる。これはプリミティブ型。
スリーサイズはプリミティブ3つでとりあえず一組になる。
こういうときクラス「ThreeSize」を作って、B, W, H のフィールド値を作るとすれば、
スリーサイズを格納する変数の型は、参照型。
どっちもデータ型。
>>24
1.5ってまだβだべ。
出るまでに直ることを祈れ。
>>25
初心者的にわかりづらいってのは、ここら辺かと思ったんだが。
データ型と書いてある本もあるしな。
2818:04/02/23 17:20
解説してくださった先生方、どうもありがd
でもよく分かんない(つД`)
まず解説書には、
「データ型には色々な種類があります。int型とかdouble型とかboolean型とか…」
みたいなことが書いてあって、データ型っていうのはメモリを確保するために指定するんだってことは分かったのですが。
最後のほうになって、いきなり「クラスをデータ型とした変数をインスタンスと呼び〜」とか出てきて、混乱してしまいました。
プリミティブ型って今初めて聞きました。
うむう、難しいなぁ…。
29デフォルトの名無しさん:04/02/23 17:29
マインスイーパを作ろうと思っています。
マインスイーパを作るにはボタンを並べますが、適当なレイアウトが分かりません。

各ボタンのサイズは全て20*20です。
ボタンの数が多く、ウィンドウに収まりきらないときはスクロールバーを表示します。

□□□□□□□□□□□□↑
□□□□□□□□□□□□
□□□□□□□□□□□□
□□□□□□□□□□□□
□□□□□□□□□□□□
□□□□□□□□□□□□
□□□□□□□□□□□□
□□□□□□□□□□□□↓
←__________→ 

しかし、
GridLayoutだとボタンのサイズを20*20に固定できません。
setLayout(null)でレイアウトを固定すると、画面をはみ出してもJScrollPaneが表示されません。
何かいい方法はありませんでしょうか。
30デフォルトの名無しさん:04/02/23 17:36
>>28
前半で言ってるデータ型=プリミティブ型のことだな。
後半については>>25参照。
>>29
FlowLayout な Pane の中に GridLayout な Pane を浮かべ、
各ボタンの PrefferedSize を 20x20 にすればいい
>>29
>>31のも楽でいいけど
new JScrollPane( それ, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED)
とかで明示的にスクロールペイン作れるよ。
>>28
それなんて本だよ?
とりあえず窓から投げ捨てることをお勧めする。
>>28
>クラスをデータ型とした変数をインスタンスと呼び〜
ほんとにそう書いてあったのか?大嘘だぞ。
>28
うーん、なんとなく分かったような。ありがd。
>33
http://www.amazon.co.jp/exec/obidos/ASIN/4798103519/qid=1077529259/sr=1-8/ref=sr_1_10_8/249-7503818-7047535
こんな本。
うわーんまさか勉強し直し!?(つД`)
3635=28:04/02/23 18:44
>28じゃなくて>30でした。

>34
う、嘘なのかYO!
そう書いてあるもん…。
「クラスをデータ型とした変数が参照するものをインスタンスと呼び〜」が正解。逆に言えば
「インスタンスを参照する変数をクラスをデータ型にした変数と(参照型変数とも)言う」となる。
変数=インスタンス、という関係性はまったくない。ありえない。

インスタンスというのは実体。コンストラクタで生成されるもの。
参照型変数というのは、プログラム上で実体を扱うために名前を用意したもの。

String obj = "abc";
String a = obj, b = obj, c = obj;

obj, a, b, c は変数。4つ。
"abc" はインスタンス。 1つ。1対4で関係性を持っている。

new String("abc");

この場合は変数なしでインスタンスだけ存在してる(使われないのでそのうち消滅する)。

String a = null;

インスタンスなしで変数だけ存在してる。でもクラスを型にした変数であることには変わりない。

ほらな? 本の書き方おかしいだろ?
>>35
目次と2巻のタイトルを見る限り、
その本に書いてあるのは「非オブジェクト指向プログラミングの基礎中の基礎」であって、
Java らしさのごく薄い内容のようだな。
多分 C でも perl でも同じような中身になる。

だから大体の部分において勉強し直す必要は無い(読んでないから分からないけど)。
でもこの程度の内容で 2,400円は高いし、>>28 のような書き方は嘘だし、
Java の本のクセしてプリミティブのプの字も出ないのは不適当。
最初は好き勝手にやってみれば?
興味が沸いてくれば気になって自分で調べるようになるだろうし
40初心者:04/02/23 21:13
自分の読んでる本がどうなのか見てみると(ASCIIの『ゼロから始めるJava』)
Dogクラスに対して Dog dog = new dog(ごにょごにょ); としている所で
「dogはDogクラスのインスタンス(正確にはインスタンスへの参照)」と書いてあったです。
>>40
>Dog dog = new dog(ごにょごにょ);
           ~~~~
うそを書かないように
>>41
たぶん dog extends Dog されてんだよ。

文脈による名前の解決の例文としては最適。
>>40見てて思ったのだが、>>28ってその前後の文脈が欠けてるのが問題なのかも。
例えば、こんなだったらどうだろう?

Dog dog = new Dog(); とした場合に、
このnew Dog()された、Dog「クラスをデータ型とした変数をインスタンスと呼び」ます。

・・・うーむ。まだ苦しいか。
44デフォルトの名無しさん:04/02/23 22:30
JSPでインタラクティブにデータを受け取って画像を表示したいのだけど、
(1)画像自体はサーブレットで生成し、ファイルを受け取る
(2)アプレットを使用する
ぐらいしか思いつきません。
もう少しスマートな方法はないでしょうか。
メモリ消費量やレスポンスは良いに限るので…。
画像を表示したいのなら普通に表示すればいいじゃん。
表示するためのHTMLの書き方がわからないなら板違い。
動的に生成した画像は普通に表示できないと思ってるなら勘違い。
というか画像をサーブレットで出力することが
スマートでないと考えるのはのはなぜ?
47初心者:04/02/23 23:01
>>41
ぐはぁ、素で間違えた(´・ω・`)
Dog dog = new Dog(ごにょごにょ); が正しい方です。
48貧乏紙:04/02/23 23:24
あーーーーぴゃぷうぅいおいがほうぼぃうえぴううぇぱ。。。・・・!!!
>>44
単純なJSPなら
<image src="http://xxx/xxx/classes/ImageServlet?p=<%=request.getParameter("xxx")%>">
みたいな感じでいいだろ。
もっとスマートにやるなら、これをtaglibにしろ。
んで、サーブレットはレスポンスで画像のバイナリを返せばいい。
5044:04/02/24 01:08
>>45
さすがに表示するだけならできますけど、
DBからデータを受け取ってグラフを表示する、とか
ポリゴンデータを取得して3D画像を表示する、とかそういうことを
やりたいのです。

>>46
テンポラリフォルダを用意しないといけないし、
別途作成したファイルの寿命とか管理しないといけないので…。
5144:04/02/24 01:11
>>49
ありがとうございます。ご意見を元に勉強&研究します。
特にTaglibは使ったことがないので調べてみます。
>>50
おいおい、もしかしていったんファイルシステムに
書かないと画像を読ませられないと思ってる?

ServletResponse#setContentType( "image/jpeg")
とかして
ServletResponse#getOutputStream()
で画像をストリームに書けばいいだけだということに気づいてない?

タグリブはあくまでJSPの中にロジックのコードが
混じらなくなるってことだよ。
53デフォルトの名無しさん:04/02/24 02:03
初心者です。
int型は4バイトですけど、オブジェクト型は何バイトってどうやって
決まるのか疑問です。
例えば、setter,getterをもったBeanがあるとして、フィールドが
多ければ多いほどメモリを食うのですか?フィールドの総和?
String型のフィールドがnullで初期化されている状態と、
setXXX("abc");を行った後では当然違いますよね?

あと、String str = "abc";ってやれば3バイトですか?

>>53
フィールドの総和+オブジェクトの識別子チョビットです。
オブジェクト参照は32bitマシンのVMなら4バイトでしょう。
プリミティブフィールドは4バイトOR8バイト。

君がString型と呼んでいるのは、String型オブジェクト「へ
の参照」なので、その変数は4バイト。
その先にぶら下がっているStringが内部に持っているcharの
配列が、多分3バイト+配列オブジェクト用識別子チョビット。

>String str = "abc";
文字列リテラルはintern()かかっているのと同等。
内部のchar配列で3バイト+α消費しているけど、そのかわり同じ
リテラル宣言同士で共有されるので、あんまりメモリ食わない。
5554:04/02/24 02:15
間違った。
JavaのStringは内部的にUCS-2なので、ハンカクだろうが全角だろう
が1文字2バイト。"abc"は6バイト+α。
>>53
http://www.javaworld.com/javaworld/javaqa/2003-12/02-qa-1226-sizeof.html
これか、
JDK1.5の
java.lang.instrument.Instrumentation#getObjectSizeとかがおもしろいかも。
57デフォルトの名無しさん:04/02/24 10:07
OutOfMemoryErrorがでるんですけど、
Javaで使えるメモリって上限があるんですか?
58デフォルトの名無しさん:04/02/24 10:34
便乗質問だが、全角を2バイト、半角を1バイトと数えたい場合は
どうすればいいでしょうか?
自分で実装したが、共通のメソッドやより良いやり方はないかな。
>>59
勝手に数えればいいだろ。
6112:04/02/24 11:07
>20

サンクスd
62デフォルトの名無しさん:04/02/24 11:12
あるサイトで使われていたclassファイルをダウンロードして
ローカル環境でも動かそうとしたんだけど、うまく動きませんでした。
classファイル以外になにか必要なものがあるのでしょうか?
63デフォルトの名無しさん:04/02/24 11:21
>>59
String str = "aaaaaあああ";
int byteLength = str.getBytes( encoding ).length;

encodingは好きなのを指定しろ。
Unicode系指定すると2byte以上の文字もあるからな。

64デフォルトの名無しさん:04/02/24 11:22
>>62
何がどううまくいかなかったんだ?
ちゃんとクラスパスは通したか?
ttp://www.nov.ragnarokonline.jp/ubiquitous/にある
ゲーム「ラグナロクオンライン」のScreenShotを一定時間ごとに撮影するJavaツールのソースを
ダウンロードして、自分なり調べてどうにかTask1.java、Task2.javaはコンパイルできるようになったのですが
Task3.javaでエラーが出てしまいます。
エラー内容は
****
パッケージ org.apache.commons.net は存在しません。
パッケージ org.apache.commons.net.ftp は存在しません。
シンボルを解決できません。
シンボル: クラス FTPClient
シンボル: クラス ProtocolCommandListener
シンボル: 変数 FTPReply
シンボル: 変数 FTP
****
と出ています。

_| ̄|○本当に初心者で申しわけないですが、手を貸して頂けないでしょうか

>>65
org.apache.commons.netが含まれているjarファイルがクラスパスにないんだろ。
67デフォルトの名無しさん:04/02/24 12:16
>>65
Jakartaのサイト行って、commons-netのライブラリ落としてこい
>>66-67
commons-netのライブラリダウンロードしてきました。
C:\j2sdk1.4.2_03\lib\(クラスパス?)の下に
commons-net-1.1.0.jar
docs
を置いてみたのですが、javacすると同じエラーメッセージが出ます。

もしかするとファイル置く場所間違ってますか(´・ω・`)?
コンパイル時にクラスパスが通ってない。
置く場所はどこでもいいから、JARファイルにクラスパス通せ
>>68
クラスパスは *.class ファイルを探す場所を指定するのであって、
そこに *.jar をただおいても無駄。
*.jar の中に *.class があるんだから
クラスパスに *.jar ファイルのファイル名を追加する。
>>69-70
本当にわかりやすい説明ありがとうございます。
クラスパスにcommons-net.jarを登録した後Task3.javaをjavacしてみたところ、
class化に成功しました。

ところでTask1 Task2 Task3の全てのclassが揃うと
Application.javaもclass化できるようになると思ったのですが、どうやら違ったみたいです。
次のようなエラーが出てしまいました。
///////
シンボルを解決できません。
シンボル:クラス Task1
場所 :cx.ath.ubiqro.Application の クラス
protected Task1 m_task1;

シンボルを解決できません。
シンボル: クラス Task1
場所 : cx.ath.ubiqro.Application の クラス
m_task1 = new Task1(textArea);
///////
上で説明して頂いた org.apache.commons.netのように
cx.ath.ubiqro.Applicationというパッケージがあるのかと思い、検索してみたのですが見付かりませんでした。

_| ̄|○長文すいません。
72デフォルトの名無しさん:04/02/24 13:25
>>71
今度は、Task1、2、3がある場所にクラスパスを通すがいい
>>72
クラスパスに
%JAVA_HOME%\javaを設定してみました。
フォルダの中に入っているファイルは下記の通りです。
(Application.java Task1.class Task2.class Task3.class)
この後javac Application.javaをしてみましたが同じエラーが出てしまいます。
他に
クラスパスにそれぞれ
%JAVA_HOME%\java\Task1;%JAVA_HOME%\java\Task2;%JAVA_HOME%\java\Task3
%JAVA_HOME%\java\Task1.class;%JAVA_HOME%\java\Task2.class;%JAVA_HOME%\java\Task3.class
を入れて試してみましたが、同様のエラーが出てしまいます。

ちなみに%JAVA_HOME%はC:\j2sdk1.4.2_03に設定してあります。
>>73
[適当なフォルダ]\cx\ath\ubiqro\ に
Application.java Task1.class Task2.class Task3.classを全部突っ込んで、
[適当なフォルダ]\ で javac cx\ath\ubiqro\Application.java
すれば コンパイルできると思うけど?
>63
ベリサンクス。
>>74
。・゚・(ノД`)・゚・。 やたぁぁぁぁコンパイルできました。本当にありがとうございました。

C:\ragnarokonline\cx\ath\ubiqro>java Application
で早速起動してみたのですが
////////////
Exception in thread "main" java.lang.NoClassDefFoundError: Application (wrong name: cx/ath/ubiqro/Application)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
////////////
スレッド"main"の中でjava言語の例外?が起こってると言われてしまいます。
本当に長々と付き合ってもらってすいません。
NoClassDefFoundError

英語くらい読みたまい。
実行時もクラスパスが必要なんだよ。
>>76
起動する時も >>74 の [適当なフォルダ]\ で
java cx.ath.ubiqro.Application
とかしないとダメ。
インターフェースの実装について質問なのですが、
interface Test{
void task();
}

class Input implements Test{
Input() {}
void task(){
return;
}
}
の問題点を教えてください。
エラーメッセージは

7: Input の task()は Test の task() を実装できません。
スーパークラスでの定義より弱いアクセス特権 (public) を割り当てようとしました。
void task(){
^

といったものです。
ちなみにeclipseでは『Testから継承されたメソッドの表示レベルを下げることはできない』というエラーが出ます。
かなり単純なミスっぽいのですが・・・お願いします。
80デフォルトの名無しさん:04/02/24 14:36
>>76
コマンドプロンプトでC:\ragnarokonline\に移動して、
java cx.ath.ubiqro.Application
とやってみ。
81デフォルトの名無しさん:04/02/24 14:38
>>79
interface Test{
public void task();
}

class Input implements Test{
Input() {}
public void task(){
return;
}
}
>>79
> interface Test{
> void task();
> }
interface 内のメソッド宣言は指定しない場合、
public および abstract で修飾されているものとみなされる。

> class Input implements Test{
> Input() {}
> void task(){
> return;
> }
> }
class 内のメソッド宣言では指定しない場合、
デフォルトのアクセス制限(いわゆる package private の制限)になる。

メソッドのアクセス制限を public -> 無指定 みたいにキツイ方に変化させるのは
言語規定によりコンパイルエラーになる。
>>81,82
ありがとうございます!
実例と解説でとてもよくわかりました。
>>77-78,80
ありがとうございます!!_| ̄|○
>>前スレの981
http://pc2.2ch.net/test/read.cgi/tech/1076338506/981

Tomcat + FreeBSDで, Tomcatが突然動作しなくなったりする
という書き込みがあったが, うちでは起きてないなあ.

>●FreeBsdのバージョン
>これはちとわからないんですが2年前にインストしました。

BSDのバージョンが古すぎるんじゃないの?
ちなみにうちはFreeBSDは4.9, JavaVMは1.3,
ねこちゃんのバージョンは4.1だよ.
86java嫌い:04/02/24 17:13
授業の問題で分からない所があるので、質問いたします。

//以下の様に画面に表示するプログラムを作成しなさい。

*
**
***
****
*****
****
***
**
*

//「System.out.println」で一行づつ表示するのは駄目。
for (int i=1; i<=max; i++) {
 for (int j=1; j<=i; j++) {
  System.out.print("*");
 }
 System.out.println();
}
for (int i=max-1; 1<=i; i--) {
 for (int j=1; j<=i; j++) {
  System.out.print("*");
 }
 System.out.println();
}
88java嫌い:04/02/24 17:28
//以下の空欄を答えよ。空欄2つには同じ言葉が入る。

newを使ってインスタンスをどんどん作っていくと、そのたびにメモリが消費されていきます。
(中略)いつかは、メモリが足りなくなって、インスタンスを作ろうと思っても、作れない状態になります。
その時、java仮想マシンは「   」をはじめます。「   」と言うのは、
誰からも参照されていないインスタンスが占めているメモリ領域を回収し、再利用することです。
GC
90java嫌い:04/02/24 17:45
以下の仕様に従って、口座クラスとその口座クラスを利用するクラスを作成しなさい。
利用者クラスでは口座を作り、お金を預けて、その口座番号と預金額を表示するようにします。

(1)口座クラスを下記の仕様に従い作成しなさい。
クラス名:Kouza
情報(フィールド)    :口座番号(kouzaNum)、預金額(yokingaku)
初期化(コンストラクタ) :口座を開設(口座番号と最初の預金額を与える)
操作(メソッド)      :お金を預ける(charge)

(2)利用者クラスを下記の仕様に従い作成しなさい。
クラス名:Yokinsha
情報(フィールド)    :預金額(yokingaku)、預金者名(name)
初期化(コンストラクタ) :預金者の名前を与える
操作(メソッド)      :メインメソッド
                1) Kouzaクラスを使って口座を作成します
                2) 10,000円を預けます
                3) 画面には、kouzaNumとyokingakuを表示して下さい
こっちでやれ

学校の宿題は俺にやらせて下さいver.2.0βfor Java
http://pc2.2ch.net/test/read.cgi/tech/1076054000/
92java嫌い:04/02/24 17:59
//以下の空欄を答えよ。

Java Swingプログラムにおいて、
「ユーザがボタンをマウスクリックするとラベルのテキストが変わる」プログラムに おいては
イベントソースが [ア] 、イベントが [イ] 、イベントリスナが [ウ] にあたります。
またキーボードを使ったGUIプログラムに おいては
イベントは KeyEvent であり、イベントリスナは [エ] になります。
>>92
>イベントリスナは [エ]
これちょー難しいな。
あ イベントが決まってるからいいのか?
95java嫌い:04/02/24 18:02
>>87,>>89
お早いレス、どうも有難う御座います!!!!

>>91
分かりました、誘導有難う御座います。
96デフォルトの名無しさん:04/02/24 19:06
rarファイルのパスワード解析するツール 紹介してくれないでしょうか?日本語版希望です。
97デフォルトの名無しさん:04/02/24 19:39
どなたか、>>92,分かる方いるでしょうか?
JButton
ActionEvent
ActionListener
KeyListener
>>88
> (中略)いつかは、メモリが足りなくなって、インスタンスを作ろうと思っても、作れない状態になります。
> その時、java仮想マシンは「   」をはじめます。「   」と言うのは、
> 誰からも参照されていないインスタンスが占めているメモリ領域を回収し、再利用することです。

インスタンスが作れない状態になるまで GC しない
VM って、いつの話だ。
10097:04/02/24 21:29
>>98
有難う御座います!!!!
やっと、レポートが出せます
おまいらいいやつだな。俺なら無視するよ。
102デフォルトの名無しさん:04/02/25 00:02
Javaで、MACアドレスって取得できますか?
ググって調べたところ、

It is not possible to obtain the MAC address using java, since the
socket class is a Transport layer abstraction, while the MAC layer is in the lower layers.

なんつーカキコがあったりするんだけど、JDK1.4以降でもだめぽ?
103デフォルトの名無しさん:04/02/25 00:27
>>102
JavaはTCP層までしか制御できないから無理と思われ。
PingもJavaでは作れない。
>>102
標準APIだけではできない。
http://www.doomdark.org/doomdark/proj/jug/index.html
これ使いなさい。
105102:04/02/25 00:54
>>104
おお!禿シク感謝!LGPLなのがいいですね!
漏れもググってたら、こんなの見つけますた。
http://netresearch.ics.uci.edu/kfujii/jpcap/doc/index.html
こっちはGPLですた。
106104:04/02/25 01:03
>>105
そもそもJpcapはPCapないとだめだろ。
てかこの人UCI逝ったのか、前早稲田だったけれども。
>>99
EDENがイッパイになるって解釈してあげよう。
ほんっと基本的なアルゴリズムの質問でスマソ。
drawPolygonを使用せずdrawLineのみで正多角形を書きたいのですが、
上手くいきません。(変な図になってしまう・・・なんてバカなんだろうと鬱になってます;)
どなたかご教授下さい。
>>108
(x0,y0)中心で半径(?)をsとして正N角形を描くなら
(x0+s*Math.cos(2*Math.PI*i/N), y0+s*Math.sin(2*Math.PI*i/N))
をi=0からNまでつないでやればいい気がする。試してないけど。
タートルグラフィック使ってって描くべし。
LOGO使うとか。
111デフォルトの名無しさん:04/02/25 10:38
LDAPサーバからデータを切り出したいんですが、NamingEnumeration
の使い方が分かりません。

NamingEnumeration ne = getLDAP();
while(ne.hasMore){
Attribute attr = (Attribute)ne.next();
}

と、こんな風に書くのだろうかと当たりをつけているんですが、
要素をひとつづつ切り出すにはどうすればよいのでしょうか?
112108:04/02/25 11:18
>>109
ご回答ありがとうございます。
できました。中心を加算するの忘れていました;
お恥ずかしいっす・・・。
>>104
WinでJUG使う場合、DLLは、どこに置けばいいんですか?
Winが探せるPATHのどこか?
114デフォルトの名無しさん:04/02/25 11:48
>>111
try {
for (NamingEnumeration i = getLDAP(); i.hasMore();) {
Attribute attr = (Attribute)i.next();
}
} catch (NamingException e) {
//例外処理
}
115デフォルトの名無しさん:04/02/25 12:40
リクエストヘッダを書き換えるにはどうすればいいんですか?
116デフォルトの名無しさん:04/02/25 13:05
>>115
Servletか?
だったら、filter使うがいい。
117デフォルトの名無しさん:04/02/25 17:07
HTMLからテキストを抽出するクラスはありますのでしょうか?

おねがいします。
119117:04/02/25 17:32
>>118
ありがとうございます。いまから読んでみたいとおもいます。
120デフォルトの名無しさん:04/02/25 18:02
テキストをバイトデータで出力したいのですが、
読み込んだStringをByteStreamWriterで書き出せば良いのでしょうか?
121デフォルトの名無しさん:04/02/25 18:06
>>120
おk。
ただし、読み込んでStringにするときのエンコーディングとgetByteするときのエンコーディングに気を付けろ。
122デフォルトの名無しさん:04/02/25 18:10
>>120
あ、すまん。書き出し先は何?
ファイルならFileOutputStreamだけでいいよ。

ByteStreamWriterは・・・って自作クラスか?
ByteArrayOutputStreamの間違いか?
ByteArrayOutputStreamなら、これはbyte配列をStream的に扱うものだ。
123デフォルトの名無しさん:04/02/25 18:26
>>122
ByteArrayOutputStreamの間違いです。すいません。
エンコーディングですか、その辺っていままであまり気にしてないので勉強します。
ありがとうございました!
124デフォルトの名無しさん:04/02/25 19:36
質問です。直接プログラムに関係ないかもしれませんが


if (confirm('送信しますか?')) {

 strUrl = Form_Submit_Set('sendmail.asp','POST')
 return true;
} else {
 return false;
}

上記のIF文で「いいえ」を選択すれば、送信しないようにしてるのですが、
会社のwin2000の環境ですと、いいえを選択すると、
送信はされませんが、ページがリロードされ、入力された情報が
すべて消えてしまいます。
更新ボタンを押したのと同じ状態になります。

自宅で同じプログラムで確認したら、いいえを選択しても
入力文字は消えずにそのまま残りました。
自宅はwinXPです。

この原因が分からないのですが、ご存知でしたら教えてください。
125デフォルトの名無しさん:04/02/25 19:42
>>124
JavaScriptはWeb板へ
未だにjavascriptとjavaくべつつかないヤツいたのか
jar形式のJavaアプリケーション起動時 バッチファイルに
java -Djava.ext.dirs=C:\Test\lib -jar XXX.jar
などとした場合、C:\Test\libにあるjarファイルをクラスパスとして読み込んでくれますが
JAVA_HOMEをPathに設定していなければ

Exception in thread "main" java.util.zip.ZipException: 指定されたファイルが見つ
かりません。

というエラーが発生します。

Javaライブラリがクラスパスに含まれなくなったのが原因だと思うのですが
JAVA_HOMEを環境変数に設定していないマシン上でエラーを出さず起動させるには
どうすれば良いのでしょう?
128デフォルトの名無しさん:04/02/25 20:02
>>127
バッチファイルにJAVA_HOME=(Javaのホームディレクトリ)を追加
PlainDocument.lineLimitAttributeを使って、
行当たりの文字数制限とかかけたことある香具師居ない?

これ、どこに属性設定すれば良いのかわかんねー…
>>126
いちいち、それを言うお前のほうがイタイ。
自分が知っていることに関して、うぬぼれすぎ。
>>130
残念だったね
次がんばってね
>>128
それだとマシンによってJavaのインストール先が違ったりすると
バッチファイルを修正する必要がありますよね。

仕方ないのでしょうか?
そのための環境変数では
>>130
これでうぬぼれることができる奴なんているのか?
Eclipseや一太郎ArcみたいにPlugin用ディレクトリに入れるだけで
認識してくれるようにするにはどうすれば良いのでしょう?
-Djava.ext.dirs
は使ってないようなのですが?
136& ◆9PKzhVYiO2 :04/02/25 20:36
きもいんですが なにか?
>>136
独り言か?
138デフォルトの名無しさん:04/02/25 20:59
要素数が変動する多次元配列を作るにはどうすればいいのでしょうか?
一次元配列ならArrayList()でいけるのですが、多次元配列だと
どうにもこうにも。
>>138
ArrayListの中にArrayList突っ込んで使えば?
>>113
普通はそう。アプリ起動する際のカレントフォルダで普通いける。
141129:04/02/25 21:43
AttributeContextと AttributeSetの使い方がよくわかんねーよー。
誰か教えてくれー。
>>135
そのプラグインフォルダを検索して、JARがあったらそいつからロードできる
URLClassLoaderをnewする、とか。
そのプラグインを呼び出す方法は、リフレクションを利用しないといかん
(そのプラグインの入り口がどこか分からん)と思うので、その辺も注意。

>>141
文字列の一部に色つけたり。
>>129
そのアトリビュートは使われてないけど名前だけ残ってしまってる、と言ってるように
見える。
http://developer.java.sun.com/developer/bugParade/bugs/4259723.html
質問ですぅ。
サロゲートペアサポート後、String#length()やString#charAt(int)はどういう
動作になるのでしょうか。サロゲートペアは2文字分?
質問です。
フィールドのColor.BLACKと、Color.blackは色の数値的に別物ですか?
同じものだとしたら、何故2種類あるのでしょうか?
146145:04/02/26 06:30
ちょっと調べてみた。
Color.BLUEとColor.blueで四角形を塗りつぶしてみた。
全く同じ色に見える。
>>146
/**
* The color blue. In the default sRGB space.
*/
public final static Color blue = new Color(0, 0, 255);

/**
* The color blue. In the default sRGB space.
*/
public final static Color BLUE = blue;
いっしょ
>145
むかしの名残り。
149129:04/02/26 09:36
>>142,143
サンクスコ

>143
見るためにアカウント作ったよ。(w
使ってないけどpublicだから削除できない、とか書いてあるね。>bugParade
期待したのに使ってないのか…
>142
色付けか…じゃあちょっと方向が違うのかな。
それってRichTextの表示って事だよね。


行当たりの文字数と、行数を制限したいんだよ。
で、昨日は一日javax.swing.text.*とにらめっこして、
裏のElement数の制限で「行数の制限」は出来るようになったんだけど、
「行当たり文字数の制限」も加えようとすると、
内部のLeafElementで持ってる改行位置の制御までしなくちゃならなくなって、
それっぽい挙動をするsampleは作ったものの、
なんかかなり方向性から間違ってる気がしたわけさ。(w

で、PlainDocumentを見てたらそのものズバリっぽい定数があったので
そっちをいじりつつ、聞いてみたんだが…
この辺の制御は実はViewでやるのが今の実装では本筋?
この辺誰か教えてプリーヅ
150デフォルトの名無しさん:04/02/26 10:35
age
フレーム画面にてCSV作成ボタンを押すと、内部でCSVファイルが作成され
作成終了後ダウンロード画面が表示されファイルを保存した後、
再度CSV作成ボタンを押すとJavaScriptにて
「アクセスが拒否されました」とエラーメッセージが表示され、
CSVファイルが作成することができません。
原因はMSのアクセス制限だそうですが
解決法知っている人いたら教えて下さい。
>>151
何の話かさっぱり分かりません。
もしJavaScriptの話だったら >>1 をよく読んでから死んでください。
>>152
死ななくてもいいだろ。
そうきついこと言うなや。
>>152
死んだあとまた来てもいいですか?
この内容だとjavascriptなのかservletなのかわからんな

そもそもわかったところでどういった動きをするものなのかわからんが
すいませんservletっす
>>156
>>155

状況と質問を整理しろ
servlet ?

>JavaScriptにて
>「アクセスが拒否されました」とエラーメッセージが表示され、

じゃぁこんな無駄な説明つけんなよ。知ったこっちゃねぇよ。

現状のソースを改良したいんだろ? それは何だ? 人にもらった奴か。
そのソースにはどんな API をどう使って何をしようとしてるんだ。
何に対してのどんなアクセスが拒否されたのかを書けよ。
MSのアクセス制限ってなんだろうね。
160デフォルトの名無しさん:04/02/26 15:19
>>139
どもっす、早速やってみました。

ArrayListの中にArrayListを突っ込んで二次元配列をつくり、
ArrayList mapdata = new ArrayList();
ArrayList mapdata2 = new ArrayList();
for(int i = 0;i < 300;i++){
for(int ii = 0;i < 400;i++){
mapdata2.add("000");
}
mapdata.add(mapdata2);
mapdata2.clear();
}
このように初期化した後、この二次元配列のデータをテキストエリア内に
書き出そうとしたのですが、どうもうまくいきません・・・
//taは定義済みのテキストエリア
for(int i = 0;i < 300;i++){
for(int ii = 0;i < 400;i++){
ta.append((String)mapdata.get(ii));
}
ta.append("\n");
}
どうすればいいのでしょうか??
161160:04/02/26 15:21
ギャッ・・・!スミマセン、訂正が・・・
for(int ii = 0;i < 400;i++){
→for(int ii = 0;ii < 400;ii++){
です・・・ショヴォーン
生成の時点で既に間違ってる。mapdata は300個の ArrayList を扱うんだから、
ArrayList mapdata = new ArrayList();
for(int i = 0;i < 300;i++){
ArrayList mapdata2 = new ArrayList();
for(int ii = 0;i < 400;i++){
mapdata2.add("000");
}
mapdata.add(mapdata2);
}

君のやり方だと、たった一つの ArrayList への、参照のみをたくさん登録していることになる。
163160:04/02/26 15:37
>>162
グハッ!なるほど・・・。
一つ一つインスタンス生成していかないと300個を扱う事にはならないんすね。
interfaceの意味をよく理解できません。
というか使い道がわかりません。

メソッド宣言をするだけということは、インターフェースで宣言したメソッドを継承したクラスで定義しろという
ルール付けをするだけなんでしょうか?
>>164
>メソッド宣言をするだけということは、インターフェースで宣言したメソッドを継承したクラスで定義しろという
>ルール付けをするだけなんでしょうか?
そのとおり。

参考書の例は意味の無いのが多いから、いくら眺めても実感できないよ。
AWT なり Swing なりをやってるとだんだん分かってくる。
166U ◆CZtFsGiu0c :04/02/26 16:04
>>164
Interfaceの型で宣言した参照変数で、そのInterfaceをimplementsしたクラスの
インスタンスはすべて扱うことができる。

たとえば、

void func(java.util.List list) {

}

といったメソッドがあった場合、そのメソッドの引数にはListインタフェースを
implementsしたクラス(ArrayListとかLinkedListとか)ならなんでも渡すことが
できる。また、戻り値の型がListであるメソッドを利用する場合であれば、

List list = obj.getXxxx();

のように、どのクラスのインスタンスが返されたかを意識せずに利用できる。
もちろんクラス継承でもできるのだけど、実装を引き継いでしまう分、かえって
ややこしくなることがある。実装上関連のないクラスに共通の型を持たせたいとき
には、インタフェースを使ったほうがよい。
167160:04/02/26 16:05
むう、やはりテキストエリアへの書き出しが分かりません・・・
ArrayList mapdata = new ArrayList();
for(int i = 0;i < 300;i++){
ArrayList mapdata2 = new ArrayList();
for(int ii = 0;ii < 400;ii++){
mapdata2.add("000");
}
mapdata.add(mapdata2);
}
//taは定義済みのテキストエリア
for(int i = 0;i < 300;i++){
for(int ii = 0;ii < 400;ii++){
ta.append((String)mapdata.get(ii));}
ta.append("\n");}

色々と考えてみましたがやはり分からず・・・一体どうすれば。
for(int i = 0;i < 300;i++){
 ArrayList mapdata2 = (ArrayList)mapdata.get(i);
 for(int ii = 0;ii < 400;ii++){
  ta.append((String)mapdata2.get(ii));
 }
}
もっとゆっくり考えなさい。
デバッガ使うと楽だぞ。
デバッガの使い方が分からなければ、
せめて、get したものの getClass() を print してみて調べるとか。
169デフォルトの名無しさん:04/02/26 16:31
特定のフォルダに配置したpropertiesファイルの読み込みは
どうやってすればいいんでしょうか?
>>165,166
わかりやすい説明ありがとうございました。
かなり理解できました。
>>169
Properties proop = new Properties();
prop.load( new FileInputStream( filename ) );

(・∀・) ベカーム
殺伐としたスレに救世主が現れた!
その名も


(・∀・) ベカーム

ベカームマン!
>>172 = null;
return;
175デフォルトの名無しさん:04/02/26 21:04
Canvasクラスを継承したクラスのpaintメソッドで、

Image previmg = getImage(getDocumentBase(),"yo.gif");
g.drawImage(previmg,0,0,32,32,this);

とやろうとすると、getDocumentBase () シンボルを解決できません
といったエラーが出てしまいます。
CanvasではgetDocumentBaseをサポートしていないのでしょうか?
>>175
Canvas には getImage() も getDocumentBase() も無いと思われ。
>>176
マジすか??それだったら、Appletを継承するクラスで

public Image yoyo(){return getImage(getDocumentBase(),"yo.gif");}

な感じのメソッドをつくり、Canvas継承側で受け取るという方法を取るしかないのでしょうか。
Win2000 + Tomcatでサーブレットをやってるのですが、
普通のhtmlファイルでformを使ってデータをサーブレットに渡すというのをやってるのですが、
ttp://localhost〜で表示させるとhtmlファイルが文字化けしてしまいます。
手動で日本語にエンコードしなおせば直るのですが、文字化けしない方法はあるでしょうか?
htmlファイルをダブルクリックで開く場合は文字化けしません。
htmlの文字コードもSHIFT_JISにしてあるのですが。
>>178
Tomcat 4.1.29 じゃないのか?
180178:04/02/26 21:29
>>179サン
Tomcat5です。。
ワードファイルを吐き出したいんですけど、どうやったらいいですか?
罫線とか字の色とかも制御したいんですが。
Jakarta POI ってワードファイル吐けたっけ?
>>175
//実行時のカレントディレクトリに置かれたyo.gifを読む
Image image = getToolkit().createImage("yo.gif");

//classファイルと一緒に置かれたyo.gifを読む
Image image = getToolkit().createImage(getClass().getResource("yo.gif");
184181:04/02/26 21:45
>182
POIですか。こんなのがあったなんて知りませんでした。
なんだか出来そうなので研究してみます。サンクス!
用途にもよるだろうがワードファイル吐き出させるくらいなら pdf 吐き出させるほうが楽だろう。
186181:04/02/26 22:05
>185
ホンマですか?ちょっと調べてみますね。
>>183
うおお!ありがとうございます!表示できました!
getToolkit()、本にも載ってませんでした・・・ちょっくら調べますです。
>>185
確かにライブラリの選択肢もあるし、pdfの方が良いかもしんない。
今、一辺の長さが0.2の正三角形を2つ(以上)並べるために、次のようなプログラムを作りました。
(△△ってな感じです)

Point3d[] vertex=new Point3d[6]; //頂点の数

for(int i=0;i<=5;i++)
{
   if(i%3==0)
   {
       vertex[i]=new Point3d(i/15, 0.0, 0.0);
   }
   else if(i%3==1)
   {
       vertex[i]=new Point3d(i*(2/30)+(4/30), 0.0, 0.0);
   }
   else if(i%3==2)
   {
       vertex[i]=new Point3d(i*(2/30)-(1/30), 0.1*Math.sqrt(3), 0.0);
   }
}
int[] stripVertexCounts={3,3}; //連続する頂点の数の指定

vertex[0]=new Point3d(0.0, 0.0, 0.0);
vertex[1]=new Point3d(0.2, 0.0, 0.0);
vertex[2]=new Point3d(0.1, 0.1*Math.sqrt(3), 0.0);
vertex[3]=new Point3d(0.2, 0.0, 0.0);
vertex[4]=new Point3d(0.4, 0.0, 0.0);
vertex[5]=new Point3d(0.3, 0.1*Math.sqrt(3), 0.0);

と書くとちゃんと描画してくれるのですが、iを用いて一般化したとたんに描画されなくなります。
なにがまずいのでしょうか?
190デフォルトの名無しさん:04/02/27 00:01
みなさん何使ってJAVA書いてますか?
お勧めお願いします。
初心者なので、色とかが変わってくれるやつのほうが見えやすいです。
192デフォルトの名無しさん:04/02/27 00:16
>>191
エクリプッスですか。検討してみます。
ありがとうございました。
えぐりプッスリ
>>189
上の方のコードは整数で計算されて小数点以下が切り捨てられてますな
vertex[i]=new Point3d(i*(2.0/30.0)+(4.0/30.0), 0.0, 0.0);
という風に書けばおけー
>>190
最強のエディタEmacs にAntでコンパイル
196189:04/02/27 00:47
>>194
ををを〜、できました。感動。
ありがとうございます。
197デフォルトの名無しさん:04/02/27 01:16
質問です。
JDBCドライバの自動再接続機能とは具体的に
どういうことでしょうか。
そういうクラスがあるのでしょうか?
>>190
NetBeansというものもある
いまだとSDKのダウンロードのトップについてくるし
java元締めのsunがこれベースに商用製品だしてる安心感
実際は大幅に操作しやすくなる3.6待ちな人多数か

それに対してEclipseをベースに商用製品だしてるのが
IBMって感じで覚えておけばいい

どっちつかってもいいけど、GUIエディットやらサーブレットコンテナ
などを内蔵していることから追加設定がいらないために
初心者にはNetBeansおすすめしてみる
んな




あほなーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
>>198
無料で使えるSwing GUIビルダなら、Eclipse
VisualEditorがいい感じ。NetBeansよりUIがいい。
Eclipse Tool Projectで提供している。

IBM主幹のオープンソースライブラリって、なんか一歩
こなれてる印象があるなあ。
>>178
5.0.19入れてる?なんかそれ系のフィックスがあるらしいが。
>>172
ワロタ
>>197
持続的接続じゃなくて?
204デフォルトの名無しさん:04/02/27 08:34
質問です。
PocketPC2002+PersonalJavaVMの環境下で動くプログラムを作成中なのですが、
如何せん日本語の表示が上手く出来ません。
上のタイトル(?)は日本語表示出来ているけれども、
その他、Labelに張った日本語等は表示できないと言う状況です。
自分なりに調べてみてフォントの指定やサイズが怪しいのかなとは思っているのですが・・・。
どなたか知恵を貸してください。
VEはまだまだ実用段階じゃないなぁ
1.0まちではないか?
206デフォルトの名無しさん:04/02/27 11:35
JDK1.42+JMF環境でスクリプトからビデオ・イメージ・テキストの開始時間を読み取り
対応する3つのInternalFrameにスレッドで時間が来たら
表示をするというプログラムを作成しているのですが
いろいろいじってみたのですが、技術がついていかず
スクリプトの情報(今はVectorに入れています)をメインプログラムに渡す箇所と
ビデオのためにcreatePlayerを行う部分が全く動いていません
お知恵を貸していただけないでしょうか?

メインプログラム、エラーハンドラ、スクリプトは以下のようになっています
よろしくお願いします

http://www.geocities.jp/aassddeegg/MDI2.java
http://www.geocities.jp/aassddeegg/MyErrorHandler.java
http://www.geocities.jp/aassddeegg/sample1.smil
>>206
なんでSwingつかってるのにFrame使ってるの?
208206:04/02/27 13:00
>>207
フレームというのはInternalFrameのことですよね?
おそらく他の方法の方がすっきりするとは思うのですが
各メディアを個々に表示するのに使いやすかったために使っております

以前containarや(スペル間違っていたらすみません)スプリットパネル等で
がんばってみたのですが、ビデオの再生がどうしてもうまくいかず
断念してしまいました・・

どうにか直してビデオのファイル名を指定しての表示はできるようになりました
値の受け渡しとスレッドでの時間記述のヒント・助言していただける方
居りましたらよろしくお願いします

修正後のメイン部のソースです
http://www.geocities.jp/aassddeegg/MDI2.txt
ちがうちがう
Frame
AWTとswingまぜるなってこと
211デフォルトの名無しさん:04/02/27 14:49
IBM、SunにJavaのオープンソース化を要請
http://www.itmedia.co.jp/news/articles/0402/26/news032.html

これって、いいこと?わるいこと?
Java自体のソースが手に入ることはメリットだけれど、
粗悪な亜種が乱立するデメリットが生汁可能性もあるな。
Javaのソースって今でもダウンロードできるよね。
ライセンスを緩やかにしろってことなのかな。
よくわかんない。
>>213
FreeBSDとかだと、Sun謹製のが出てくるまでに時間がかかったりしてるけど、そういうのがなくなるとかじゃないの?
あとは、debianにデフォで入るようになるとかかな。
215デフォルトの名無しさん:04/02/27 15:13
Javaのデバッガって何なのですか?そしてどうやって使うのでしょうか?
>>215
デバッガってのはデバッグをするためのツール。
で、お前はどこのどのデバッガのことを言ってるんだ?
俺はeclipseのデバッガ使ってるが、ブレイクポイント設定して、適当に実行してる。
で、その後1行ごと実行したりメソッドの中入ったりして、変数の値確認したり、フローの確認したりしてる。
>>216
ほー、そういうことが出来るというわけっすか。
ググってみますです。ありがとうございます!
>>211
それ自体がいいことかどうかはコメントしないけど、
IBMは単にこの前Javaのオープンソース化が求められてたのに便乗して
ライセンスフィーとSUNによる互換性検証をなくさせたいのがメイン。
そのほうがトンでもなく儲かるから。

>>212
今でもVM, JIT含めてソースは手に入る。
問題はライセンス。互換実装が"Java"を
名乗るのはSUNのライセンスが必要、その際に金を払わなくちゃならない。

ちなみにMSとの裁判でMSの弁護士が判事から引き出した
Javaと互換性がなくなるものを"Java"と名乗らずに出すのは合法、という
確認によって、生み出されたのが.net。

//.net CLIは9割方JavaVMと同じインストラクションセットのもの。
//違いは値クラスを作れること程度。
//シンタックスシュガーがたくさん付いたからC#のほうが"進んでる"かは疑問。
//要はどっちがコントロールするランタイムを使うのかってことがポイントかな。
219デフォルトの名無しさん:04/02/27 15:31
あの、技術的な質問ではないんですが、

僕はプログラマを1年やっています。EJBやらサーブレットをやっています。
ちまたの本はJava3Dやら、JMFやらいろいろ出てますが、これらって仕事で使うことあるんでしょうか?
やっとこさWEBプログラミングをなんとかおぼえたのにまだ手を広げるとなるとしんどいです。

WEBプログラミング以外もやらなくちゃいけないなら止めようとおもってます。
そこのところを教えてください。よろしくお願いします。
一応JCPで策定とかしてるんでそれなりに1社体制ではない現状で
ちょうどいい気がするなぁ

なんだかんだいってもSwingベースのアプリはWin、Linux,Macで
コードいじらずに問題なく動くし、サーバー分野も同じく問題ない

たぶんMSがかってにいじって互換性を失わせるようなことが
繰り返されるような気がする
みんな同じバイナリが動くなら独自拡張で生きていくしかないわけで
ブラウザ戦争のときように悪化してきそうだ


>>215
デバッガはSDKにはいってるだろ
ドキュメント読んでみなされ
>WEBプログラミング以外もやらなくちゃいけないなら止めようとおもってます。
それしきで音を上げるならさっさとやめたほうがいい。
すみません。PowerBuilderを3年やって今月からJavaのPGになった初心者です。
テーブルからClob型のデータを読み込み、String型に編集して出力という流れです。
StringはClobデータの改行コード毎に区切ったものを更に編集するという流れになっています。
ちなみにバージョンが1.3なので1.4で追加されたClobの便利なメソッドが一切使えません。

positionで改行の位置を求めてgetSubStringで取得すればいいよねと
思っていたのですが、改行コードをString型に見立てる方法がわかりません。
lngCnt = tmpClob.position("0x0D0x0A",1);
これは確実に書き方が違うのはわかるのですが、どうしたらいいのかサパーリ分かりません。
メソッド使わずにFor文で文字毎にチェックかけないとダメでしょうか?
経験者だという新入社員に聞いたらClobはわからないです〜ミャハ!でした。
お願いします、教えてください。こちらの板初めてなので何か失礼な点があったらごめんなさい。
223デフォルトの名無しさん:04/02/27 15:41
>>222
ClobからInputStreamクラスが取れるだろ。
それをBufferedReaderにつっこめば、readLineで改行ごとに取れるぞ。
ただし、readLineの返値に改行は含まれないから気を付けろ。
224デフォルトの名無しさん:04/02/27 15:44
>>219
一つの技術しかよりどころのない技術者は早晩潰れる。
いろいろなことに挑戦しようという意気込みがないヤツは、保守とか事務に回った方がいいかもしれん。
何でも新しいの使おうとするアホも困ったものなんだが。
225215:04/02/27 15:53
>>220
マジすか??
ドキュメント見てみましたけど、デバッガがどこにあるかなどよく分かりませんでした・・・
>>225
SDKのツールのjdbってのがそう。
>>223
ありがとうございます。何とかできそうです。助かりました。
>>214
今のFreeBSD版の JDK1.3 とかはFreeBSD財団の融資を受けた開発者と
ボランティアによる移植作業の成果で、Sun謹製のものではありません。
Sunから互換性の認定は受けてるけど。
229215:04/02/27 16:24
>>226
ぬう、使ってはみたものの
アプレット用クラスでmainメソッドが無い物は認知されないみたいで・・・
他にいいデバッガといったらやはり他からダウンロードするしかないんでしょうか。
他のデバッガを探すのに他からダウンロードせずにどうすると?
>>215
たぶん他のやつもお前には使いこなせないからやめといた方がいいよ。
232デフォルトの名無しさん:04/02/27 17:56
StringをCharに型変換する方法を調べるには、どこのサイトを使うのが良いでしょうか。
234219:04/02/27 19:07
>>224さん
どうもありがとうございます。僕は未経験者からでも入れる業界最底辺のプログラマで
1年たってもなかなか業界のことはわかりません。

一生懸命、自力(他人に聞ける人がいない)でやってきて、かなり限界を感じています。
もうちょっと続けてみて考えようと思います。

保守とかの方は会社がまわしてくれるかわからないですが、一応聞いてみます。

ありがとうございました。
場合によっては保守の方が大変ってのはあるだろ
ほとんどのプログラマは自力でがんばってる
書籍買うなりネットで情報仕入れたり

毎年新しいものがでてきてそれに飛びつくかどうかすらも
自分で判断しながらやっていくもの
枯れ具合とか情報の入手性とか

向上心がないのならSEプログラマは続けることは出来ないよ
これはjavaに限った話ではないし、ソフトだけの話でもないが
>>229
appletviewerにデバッグ用オプションがあるよ
でも操作が難しいから素直にEclipseとかを使うことをお薦めする。
>>234
Servlet と EJB は習得したんだろ。がんばれよ。
限界を感じてるのはなんで? 苦痛だという意味なら性にあってないんだろな。
聞ける人が居ないとは、技術がある人間が居ないってことか、居るけど聞けないのか
どっちか分からんけど、どっちにしても技術なんか自分で習得するもんだ。

あと、雑誌に惑わされるな。これからの標準とか書いてても、どっかの企業の
私利私欲が絡んでる。まー、ほとんど宣伝だ。通常、業界の標準になるのは
シンプルで簡単なものが多い。さらっと読んで動向をつかんでおいて必要に
なったときに調査すれば十分。
239219:04/02/27 22:34
>>235
そうですか、正直、保守っていうのがどういうことをやるのかもわかりません。

>>236
私もほとんどなに1つ他人から聞いたことはありません。教えたことはありますが、、
なんか行くプロジェクトが簡単な方?みたいなんですが、教えてくれるような人はいません。
すぐ抜けていき、交換要員でだれかが入ってくる感じです。その度に僕がどういうプロジェクトとかを
教えたりしていて疲れます。どの技術に飛びつくとかいうのも選ぶものですか。。
私は片っ端からXDOCLETとか(WEBDBPRESSとかにのってるやつ)習得しようと
頑張ったんですが非常に疲れました。。

>>238
どうも励ましの言葉ありがとうございます。僕にとって聞ける人は本当にいませんでした。
みなさんは、きっと新卒かなんかで多少なりとも上の人の下で働き教えてもらったことがあったと思いますが
私のところは高卒未経験でも入れるところで行くプロジェクトも本当に環境的にいい加減なところです。
書籍などもコアサーブレットとかオライリーの本とかJAVAPRESSとかWEBDBPRESSを
を買って調べまくった1年でした。DB2とオラクルとWEBSPHEREらの本でも5万ほど使っていると思います。

なんしろ全部本だけでしらべまくってサーバの設定とかやったので疲れてしまったのです。

でももうちょっと頑張ってみることにします。JAVA3Dとかの仕事がきたら、どうしようか考えます。

皆さんどうもありがとうございました。なんとなく心がすっきりして解決できました。
>>239
ずいぶんがんばってるじゃん。それだけやったら普通自信がつくかと思うんだけど
疲れちゃってるのはなぜ?

まぁアレだ。気晴らしの趣味でも見つければ。
ぶっちゃけると業務系は教えてくんばかりの人ばかりなことが多い
引っ張れるリーダー的な人(立場的にリーダーで無いことも多い)に
かなりの負担がかかる
かわいそうだがたぶん、その人にちみはなってるんだと思う
会社によってその立場とかいろいろちがうし、場合によっては転職もあり
ただ、プログラマとして1年くらいしか喰ってないのならすぐやめる人と思われて
採用されるのはきびしいかもしれない

それなりに力の抜きかたを覚えるのに時間がかかると思うので
若いうちはとにかく体力のある限り走り抜けろ
自然と技術と経験が付いてくるからいろいろと立ち回れるようになってると思うぞ
ま、俺は走り続けて体壊したタイプだが

どういう仕事してるかわからんが業務系ならJAVA3DとかJMFは少ないだろう
WEBアプリが今は多いだろうが、今後はリッチクライアント系が多いのかな
俺の仕事はここ1年はWEBアプリよりすでにSwingベースの3層式に移行している
やっぱりhtmlベースだと貧弱なGUIが厳しい
>>238
> あと、雑誌に惑わされるな。これからの標準とか書いてても、どっかの企業の
> 私利私欲が絡んでる。まー、ほとんど宣伝だ。

そうなのか?俺は雑誌に依頼されて記事も書くし、他の執筆者も仲間が多いけど
どっかの企業の私利私欲が絡んだ記事は書いたことないし、仲間もそんな記事
書かないけどなー。
記事と記事体広告の見分けがついてないんとちゃう?
>>242
。。。気を楽にさせる為の方便だったんだが。でも記事書く人は気悪いな。スマン。

まーでも記事書く場合は枯れた技術だけでなく、新しい技術とりあげるでしょ。
書くほうはそれなりに動作させてみてまとめりゃいいが、実運用に責任なんか
持たないでしょ。当たり前だが。

で記事を鵜呑みにして枯れていないもので苦労する香具師も少なからず、いると思う。
そいつが悪いと言えばそれまでだが。まースキルアップになるからマイナスには
ならないが。ってかマ板ネタだなこりゃ。
>>243
その気持ちはわかる。
企画を立てるのは編集部だし、雑誌という媒体の性質上、「新しいもの」を
求める姿勢は書籍よりも強いしね。
書いているこっちも「これは実用的じゃないよなー」と思いながら書くから
歯切れの悪い記事になったりすることも確かにある。
・・・すれ違いスマソ。>243以外のみなさん
245178:04/02/28 00:34
>>201サン
Tomcat5.0.19を入れたのですが、状況は変わりません。。
サイトを見ると「5.0.15で解決しています」と書いてあるのですが。。
ちなみに4.1.30も入れてみたのですが、
やはり同様に文字化けしてしまいます。。
誰か助けてー
>>245
念のため mime-mapping 晒してみて。Tack くん。
あと、HTML の META タグの文字セット指定も入れてみてそれも晒して。
247197:04/02/28 01:35
>>203
ええ。それではないと重います。
ttp://www.google.com/search?q=jdbc+%E8%87%AA%E5%8B%95%E5%86%8D%E6%8E%A5%E7%B6%9A%E6%A9%9F%E8%83%BD&ie=UTF-8&oe=UTF-8&hl=ja&lr=
ここの一番上のサイトにかいてあるんです。
気になったので質問してみました。

248デフォルトの名無しさん:04/02/28 01:39
配列を使うよりもArrayList等を使ったほうが処理が速いときがあると聞いたのですが
それってどういうときですか?
ArrayList以外にもHashMap等も
場合によって配列よりも処理が早くなったりすることがあるのでしょうか?
249デフォルトの名無しさん:04/02/28 01:44
URL.openStream()っぽいのでサイト側のディレクトリ内容を調べられますか?
FlashGetみたいな感じのものを作りたいのですが…。
すいません、また質問させてください。
Java2Dを使って、
▲▲▲▲
赤青緑赤

というように三角形を描くプログラムを作ってみました。
for(int i=0;i<=3;i++){
   polygon.moveTo(50+40*i,100);
   polygon.lineTo(90+40*i,100);
   polygon.lineTo(70+40*i,(float)(100-20*Math.sqrt(3)));
   polygon.closePath();

   if(i%3==0)
   {
       G2.setPaint(Color.RED);
   }
   else if(i%3==1)
   {
       G2.setPaint(Color.BLUE);
   }
   else if(i%3==2)
   {
       G2.setPaint(Color.GREEN);
   }
   G2.fill(polygon);
}
しかし、
▲▲▲▲
赤赤赤赤
となってしまいます。どこがマズいのでしょうか?
>>249
HTTPではそういう機能は規定されてない
FTPでなら出来る
ttp://jakarta.apache.org/commons/net/
とか使うと楽かも

どうしてもHTTPでそういうことをしたいなら
HTMLを読み込んでリンクを抽出するとかしないと駄目
>>250
参照値って知ってるか
253250:04/02/28 04:14
>>252
参照値とはどういったものでしょうか?ヒント頂けませんでしょうか?
>>250
そのコードだと
polygonに毎回三角形が追加されてる。
ループごとに新しいGeneralPath(?)を作るか、
あるいは使いまわしつつ↓のようにするか
polygon.moveTo(50,100);
polygon.lineTo(90,100);
polygon.lineTo(70,(float)(100-20*Math.sqrt(3)));
polygon.closePath();
Graphics2D g2 = (Graphics2D) G2.create();
for(int i=0;i<=3;i++){
//色設定省略
g2.translate(40);//AffineTransform使う方がいいかも
g2.fill(polygon);
}
g2.dispose();
255250=253:04/02/28 04:36
できました!ありがとうです。
しかし単純に見えて難しいです…。もっと勉強します!
>>248
ArrayListは配列を使ってリストを実現してるから
生の配列より速くなるということは無いかとおもわれ

HashMapの方はそもそも配列とは違う機能のものだから場合による

とりあえずArrayListとHashMapのソースを読んでみるといいよ
>>248
配列のサイズを変更する場合かな?サイズを動的に増やしたり減らしたりする場合、
配列は新しく作り直さないといけないので、それよりはArrayListのが速い。
でも、ただ要素を読み書きするだけなら>>256の言うとおり生の配列が速い。

HashMapも>>256の言うとおり機能が違うんで一概には言えないけど、
2次元配列でHashMapのようにキーと値を管理するのに比べたら、
要素数が多くなればリニアにキーを検索して値を取り出すよりもずっと速い。

サイズが変わらないんだったらそのまま配列を、動的に追加削除をしたいならArrayList、
キーと値を管理するような使い方ならHashMapでいいんじゃない?
そういや、前スレではJavaで配列を使う奴はバカって過激発言もあった。
Javaで配列を使う奴は超バカ
>>258
この前沸いたやつか?
260248:04/02/28 12:23
>>256 257
親切な回答ありがとうございます。

今回教えてもらったことを元に
ソースや本を見て再度勉強してみます。
261178:04/02/28 12:40
>>246サン
mime-mappingってどのファイルのですか?
htmlファイルのmetaタグの文字指定は、
<meta HTTP-EQUIV="content-type " CONTENT="text/html;charset=SHIFT_JIS">
です。
>>261
mime-mapping は web.xml。
あと、META タグは SHIFT_JIS だったら Shift_JIS のほうが正しい。
んで、マルチはイクナイ。
263178:04/02/28 14:29
>>262サン
METAタグをShift_JISに直しました。
で、web.xmlはTomcat5.0/conf/web.xmlでいいのですか?
それともWEB_INF/web.xmlですか?
ちなみにconf/web.xmlにはmime-mappingって言うのがいっぱいありました。
<mime-mapping>
<extension>body</extension>
<mime-type>text/html</mime-type>
</mime-mapping>
の事かと思って
<mime-mapping>
<extension>body</extension>
<mime-type>text/html; charset=Shift_JIS</mime-type>
</mime-mapping>
にしてみたりしましたがだめでした。
264デフォルトの名無しさん:04/02/28 14:48
配列とforループとdrawImageを使って、32*32の画像を1500枚表示しようとしているのですが、
これがなっかなか表示されません。試しにdrawImageの代わりにdrawRectでやってみたら
すぐに表示されたのですが・・・。
drawImageはそこまで重いものなんでしょうか??
そして、うまく軽く表示する方法はありませんか?(動作はappletviewer)
>>264
それほど重くはないはず。
もしかしてdrawImageする毎にgetImageしたりしてない?
あと、配列使って、ってことは画像ファイルは複数だよね、
画像ファイルはpaintが呼ばれる前に全部読み込み完了出来てる?
getGraphics()とか使った変な描画してない?

あとはソース見てみないとわからんちん
266264:04/02/28 15:41
>>265
あ、drawImageする度にgetToolkit().createImageやってます。
でもdrawImageでなく、試しにその情報をdrawStringで出力したら
割とスムーズに行ったので大丈夫かと思ったのですけど・・・

//haichh,haichwは共にint型の変数、imgbmapdは画像情報の入ったArrayList型の二次元配列、
//mapdata3は情報の受け皿
for(int i = 0;i < imgbmapd.size();i++){
haichh = i * 32;
mapdata3 = (ArrayList)imgbmapd.get(i);

for(int ii = 0;ii < mapdata3.size();ii++){
  haichw = ii * 32;
  imglistim = getToolkit().createImage((String)mapdata3.get(ii) + ".gif");

  g.drawImage(imglistim,haichw,haichh,32,32,this);
}

}

こんな感じでやってます。
> あ、drawImageする度にgetToolkit().createImageやってます。
これが原因だ。
268264:04/02/28 15:54
>>267
むう、その都度やらないで済む方法ですか。
別途ArrayListを用意し、それにgetToolkit().createImageを施した
Image型の要素をforでどんどんぶち込んでそれを別途forループで
drawImageして出力・・・とかっすかね。
>>268
> むう、その都度やらないで済む方法ですか。
素直に初期化時に全部読み込めよ。
いやまぁ、createImage() のパフォーマンスとか測定したいなら止めはしないが。
ちなみにToolkitのcreateImageメソッドとかは
"画像の読み込みを開始する"だけで、
実際の読み込みは別のスレッドで行われる。

こういう読み込みの完了していないimageを
"g.drawImage(image,0,0,this)" とやるとその時は描画は行われず、
読み込みの終了した時点でthisのrepaint()が自動的に呼ばれる。

ところがそこで呼ばれる>>266のpaint()では再びcreateImageしているので
このループが延々続くことになるのです。合掌。
271デフォルトの名無しさん:04/02/28 16:49
今日からJavaを始めたいのですが、全く知識が無いので
Java初心者に適切なホームページや本を紹介して下され。
273264:04/02/28 16:56
>>270
な、なんだってーっ!
それでは一体どうすれば的確に連続表示する事ができるのでしょうか・・・
274271:04/02/28 16:57
>>272
自分で探せということですか・・・
無謀な質問してすみません。とにかくありがとう。
Java初心者
プログラミング初心者
パソコン初心者

自称初心者ってのもいろいろいるからなあ
>>273
java.awt.MediaTracker なりを使って Image がロード完了するまで描画しないようにする。
277271:04/02/28 17:04
プログラミング初心者ってとこでしょうか。
パソコンの技術は、2ちゃんができて、なんとか自分のホームページを作れるレベル。
278264:04/02/28 17:12
>>276
しかしCanvas継承クラスなのでgetImageが使えず。
・・・スミマセンよく分かってません(汗
Image型の変数にどこで何をどう入れればいいのかとか・・・
スミマセンやっぱりよく分かってません_| ̄|○
>>278
描画する前に MediaTracker で強制読み込みかければいいってこと
とにかく MediaTracker の APIDoc 見てごらん
280264:04/02/28 17:59
>>279
読んでみました。MediaTracker型の変数にイメージを追加→読み込みで
先にイメージを読み込ませておくと、その後に
g.drawImageしてもrepaint()は発動されないということですか?
描画処理のたびに画像ロードするんだから
repaintが何回も動かないとしてもやるべきじゃないだろ

前準備
 ↓
処理
 ↓
後片づけ

が基本だ
まぁこの流れはjavaどころかプログラムにも限らないが
282264:04/02/28 18:10
>>281
んむう・・それでは、コンストラクタか何かで
MediaTracker型の変数にイメージを追加→読み込み、
そうすればcreateImage→drawImageしてもrepaintは発動せず
ロードは完了しているので表示処理のみ・・・ということでしょうか・
283ヨコレス:04/02/28 18:18
全然話の流れを呼んでいないので外しているかもしれんけど、

MediaTrackerでJavaヒープメモリへのロードまで事前に終わらせておいて、
ロードが終わっている画像だけを連続表示しろ、ってことちゃうの?
次の画像のロードが終わっていないうちは、EventDispatchThreadが再描画
要求してきても前のを再描画するようにするとか。
284デフォルトの名無しさん:04/02/28 20:27

NetBean使ってるんですが、これ、Javaで作られていると
思ったら、*.exeファイルなんですけど、どういう仕組みに
なってるんでしょう?

*.classをexe化する方法って公式に用意されてるんですか?
285264:04/02/28 20:39
MediaTrackerを使って改良してみました。

//コンストラクタ内、使用する画像を2枚として
MediaTracker mt = new MediaTracker(this);
mt.addImage(getToolkit().createImage("000.gif"),0);
mt.addImage(getToolkit().createImage("001.gif"),1);
try{
mt.waitForAll();
}catch(Exception e){}
・・・
for(int i = 0;i < imgbmapd.size();i++){
haichh = i * 32;
mapdata3 = (ArrayList)imgbmapd.get(i);

for(int ii = 0;ii < mapdata3.size();ii++){
haichw = ii * 32;
imglistim = getToolkit().createImage((String)mapdata3.get(ii) + ".gif");
g.drawImage(imglistim,haichw,haichh,32,32,this);
}

}

コンストラクタ内部で000・001.gifをロードし、
後はcreateImageでどんどんdrawImageしていく・・・
という風にしてみたのですが、こういうことでしょうか?
>>285
動かしてみれば良いかダメか一目瞭然だろ。
>>285
ぐぐればMediaTracker使って画像を表示するサンプルなんていくらでもある
288264:04/02/28 21:28
>>286
なんかまばらにポツポツっと画像が表示されると思うと
そこから動かなくなってしまいました。
な、何故・・・??
>>287
APIリファレンスの java.awt.MediaTracker のところにもサンプルがあったりする。
>>264
あいかわらずpaint()内でcreateImage呼んでるじゃん!
init()の中でImageオブジェクト作ってArrayListに入れとくんだよ。
291264:04/02/28 22:09
>>287
ググってみましたが、やはりどこもgetImageを使っているようです。
Canvas継承クラスなのでgetImageは使えないんす・・・
そもそも1.4なら標準でImageI/Oあるので苦労することこないんだがな
環境のこともかいてないからわからんけど

>>284
それJBuilder、Eclipseとかと同じくjavaをよんでるだけ
293デフォルトの名無しさん:04/02/28 22:42

スレッド内で時間稼ぎをするには sleep() が使えますが、
メインスレッドで時間稼ぎをするには、どのメソッドを
使えばいいんでしょうか?

294デフォルトの名無しさん:04/02/28 22:48
>>293
staticメソッドだったので、Thread.sleep() が
そのまま使えました。お騒がせしますた。
いや、同じ同じ
try {
Thread,sleep(180000);
} catch(InterruptedException e) {
}
って
exeにしなくても
バッチファイルで大体の用は済む
297264:04/02/28 23:30
>>290
あぁー、ArrayListの要素自体をImageにしてしまう方法っすかー。
そうすると結構ソース書き換えなきゃいけなくて大変ですけどやってみます。
298デフォルトの名無しさん:04/02/29 00:20
IEではjava.lang.Colorのアルファ値って使えないんでしょうか?

new Color(int rgba, boolean hasalpha)

new Color(int r, int g, int b, int alpha)
も使えないみたいで困ってます

どなたか使い方知らないですか?

IE では?MS JVM では、じゃなくて?
WinXPだと、ハナからJavaVM載ってないよね?
301298:04/02/29 01:09
>>299
はいそうです
MicrosoftVMです

>>300
XPですけどMicrosoftVM入ってましたよ
>>298
SunのJavaPlugInで起動するしかないかも。
MSのだとJDK1.1時代のクラスしか使えない。
303298:04/02/29 01:19
そうですか…

一応、
javac -target 1.1 *.java
でコンパイルは通ったんですけどねぇ
んー
-target 1.1はバイトコードのフォーマットが1.1時代のものに
なるってだけ。
305298:04/02/29 01:36
なるほど
知らなかったです
勉強になりました

なんか無理そうなんで、
アルファ値はColorとは別の変数で持つなりして頑張ってみます
ありがとうございました
MS JVMにこだわる理由はなんじゃろ?
307デフォルトの名無しさん:04/02/29 05:07
JavaでWindows機種依存文字を含む文字列
(例えばローマ数字小文字のD(=v))を扱いたい
のですが、楽な手順ありませんか?

EUCでエンコードされてる文字列に相当する
バイト配列を得て、SJISの文字列に相当する
バイト配列を得たいわけです。

要は上の機種依存文字の場合、
変換前 0xFC,0xF5→変換後 0xFE,0x44

JavaのStringコンストラクタやString.getBytes()等を使って
(new String(OrgByteArray,"EUC-JP")).getBytes("SJIS")
なんて事ができないのは承知してるので、byte演算で
どうかする方法か、既存のパッケージで対応しているのが
あるかどうか教えていただければと。
>>307
機種依存文字だろうがなんだろうが、Unicode(UCS-2)にマッピングが
ある文字なら、Javaのコンバータでできるはずだが。
>(new String(OrgByteArray,"EUC-JP")).getBytes("SJIS")
で出来ないなら(ホントに出来ないの?)自力でやるしかないんでわ。
>308
だから、Unicode(UCS-2)にないんじゃないかな。
ロシア文字のдとかギリシャ文字のδなんかは大丈夫ですが、
@とか鰍ニかVがダメなんですわ。(1.5βはまだ試してない)

IE等がやってるルーチンだから、それの模倣版がどこかに
あればという質問でした。
>>307
IBM の EUC-JP コンバータ(Cp33722)使ってもダメ?

>>308
SJIS とか EUC-JP (JIS X 0212 までだったか JIS X 0208 までだったか忘れた)では
IBMの拡張漢字サポートしてないのでダメだと思う。
SJIS で取得したい? Windows 機種依存文字なら Windows-31J じゃないの?
(new String(OrgByteArray,"EUC-JP")).getBytes("Windows-31J")

もとのバイト配列はどこから取得してんの? EUC_JP_LINUX じゃないよね。
SJISは1.4.1からかわったよ
> (new String(OrgByteArray,"EUC-JP")).getBytes("Windows-31J")
EUC-JP も機種依存文字非対応だろ…
>>312
変わったのは Shift_JIS だ。SJIS は変わってない。
>>313
そうなんか。EUC-JPコンバータは eucJP-ms(CP51932) じゃなくて eucJP-open ってこと?
>>315
EUC-JP は eucJP-open でも eucJP-ms でも無いと思われ。

CP51932(Javaのコンバータには無かったと思う) って eucJP-ms と同じなん?
>311
もとのバイト配列は・・・・・

ttp://jbbs.shitaraba.com/*/*/
からGETで取得してます(苦笑)。つまり、EUCでエンコーディングされている
したらば@JBBS対応のWebクライアントソフトをJavaで作成しているわけです。
AA系で機種依存文字のDとか使いまくり。
318317:04/02/29 12:28
1)数少ない(?)機種依存文字の変換ルーチンとバイト配列からの識別ルーチンを作って、
バイト配列からの切り出して変換→残りの部分を普通に変換→結合とするか、

2)機種依存文字とそれ以外すべての変換ルーチン作って、一括変換するか

どちらが正解か・・・・といったところでご意見いただければ(苦笑)。
情報があれば教えてください。

現在、JAVAでメールを送信しようと思っています。
ttp://www.hellohiro.com/javamail.htm
の記事を参考にメール送信を行ってみました。
結果は、正常にメールが送れました。
しかし、SMTPサーバによっては(?)、POP before SMTPのサーバも
あるわけで、その環境でメール送信するにはどうしたらいいのでしょうか?
質問内容をまとめると、POP before SMTPの実装方法の質問になるかもしれません。

ご存知の方いらしたら情報を教えていただければ幸いと思います。
よろしくお願いします。
EUC-JPは機種依存文字通らないよ
Shift-JISも通らないし、同じ扱いでは?

わざわざ通るようにしたのがMS932(windows-31j)ってだけ
>>320
EUC-JP に関してはそうだが、
Java では Shift_JIS == MS932のエイリアスだった時代は機種依存文字が通ったんだな。
MySQL入れると、なんか凄まじくOSが重くなるね。
常駐してるヤツ落とした瞬間しばらく動かなくなるよ。
mysql?誤爆か
どっちにしろInterbaseと並んで軽い部類だと思うぞ>mysql
MySQLってもうサブクエリ扱えるようになったのかな
まだなのかな
サブクエリーは4.1からできる

4からキャラクタセットまわりの細かい設定が出来るし
JDBC3.0まで対応しているので問題ない

まだ安定版でてないのでもう少し待ちだけどな
326307:04/02/29 14:24
>320
あっ、MS932使うと、そっちは通りますね。
これのEUC-JP版があれば・・・・・・
327307:04/02/29 14:40
EUCサイドもCP51932で通りました。 情報ありがとうございました。
>>327
(new String(OrgByteArray,"CP51932")).getBytes("Windows-31J")
ってやったってこと?
329デフォルトの名無しさん:04/02/29 15:17
Image imgt = getToolkit().createImage("a.gif");

この変数imgtの、「a.gif」という名前を抜き出すにはどうすればいいのですか?
>>329
Image とファイル名に関連なんかあるのか?
331307:04/02/29 15:40
>328
(new String(OrgByteArray,"eucJP-ms")).getBytes("MS932")

こっちかな。

うーん。ローカルで適当に作ったデータはOKだったけれど、したらばから
取ってきたUnsupportedEncodingExceptionになる(うーん)
ま、一筋縄ではいかんが・・・・他のところでバグってるんだと・・・思う。
>>329
そこでオブジェクト指向ですよ
>>331
javaのエンコーディング一覧みてみたか?

334307:04/02/29 17:06
ははは・・・・すんなり通ったというのが間違いだった。
文字列の初期化が・・・・・

結局・・・・しゅん。
335329:04/02/29 17:23
>>332
オブジェクト指向ですか・・・うーん、よくわからないっす。
ご教授くださいっ
>>319
先にPOPで認証終えてからメール出すだけじゃない?
それと、最新のJavaMailはSMTPAuthもサポートしてるから、
POPbeforeSMTPよりはそっち使った方が楽だよ。
>>329
>>330に聞いた方がいいぞ、多分。何でファイル名なのかとりあえず説明してみろ。
>>307
http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html
みてからためそう。で、通らない文字ってしたらばからもってきたとき
16進表記でどうなってるのよ。
339デフォルトの名無しさん:04/02/29 19:23
以下のメソッドを作って、DLしたいURLをwhileで回しました。
そうすると、java.net.MalformedURLException: no protocol:
となってしまいました。原因はなんなのでしょうか?
1つ1つ単品で行うとこのエラーは出ないので、連続でDLするのがいけないのでしょうか?

File f = new File(s);
BufferedInputStream in = null;
BufferedOutputStream out = null;
try{
System.out.print("*");
URL url = new URL(s);
in = new BufferedInputStream(url.openStream());
out = new BufferedOutputStream(
new FileOutputStream(outputpath+f.getName()));
int b;
while((b=in.read())!=-1){
out.write(b);
}
}
MalformedURLExceptionが出るなら
単にその文字列sがURLとして変なんだよ。
new URL(s)以降の処理はそのエラーとは関係なし。

エラーが出たらどの行で出たのかをチェックして
例外の意味をAPIマニュアルで確認しる。
341329:04/02/29 19:33
>>330
そのImageの変数からファイル名を取得し、テキストエリアに表示したいのです。
それで色々とググってみたのですがそれらしき関数は見つからず・・・
ご教授ください!
"D".getBytes("MS932") って fa,44, なんだが、
>>307 では 0xFE,0x44 なんだよね。不思議不思議。

ちなみにユニコードだと 2174 D SMALL ROMAN NUMERAL FIVE
とかその辺だと思われ。
343デフォルトの名無しさん:04/02/29 19:37
JAVAでGUIをやりたいんですが、参考書にはAWTは複雑の処理は向いていないのでSwingを紹介しておくと書いてありました。
でもSwingは遅いとどこかで読んだんですが、なにでGUIを作ればいいですか?
>>341
java.awt.Image にはそんなメソッド無いよね。
Image とは別々にファイル名保存しとけば?
>>343
Swingがでた当時のマシンはクロック200MHz以下だったのよ
メモリももちろん少ないし
今ではjavaVM自体の速度もとんでもなく速くなってる

なんの確認してもいないのに遅いとかいうな
適当に組んでみて遅かったら考えてみろ
346329:04/02/29 20:08
>>344
うーんむ、そうですか・・・
ありがとうございますっ
>>346
結局オブジェクト指向の利点は活用しないのだな
348デフォルトの名無しさん:04/02/29 20:28
古い人間なんでよくわからないのですけど、通常のアプリはEXE
形式の実行ファイルがウィンドウズ上で動作すると思うんですけど
Javaで作成したアプリをウィンドウズ上で動作させるには
前準備としてあらかじめインタプリタ(VM?)のようなものを
入れないといけないのですか。逆から言うとVMがない環境だと
ウィンドウズ上でJavaで作成したアプリを走らせることは出来
ないということでよろしいのでしょうか?
VMがない環境だと走らないシステムにどういった利点があるのですか?
市販ソフトやフリーウェアーでJavaで作成したアプリはあまり
お目にかかったことがないのですけど。



OSがない環境だと走らないシステムに意味はあるのでしょうか?
> 逆から言うとVMがない環境だとウィンドウズ上でJavaで作成したアプリを走らせることは出来
> ないということでよろしいのでしょうか?
そうです。
もっとも、アプリと一緒に VM も配布してしまうという方法もありますが。
351デフォルトの名無しさん:04/02/29 20:37
>>345
いや、つい最近のものに遅いと書いてあったんだが
立ち上がるまでは遅い。
一度立ち上がってしまえばそうでもない
>>348
Java製アプリにお目にかかったことがないのは、
Javaがクライアント用にはあまり使われないからだろうね。
サーバ用ではOracleとか積極的に使ってたりするよ。

ところで、古い人間にもかかわらず、全角英数使うんだな。
>>348
Windows 上で普及してないのは事実。
Web アプリは開発 Windows、本番は Solaris とか Linux ってのが
楽にできる。要は開発側の都合だ。使う側からしたら、どの OS 上でも
動くってのはどうでも良いことで、それぞれの OS ごとにネイティブで
作れよって思うのが当たり前。

>>349
Java だと OS はいらんのか。
>>348
正直、PC上で使うソフトでJavaであるメリットは薄いと思う。
作るメリットはあるけど、使う上でのメリットは。

リソースの隠蔽もできないし。
逆コンパイルの可能性もあるし。
ソフトの配布がからも、いろいろと考えないといけないことがある。

VMをかませているのは、
逆にVMのインストールされている環境ならば、
同じバイナリがWindowsでもUNIX系でもどこでも走るという理念のため。
>>354
VM が動くなら OS は要りません(理論上は)。
>>356
そう言うと思った。VM だけで OS はいらないという過去の妄想はいらん。
358デフォルトの名無しさん:04/02/29 20:49
>>349
>>350
ご回答ありがとう。
でもJavaはVMのおかげでプラットフォームに依存しないことに
なると思うんですけど、実際OSがコロコロ変わるアプリケーション
ってそんなにないとおもうんですけど、Win向けにアプリを作成
するならなにもJavaにVM履かせて走らせなくてもよろしいかと。
よってVC++かVBがよろしんじゃないかと思ってしまうんですけど
やっぱり私は素人の考えですか?
>>358
> よってVC++かVBがよろしんじゃないかと思ってしまうんですけど
それで良いんじゃないの?
>>358
いえ、そうだと思います。
俺もクライアントサイドで何か作るときに、Javaを使おうとは思いません。
>>353
>ところで、古い人間にもかかわらず、全角英数使うんだな。
ほえ?
>>361
昔の人は資源の少ない世界を生きていたから、
無駄に領域を食う全角文字を使わないんだよ。
>>358
Windows 向けなら Java なんか使う利点はひとつもない。
マルチプラットフォームなら開発者は楽になる。
使う側に利点はない。それぞれの OS 上で動くネイティブなものが
あれば良い。使う側に利点が無いからクライアントでは普及しない。
特に Oracle なんかは世間に流されて GUI のツールは Java。
OS 別に作らんでいいから楽なんか知らんが、使いにくすぎる。
OTN Viewer も Java。ダサすぎ。

俺は Java 使い。アンチではない。念のため。
>>364
単なる Java 使いのアンチだな。ストレス溜まってそう。
>>363
Windowsのネイティブアプリ同様の使い勝手を実現できなければ
クライアントで普及することは永遠にありえないと言うことか…

でもなあ、HTMLベースのWebアプリなんて、UIは超糞だけど結構
普及しているよ?(これこそ利用者に全くメリットのない、開発者
が一様に馬鹿であるという都合で生まれた最悪の糞UIだと思うん
だが。とっとと消えて亡くなれ思う。)慣れの問題ちゃうかな?
>>366
ところが素人さんには、意外とWebアプリで作られるポップなデザインは人気があったりする。
>>367
だから、慣れの問題ちゃうか、と。
HTMLベースUIは、ネットで何かしたことのある人なら誰でもわかる。
お前らがどんなに騒ごうが、俺が包茎であることには変わりがない
>>369
出せ。
剥いてやる。
>>369
恐れ入りました。私を弟子にしてください。
>>366
Web アプリ自体にでかい利点あるだろ。インストールがいらない。
ただ、利用者はサーバが .net でも Servlet でも関係ない。
>>369
わーい、オナカマオナカマ。
>>372
同じ値段で、使える状態になっているクラサバシステム2つ、
片方はWebアプリ、お客にとっては、インストールがいるかいらないかなんて、
意味がない。
漏れ最近linuxメインに移行したんだけど
自作ツール類とEclipseがそのまま動くのは助かったよ。

でもWindows用に作るんならVB/VCの方がいいってのは賛成だし
マルチプラットフォームにしてもRubyとかPythonとか
選択肢は色々あるし好きなのつかえばいいじゃん
と、趣味プログラマの自分は思うのでした
つまり、JITじゃないネイティブ・コンパイラが充実すれば皆幸せと。
>>374
使える状態になってるなら、そうだろな。
Java は完全に開発者側に都合だな。
素人さんに「スゲェ!!」と言わせたいだけなら、
下手にGUI使うよりコマンドプロンプトの方が良かったりしてw
今後.NETもwin32にかわる標準APIになっていくわけで
マシンコードネイティブのアプリってのは減っていくんじゃね?

1.4.2での高速化具合を考えると今後はこっち方面でVMが
各環境に合わせた最適化をしていくとおもわれ。
>>378
この場合に、びっくりさせるべき対象の素人さんと言われて、
「客」を意識ないやつは仕事としてやっていないということ。
381307:04/02/29 21:50
>338,342
あっ、無いのはきづいてたんだわ。ダメもとで(裏技的に)
通ってしまわないかと試してた。別のバグで勘違いしちゃったけど。
(変換できない時に落ちるルーチン殺しててその次に走ってた
比較用の文字列を表示させるルーチンの結果をみて、
うまくいったと勘違いした・・・ドジだ)


えーと。Dは、したらばから、fc,f5と流れてきます。
(DをIE等で変換してもそうなるので辻褄はとれてるんですけどね)
(あとMS932のfe,44は誤記でfa,44で正解)

この配列(byte[] b)をもとに
new String(b,"EUC-JP")とすると、通らないので?になっておしまい。

しょうがないから、通らない文字を全部ピックアップして、EUC→SJISの
対照表作成して通すことで作業してます。
(しかし、演算でどうにかなるかと期待したけれど、それが無理っぽいほど
 規則性ないですな・・・MS932での機種依存文字配列の配置・・・・)

仕事じゃないからのんびりやってます。

ネット回りはJavaがシンプルなんでJava使ってるけれど、この辺は
IEコンポーネントいじった方が楽だったかな(苦笑)。
開発者側のJavaの利点として、もう1点大きいのがある。
C++と違って、細かくて難しい仕様を理解していない似非プログラマやSEでも
メモリリークとかアクセス違反とかを起こさない安全なアプリをオブジェクト指向
を使って作れるってこと。
VMさえしっかりしてればなw
>>381
libiconv のソースとか漁ってみると良いかも。
MS拡張を考慮したeuc->sjis変換をしてMS932でStringにするのが簡単だと思う。多分。
384デフォルトの名無しさん:04/02/29 22:18
つまりJavaやってる香具師には包茎が多いと。
>>381
UCS-2にないのか。じゃあJavaで扱うのは非常に面倒だろうなあ。
どうせ使われていないサロゲートペア領域に適当に置いてしまうとか、
だめかいな。
387329:04/02/29 22:40
>>347
えーっ、オブジェクト指向の利点と言われても・・・うー。
わからないです・・・教えてください。
>>388
あれ?あるのか。じゃあ、単にバイトコードとUCS-2間の置換に利用し
ているコンバータを正しく選択すればよいだけ、ということでよいんか?
>>389
そう。
で、問題は対応するコンバータが(たぶん)無いって事。
>>390
なるほど、じゃあ誰か作れってことだな。マンドクサー。
>>387
そんな一行レスをいちいち真に受けるなよ
すくなくとも漏れは>>347が何を言うたいのかわからん
HashMapにファイル名とImageオブジェクトの組を持っておけばいいだけだよ
>>392
まー普通に考えたらファイル名と Image をフィールドに持って
Image オブジェクトに委譲するデコレータにするわな。
394392:04/02/29 23:56
なるほど。すまんかった
でもそれは少々やりすぎだとは思わないか
やりすぎどころかやる必要がまったくないよ・・・。
すいません、以前に準備で挫折したものですが、解決してないので気になってかきます。
1.環境変数の設定のとき、デフォルトの temp ってやつをあやまって削除してしまいました。
これはもとにもどせないの?
2.無線でJavaのインストールは可能ですか?
>>336
ありがとうございます。
それでやってみます。
せめてこの位で勘弁したってくらはい
static class ImageInfo {
String fileName;
Image image;
}
>>396
> これはもとにもどせないの?
再インストールすれば?

> 無線でJavaのインストールは可能ですか?
無線って hello CQ CQ とかゆー奴ですか?
400デフォルトの名無しさん:04/03/01 00:40
時間を表示させるプログラムを作ろうと思ってるんですが
書きかたがわかりません。
DST_OFFSETやTimeZone などが必要だということはわかったのですが・・・
すみません・・教えてください
import java.text.*;
import java.util.*;

System.out.println(new SimpleDateFormat("yyyy/MM/dd hh:mm:ss").format(new Date()));
すいません。どっかにJAVAのソースが沢山あるとこ知りませんか?

どうも独善的なプログラム作ってる気がするんで(それでも動くんですけど)

参考にしたいんですけど・・・
>>402
「Javaプログラム クイックリファレンス」は?
もっと高レベルを望んでるのかな?
>>402
$JAVA_HOME/src.zip
405デフォルトの名無しさん:04/03/01 02:01
IPを表示させるプログラムです
import java.net.*;

public class d
{
public static void main(String args[])
{
String d;
d = new InetAddress;
System.out.println(d.getAddress());

}
}

でもなぜかエラーが出るんです。
間違ってる場所・・ご指摘お願いします
>>405
かっこがない
d = new InetAddress();
というか、コンパイルエラーの見方を覚えようよ
407406:04/03/01 02:09
ごめん、間違い
InetAddress a = InetAddress.getByName(args[0]);
System.out.println(a.getHostAddress());
かな。もう寝る。
408デフォルトの名無しさん:04/03/01 02:51
やっぱりだめでした・・(エラーも書いたのですが)
なぜでしょう、どなたか教えてください
409408:04/03/01 02:53
>>408さんの書き込みに対してです(一応)
410408(またまた訂正;):04/03/01 02:54
>>408じゃなくて>>407
>>408
だからエラーメッセージを読んで意味を考えようよ。
InetAddress#getByName()はUnknownHostExceptionっていう例外を投げることがあるんだよ。
(APIマニュアルでInetAddressなりUnknownHostExceptionを調べれば意味はわかるはず。
だからtry/catchで括って例外が発生したときの処理を書くか、
あるいは単に
public static void main(String[] args) throws UnknownHostException
として例外が起きたらプログラムを抜けるようにするかすればいい。
412408:04/03/01 04:01
私もいろいろ対処しました。
411さんのおっしゃるとおり例外の対処もしてます。
しかしInetAddressはパッケージ外から
アクセスできないといわれます
なのでNEWの文字を取って普通に代入してみました(Importしているので)

するとこんどは

de.java:8: シンボルを解決できません。
シンボル: メソッド InetAddress ()
場所 : de の クラス
d = InetAddress();

de.java:9: シンボルを解決できません。
シンボル: メソッド getByName ()
場所 : java.lang.String の クラス
System.out.println(d.getByName());
というエラーが。
この意味をずっと考えてるんですがわかりません
たびたびですがもう一度教えてください
> なのでNEWの文字を取って普通に代入してみました(Importしているので)
>>408
とりあえず>>407の2行を理解してからまた来てくれ。
>>408は、Java以前にオブジェクト指向プログラミングの方法を
学んだ方がいいのでは。
VBとかのノリでコーディングしちゃいかんよ。
あと、コピペするのも結構だが、処理の内容を的確に理解しる。
特定のディレクトリにあるファイルを全部読む処理(grepみたいな処理)をしたいんですが、
javaでのディレクトリのクラスが見つかりません。
手持ちの解説書なんかはGUIの話ばっかりで・・・

どうすれば良いのか教えてください。
>>416
java.io.File
>>416
File
>417,418
ありがとうございます。
灯台下暗しでしたw
420デフォルトの名無しさん:04/03/01 12:27
質問です。
String型の変数にパスを入れようとして、

String test;
test = "C:\";

のようにしてみたのですが、コンパイルが通りません。
「\」が原因みたいなのですが、どう対策したら良いでしょうか?
それと、できればアプリケーションの実行パスの取得方法も教えてください。
よろしくお願いします。

421デフォルトの名無しさん:04/03/01 12:29
>>420
String test="C:\\";
422329:04/03/01 15:47
>>398
やっぱりImageからとる事はできないっすかー。
それじゃあImageとは別にファイル名を格納する変数を持たせます。ありがとうございます!
「ヘルパークラス」の定義って一言でいってなんでしょう。
424デフォルトの名無しさん:04/03/01 16:22
環境はWinXPです。
Exception in thread "main" java.lang.NoClassDefFoundError: aa
と出るので、あれこれ自分なりにネットを見たり考えたりして原因を考えました。
そして、
set CLASSPATH=C:\app\eclipse\plugins\org.eclipse.swt.win32_2.1.1\ws\win32\swt.jar
をやることにより、OSに設定した環境変数が上書きされてしまっていることがわかりました。
対処法はありますでしょうか?
>>1のリンク先を読め
>>424
CLASSPATHをセットしないで、毎回javac -classpathとかjava -cpで指定するようにしる。
>>426
間違いじゃないけど面倒すぎ
>>424
Eclipse で実行テスト or デバッグするなら、
それぞれのテスト・デバッグに対してクラスパスを設定できる。
やり方は自分で探せ。
Makefileを書いとく。Antでも可。
430デフォルトの名無しさん:04/03/01 18:17
byte[]をStringに変換するにはどうすればよいですか?
431デフォルトの名無しさん:04/03/01 18:19
>>430
byte[] buf;
String str = new String( buf, encoding );

encodingに何を指定するかで変わってくるから気を付けろ。
432デフォルトの名無しさん:04/03/01 19:49
Appletを継承しないでcreateImageを使うにはどうすればいいのでしょうか。
>>432
Toolkit#getImage
SDK バージョンによって最適な方法が違うので APIDoc 読め。
>>432
Applet を継承しても createImage は使えません。
435デフォルトの名無しさん:04/03/01 20:20
サーブレットで動的にファイルを作成し、resopnse.getOutputstreamに
作成したファイル内容を出力しています。

ブラウザにファイル処理のダイアログが表示され、ここで「開く」を選択した場合に
問題が発生します。

「保存」を選択してファイルを保存した場合には作成した内容を確認できるのですが、
「開く」を選択すると関連付けしているVBプログラムは起動するのですが、ファイル内容が
読み込まれません。

関連付けにDDEを使用した場合にはファイル内容は読み込まれるのですが、ファイルが見つかりませんと
いうエラーメッセージが表示されてしまいます。

Operaで試したところ、DDEを使用しない場合でもエラーメッセージが表示されることなく、
作成したファイルを読み込むことができました。

また、xlsに関連付けした場合には何の問題もなくファイルを読み込むことができました。

ダイアログで「開く」を選択して作成したファイルを読み込みたいのですが、
どうすればよいのでしょうか?
すいません、コメント求む。
import java.text.DecimalFormat;//デシマルフォーマットのimport
class FormatTest{
public static void main (String args[]){

int x = 1234567; //変数宣言
DecimalFormat df = new DecimalFormat(",###");//???

System.out.println("x = " + x);
System.out.print("x = " + df.format(x));//???
}
}
>>427
でもこれが一番推奨される方法だな。
Ant等を使えばそれほど面倒ではない。
必要なクラスパスはアプリによって違うし
コンパイル時と実行時でも違うから
環境変数に入れてしまうのは良くない
>>436
コメントを求める前にAPIリファレンス読め
439436:04/03/01 20:52
どの単語で調べるの?
>>439
java.text.DecimalFormat

しっかし、単語って…
441デフォルトの名無しさん:04/03/01 21:06
>>435
ヘッダとか確認してみ。
>>439
APIリファレンス見るのに単語も何もないだろ。
該当クラスorインターフェース見ればいいだけ。
443424:04/03/01 21:15
>>1のリンク先読んで、
set CLASSPATH=C:\app\eclipse\plugins\org.eclipse.swt.win32_2.1.1\ws\win32\swt.jar

set CLASSPATH=C:\app\eclipse\plugins\org.eclipse.swt.win32_2.1.1\ws\win32\swt.jar;
にしたあと、javac、javaをやってうまく動きました
どうやら僕の推測は間違っていたようですね。
「;」が足りなかっただけのようです
444436:04/03/01 21:16
うーん、使い方がよくわかんないよ。
DecimalFormat は、10 進数をフォーマットする NumberFormat の具象サブクラスです。
でよいのか?
445432:04/03/01 21:26
Toolkit#getImageはこれのことですよね。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/awt/Toolkit.html#getImage(java.lang.String)

ソースは以下のようになっていますが、 extends Appletを消すとコンパイルでエラーになります。
どのようにgetImageを使えばいいのでしょうか。
import java.awt.image.*;
import java.awt.*;
import java.applet.Applet;
public class Map extends Applet{
Image testImage = createImage(100, 100);
Graphics testGraphics = testImage.getGraphics();
}
>>436

import java.text.DecimalFormat;//デシマルフォーマットのimport
class FormatTest{
  public static void main (String args[]){

    int x = 1234567; //変数宣言
    DecimalFormat df = new DecimalFormat(",###"); //俺は包茎です

    System.out.println("x = " + x);
    System.out.print("x = " + df.format(x)); //彼女は内心笑っているんだろうな…
  }
}
445は画像1500枚の人?
448432:04/03/01 22:39
画像1500枚?知りませんよ。
じゃちょっとこのスレの過去ログ読めばヒントになるかも
450デフォルトの名無しさん:04/03/01 23:09
ディレクトリのコピーを行いたいのですが、もしかして自分で書かないといけないのでしょうか?(;´Д`)
>>450
うん。
JOptionPane のデフォルトフォントはどうやって設定するんかのう

UIManager.put("OptionPane.font", new java.awt.Font("Arial", 0, 10));
などとやってみたが効果なし

・new クラス名( );
・getクラス名( );
・クラス名 newInstance( );

突然ですがこやつら↑実行時にそれぞれ取得できるモノって
ほぼおんなじモノと考えてOKでつか。
>>453
getクラス名()って何だ?java.lang.Object#getClass()か?
クラス名 newInstance()はjava.lang.Class#newInstance()か?

new クラス名()は引数なしのコンストラクタを使ってインスタンスを生成する。
getClass()はそのクラスのjava.lang.Classのインスタンスを返す。
java.lang.Class#newInstance()はそのクラスの引数なしのコンストラクタを使って
インスタンスを生成してjava.lang.Objectとして返す。ただし、本来throwされない
例外も実行時例外みたいに飛んでくるので注意すべし。
455408:04/03/02 03:13
皆さんご指摘ありがとうございます
単にIPを表示させようとしてここまで手間取ってしまって・・・
では・・・皆さん単にIPを表示させるのはどうすればいいのでしょうか・・・
私では記述できないので・・・
教えてください・・・お願いします。
>>455
>>407
コピペもできないんじゃ、素直に諦めた方が無難。
457408:04/03/02 03:55
>>456
いえ、コピーペーストぐらいならできます。
(さっきのWENを消したらできるって言うのは間違いでした)
勉強になると思って、IP表示のプログラムを選んだわけですが、
今度失敗したらもうこのことについて質問はしません あきらめます
最後のチャンスを・・・くださいませんでしょうか・・・
>457
そもそも、何のIPアドレスを表示させたいんだ?
(各自、適当に推測して回答してるけど)

プログラムの目的すらあいまいなものに・・・・
どうコメントやアドバイスができるんだ?
407辺りの回答は、コマンドラインから入力されたホストのIPアドレスを表記というもの
ものすごーく、馬鹿丁寧に書くとこうなる。(スペースは変換しろよ)
import java.net.*;
public class d{
 public static void main(String args[])throws Exception{
  InetAddress a = InetAddress.getByName(args[0]);
  System.out.println(a.getHostAddress());
 }
}

java d pc2.2ch.net とか java d localhostとかすれば・・・・・・
460デフォルトの名無しさん:04/03/02 12:24
無償で提供されてる環境で、
実行形式のファイルは作れないのでしょうか?
>>460
実行形式のファイルを作るソフトを作る環境は無償で提供されてるよ
実行形式ってexe?
463デフォルトの名無しさん:04/03/02 13:20
J2SE 1.4.2 のインストールを何度か試してみたのですが
必ずインストール中に8%の所で止まってしまい
数十分待っても動かない状態です
過去ログを見ても同様の症状が見つからないですが
何か考えられる原因はありますでしょうか?
よろしくお願いします
突然ですが、クイズです。
>>463の使っているOSは?
環境かいてもらわんと
466463:04/03/02 13:33
OSはWinMEです
HDDの30GBのうち残り容量1GBで メモリ320MBです
>HDDの30GBのうち残り容量1GB

よくこんなところに開発環境を入れようなんて考えるもんだ。
まずは29GBの得ろ画像をなんとか汁
469463:04/03/02 13:42
>>468
分かりました、なんとかして出直して来ます
470デフォルトの名無しさん:04/03/02 14:12
同じ画像が2つ表示されるはずなのに、何故か下の1つしか表示されないことがあります。何故でしょうか?

import java.applet.Applet;
import java.awt.image.*;
import java.awt.*;

public class HogeHoge extends Applet{
Image offScreenImage, img;
Graphics offScreenGraphics;

public void init(){
offScreenImage = createImage(480, 320);
offScreenGraphics = offScreenImage.getGraphics();
Image originalImage = getImage(getDocumentBase(), "image.gif"); //320x128
MediaTracker mt = new MediaTracker(this);
mt.addImage(originalImage,0);
try{ mt.waitForAll(); } catch(InterruptedException e){ }
img = createImage(new FilteredImageSource(originalImage.getSource() , new CropImageFilter(0, 0, 32, 32)));
offScreenGraphics.drawImage(img,0,0,this);
}

public void paint(Graphics g){
g.drawImage(offScreenImage,0,0,this);
g.drawImage(img,0,32,this);
}
}
>>460-462
俺も詳細きぼんぬ。
472460:04/03/02 14:39
>>461,462
回答ありがとうございます。
実行形式はexeのつもりで書きましが、調べてみたところ、
エクリプスで、実行形式の拡張子「jar」のファイルが作れる事が分かりました。
しかし、このファイルは開発環境がインストールされていないと実行できないようです。
通常の拡張子exeのファイルとかは作れないのでしょうか?
473デフォルトの名無しさん:04/03/02 14:48
>>472
gcjとかで作れるかも。調べてみて。
>>472
jar は実行形式の拡張子ではありません。
実行形式とはそもそも何なのかちゃんと理解してください。
その上でさらに、 Java とは一体どのようなものであるか、
もう一度きちんと理解した上で要望を述べて下さい。
「通常の」など笑止千万。

あなたは今「ケニアではどこにいけばもんじゃ焼きを食べられますか」
と聞いてるようなもんです
475デフォルトの名無しさん:04/03/02 14:54
JavaでFileMakerPro6に接続していろいろ操作したことある人います?
FileMaker用のJDBCドライバがあるだろ。
それ使え。

NetBeansってショートカットがexeなんだが
どうやってんだろうな?
>>477
既出。Javaアプリケーションを立ち上げるためだけのWindowsネイティブアプリ。
479デフォルトの名無しさん:04/03/02 15:16
>>472
>>473のgcjもそうだけど、Windowsの環境だったらExcelsior JETのPersonal版ってのもある。
拡張子.jarが実行できるのは、.jarがjavaw.exeに関連付けられてるから。
.txtを開くとnotepad.exeが起動されるのと一緒。
だから、.exeとか.comとかの実行形式とは少し違う。
横槍訂正
>だから、.exeとか.comとかの実行形式とは少し違う。
まるで違う。
>>478
既出って、過去レスで作り方まで出てるの?

ってか、クラスファイルをダブルクリックで実行できないって
Sunは初心者のことを軽視してんじゃないの?
>>481
同じこと聞くやつがよくいる。「eclipseの実行ファイルはexeだけどどうやってるの?」とか。
作り方が知りたければこの辺を参考にするといいかも。
ttp://www.mobster.jp/agata/mobexe/
>>482
必ずしもclassファイルにmainがあるとは限らない。
>>481
http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi?page=BootJava
こんなのどう?

>>482
UNIX生まれだからかな。
487デフォルトの名無しさん:04/03/02 15:25
どこから実行されるの?
jarファイルがダブルクリックで実行できるんだから問題ないのでは?
classファイルをダブルクリックってのはdllが単体で動かせないといってるようなもの
static mainが必ずある訳じゃないし

どもども。参考になりますた。
とりあえず jar の使い方覚えねば。
>>472
SwingスレとかSWTスレでもネイティブコンパイルについての話が出てるけど、
おおむね、あまりメリットは無いという結論になってる。
JREは入れてもらって、>>484とかを使うのもいいかもよ。
「初心者のこと考えてないんじゃないの?」と言う奴ほど、
何も考えてない、あるいは考えるだけの知識を持たない初心者
>>489
理解するために最初はコマンドラインでやったほうがいいけど
理解できたら統合環境つかったほうがいいよ

そうすればjarファイルを作るのも別にコンパイルだけするのと手間はかわらん
というか、圧縮も自動的にやってくれるし各種リソースも手軽まとめれることから
むしろ便利だったり
>>482
その場合、パッケージとクラスパスをどうやって解決する?
Mac OS Xだと
classファイルのダブルクリックで実行できるよ。
内部でjavaコマンドを実行してるだけだと思うけど。
Eclipse は初心者のことを考えて起動用の exe を用意している。
JRE はいるけどな。Java初心者ではなくて開発に関係ない一般の
Windowsユーザから見れば exe であったほうが抵抗はない。

コマンドラインからやったほうが勉強になるとか、jar ダブルクリックで
いいというのは開発者の身勝手な都合。
>>492
どもども。もともとNetBeans使ってたんですが、
Jarでまとめて見ました。
クラス2つのシンプルなコンソールアプリでしたが、
とりあえず動作を確認しますた。
>>494
クラスパスはどうなってるの? 起動するクラスごとに手で
変更するの?
>>497
hoge.classのダブルクリックは
そのファイルのあるディレクトリで、
java hoge
を実行するのと同じなんだと思う。
-classpathオプションが必要な時は使えないはず。
適切に作ったjarファイルならダプルクリックで起動できるし、
ネイティブアプリと同じ形式のパッケージファイル(拡張子.app)にもできるよ。
>>498
じゃ、.class は Windows でも関連付けすれば同じなんだね。
ネイティブ形式に出来るのは良いね。OS X ホスィな。。。
http://java.sun.com/
↑ここ落ちてない?つながらないんだけど。
Sun トーサンΣ (゚Д゚;) 
>コマンドラインからやったほうが勉強になるとか、jar ダブルクリックで
>いいというのは開発者の身勝手な都合。

いまや Windows のクライアントアプリケーションを設計するのは
Java の本義ではないもの。
どんな言語で書いてもあまねく exe にできるべし、
というのはプログラミング初心者の身勝手な都合。
>>495
開発者とユーザの話をごっちゃにしてるが、
ユーザがもっと手軽に実行できる環境が必要だったということには同意。
だからクライアントでは普及しなかったんだろうね。

コマンドラインの話は、開発時に常に使えということではなくて、
一度はやって仕組みを知っておけってことだろ。
分かってたらめんどいからやらんよ。
>>502
Eclipse Project がプログラム初心者で身勝手と?
これは例外か? では NetBeans の exe も間違ってるか?
Sun としては exe で起動するのは、かなり抵抗があったはず。
なぜ exe にしたと思う?
505デフォルトの名無しさん:04/03/02 16:55
フォーム認証を行っているWebアプリケーションをJMeterを使用して負荷テストすることはできるのでしょうか?
BASIC認証を行っているWebアプリケーションをテストできることはわかっているんですが、
フォーム認証についてはなかなか情報が見つかりません。

知っている人がいたら教えてください。
>>504
何が言いたいか要点がわからない。
>>504
jar でダブルクリック起動出来るんだったら、Sunも自社製
ソフトくらいは jarで起動させるべきだよな。
ユーザーに対するお手本にならん。
>>505
ただ、GET か POST リクエスト送るだけでしょ? できるよ。
手でパラメータ設定できるけど、使い込みたいんだったら
JMeter をプロキシにしてアクセスして記録して再生しる。

使い方は "JMeter 記録" でググる。
>>506
それは否定しない。俺、日本語、難しいねん。
510デフォルトの名無しさん:04/03/02 17:19
APIリファレンスのページが見れないがなにか?
>>510
>500-501
文句言う奴は、自分でツールでも作ったらいいじゃない。
知見が Sun より優れていると主張するなら、
それなりの技術があるとこも見せなよ。ちょちょいだろ。
結構長い時間落ちてるねー。どうしたんだろ?
514505:04/03/02 17:42
>>509
JMeterをプロキシにして記録したスクリプトの実行は試しています。
アサーションを使って確認しているのですが、フォーム認証後に遷移する画面のレスポンスの
内容が正しくないのです。
フォーム認証なしではアサーションは成功しています。
そのため、フォーム認証はサポートされていないのではないかと考えたのです。
classを引き数にとって起動してくれるJavaのツール?
>>512
誰も知見が Sun より優れているなんて言ってないよ。
ただの意見。あんたは Sun などの大企業が提供するものなら
なにひとつ文句もない? 提供されるものが正しいという前提?
Sun の事情もあるんだろうけどね。

ちょちょい? 指定したコマンドを実行する exe を作成するツールは
既に出回ってるから俺は作らないよ。
517デフォルトの名無しさん:04/03/02 19:12
stmt.executeQuery(query);の部分でエラーになってしまうのですがなぜでしょうか?
初心者でさっぱりわかりません、アドバイスお願いします。

public class Db {

public static void main(String[] args) {
String query="CREATE TABLE Test(A CHAR(10))";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:mdb";
String user="";
String pass="";
Connection con = DriverManager.getConnection(url,user,pass);
System.out.println("接続しました");
Statement stmt = con.createStatement();
stmt.executeQuery(query);
stmt.close();
con.close();
System.out.println("切断");
}catch (Exception e){
System.out.println("Error");
}
}
}
>>517
Statement#executeQuery(String)はSELECTを実行する為のもの。
CREATE TABLEなどのDDLを実行したい場合は
Statement#executeUpdate(String)を使う。
ところでJDBC-ODBC経由でAccessのテーブル作成ってできたっけ?
そもそもexeを作ることは可能。JDKにJavaVMを起動するCのソースが付いてるから
自分のアプリの引数をつけてコンパイルするだけ。

昔のJDK(1.1.4とかそこら)ではこれもコマンドラインで出来た
(起動できるexeにまとめる)。
他のプラットフォームで配られたものが使えなくなるのが不評だったから
ダブルクリックできるjarというものが作られた。

exeと同梱はできるんだから十分じゃない?
MacOS Xも
シェルスクリプトの拡張子をcommandにするとダブルクリックで動作するから
にたような状態になるかも
521デフォルトの名無しさん:04/03/02 19:25
>>518
なかなかできなかったのですっきりしました、ありがとうございます。
ちなみにテーブル作成されました。
>>520
初めて知った。サンクスコ.
>>519
知らんかった。ありがトン。
524デフォルトの名無しさん:04/03/02 20:36
sun回復しないな
どうしたんだ
埋もれてしまったようですが>>470の回答をお願いします。
誰もjarファイルに含めるマニフェストファイルや
起動用バッチファイルに触れないのは仕様れすか?
ものすごい勢いで既出だからです。
いや、今時のGUI世代はバッチファイルの存在すら知らない場合も多いぞ。
net は通じているみたいだけどね。
NHKのプロジェクトXでコンピュータやってますよ。
地域によって違うのかな。
532デフォルトの名無しさん:04/03/02 21:41
>>519
>そもそもexeを作ることは可能。JDKにJavaVMを起動するCのソースが付いてるから
↑これすごく興味あります。
ぜひもすこし詳しく教えてください。
>>470
originalImageの方じゃなくてimgをMediaTrackerで待て
API見れないと不便だよー。
>>534
jdkダウンロードするときに一緒にダウンロードしとけよ…
"APIリファレンス"と言え!"ら"抜き言葉使ってんじゃねぇ!
とか感じてしまうおいらはもう歳でつか?
537デフォルトの名無しさん:04/03/02 22:16

あのリファレンスはMSDN形式にして欲しい。
検索できるやつ。

かなり読みやすくまとめてあるけど、
検索機能が欲しい。
classpathを設定しようとすると

Exception in thread "main" java.lang.NoClassDefFoundError: and

とエラーになります。
mainのあるソースからひとつ下がった位置のフォルダにあるclassを指定したいのですが、

> java -classpath c:\〜〜\testclass calss名

書き方おかしいですか?お願いします。
>>538
-classpath を設定しなかった場合はちゃんと起動するのか?

するんだったら書き方がおかしい。
540538:04/03/02 22:27
いいえ。

mainから

HelloWorld hoge = new HelloWorld(); 

と下のフォルダにあるclassを呼びたいのですが、
System_in.java [19:1] シンボルを解決できません。
シンボル: クラス HelloWorld
場所 : System_in の クラス
HelloWorld hoge = new HelloWorld();

とコンパイルエラーになります。
このHelloWorldがどこにあるかを知らせるのがclasspathだと思ってるのですが間違ってますか?
541デフォルトの名無しさん:04/03/02 22:28
Java (目的のJavaアプリクラスファイル)
というバッチを実行するシェルを呼び出すEXEファイルがあれば
いいんじゃないの。
そうすれば、*.classと*.dllの扱いは同じようなものと取れる。

542541:04/03/02 22:29
あー、話題は変ってたのかすまん(にがわら
543デフォルトの名無しさん :04/03/02 22:41
インターネットのページから文字を抽出し
表示させるにはどうしたらよいのでしょう?

javaをはじめたばかりでよくわからないので
軽くソースも書いていただけるとありがたいです。
>>537
そんなあなたにこれを。
ttp://javadoc-search.sourceforge.net/
他にもNamazu使ったりと工夫のしようはあるわな。
俺フツーにエクスプローラでclassファイルをダブルクリックして実行してるけど…。
いちおう書いとく。

エクスプローラで関連付けを作る。
 拡張子:class
 アクション:open
 アプリケーション:"c:\unko.bat" "%1"
c:\unko.batを書く。
 java %~n1
 pause
>>545
英語でつか
クラスパスは?
もち%CLASSPATH%とカレントディレクトリのみ
ご教授ください。
#すいません。他の板で質問を出していますが、レスがないようですので
 こちらに投稿しておいます。

行い事は、サーブレットで作成したファイルのパーミッションを変更したいのです。
調べてみたのですが、FilePermissionを使うのでしょうか?
勝手に思っていたのは、Linuxでのchmodコマンドと同じような引数を指定
するような気がしていたのですが。。。
それは違うのですよね?
JAVAでは、LINUXのchmodコマンドを実行するしかないのでしょうか??

よろしくお願いいたします。
>>547
近頃のOSなら標準で全文検索機能くらいついている。
Windows2000ならインデックスサービスとかね。
あと、Eclipseなら http://graze.at.infoseek.co.jp/plugin/
にあるやつ使うって手も。
>>532
前か前々スレッドぐらいで
それに相当するJavaScriptを書いたのも俺なんだけど、
よく分からなければそっち使ったほうがいいよ。

ではいきます。

1. JDKとVisualStudio用意。他のツールの場合は適宜読み替え。
2. <jdk>\src.zip解凍。
3. VS起動。
  ファイル−新規作成−プロジェクト−Win32プロジェクト
    アプリケーションウィザードのアプリケーションの設定、
     「空のプロジェクト」にチェックを入れる。
      exeにしておく。
      Windowsアプリケーション、コンソールアプリケーションのどちらか。
4. VSのプロジェクトのフォルダに<jdk>\src\launcher以下にあるファイルをコピー。
5. ↓これをコピペして同じフォルダに保存。application.hとする。
------------------------------------------------------------------------
//#define JAVAW
//↑コンソールアプリの場合はこれをコメントアウト。
// そうでなければ有効にしておく。

#define JDK_MAJOR_VERSION "1"
#define JDK_MINOR_VERSION "5"


//#define JAVA_ARGS { "-J-jar", "-Japplication.jar" }
#define JAVA_ARGS { "-J-jar", "-JSwingSet2.jar" }
//#define JAVA_ARGS { "-J-classpath", "-JC:\\eclipse\\workspace\\hoge", "-JTest" }
//**注意**
//JavaVMに対して与える引数には最初に"-J"をつける、
//それ以外はJavaアプリケーションに与える引数。
------------------------------------------------------------------------
6. "プロジェクト−既存項目の追加"でこれらのファイルを全て選択する。
7. java.hの
  #ifndef _JAVA_H_
  #define _JAVA_H_
  の次に
  #include "application.h"
  を追加。
8. プロジェクトのプロパティ("ソリューションエクスプローラ"でプロジェクト上で右クリック)で
  "全ての構成"を選んでおいて、
  "C++−追加のインクルードディレクトリ"、に
   C:\j2sdk1.4.2\include
   C:\j2sdk1.4.2\include\win32
  を追加。
  "リンカ−システム−サブシステム"、で以下を選択。
  (作りたいほうによってどちらか。JAVAWの定義と合わせること。)
   Windows (/SUBSYSTEM:WINDOWS)
   コンソール (/SUBSYSTEM:CONSOLE)
9. 構成をReleaseにして、"ビルド−ソリューションのビルド"。

exeができるのでアイコンつけるなりインストーラに入れるなり。
VM同梱もできるんだけどそれはでかいアプリとか売るアプリでやったほうがいいかも。
>>552
VM同梱ってJREのインストーラを起動するだけ?
展開済みのJREのバイナリを、そのEXEのあるディレクトリに配置して、
そこからJavaを起動するなんていうこともできる?

というのも、作ったアプリをちょっと試してもらいたいだけのときとか、
アーカイブを展開してEXEを実行するだけ、削除するときはディレクトリごと削除してOK、
といった手軽な配布ができないかと思って。

LinuxのJREとかアーカイブを展開してbinにパスを通すだけって感じだし、
WindowsのJREもそれだけで動いてくれないかなと前々から思ってた。
>>555
ライセンス的にその形態で配布していいのかは知らんが、
別にインストーラ使わなくてもVM起動できるよ?
>>556
おお、サンクス!でもライセンスのことまで気が回らなかった。
確かにJREの再配布は認めても、改変しないのが前提っぽいな。
一応確認しておこう・・・と思ったらjava.sun.comまだつながらない。
どうしたんだろ。
>>556
JREに入ってたLICENCE_jaを読んでみたんだけど、
README.txtに書いてあることを守ってれば問題なさげだね。
>>484のEXEと組み合わせて、カレントディレクトリからVM検索させれば、
ZIPファイルを解凍、EXEダブルクリックで実行、
といったお手軽な配布物ができそうな感じ。
サイズがクソでかいのが難点ではあるけど・・・。
とにかくやってみて反応を見てみる。どうもありがとう。
559デフォルトの名無しさん:04/03/03 07:48
いつまで落ちてるんだバカヤロー
560デフォルトの名無しさん:04/03/03 09:38
サーバとOS売ってる会社がこんな落ち続けてちゃダメだろ…。
誰か、IAサーバ+LinuxもしくはFreeBSDで、Falut-Torelantなソリューションを提案してきてくれ。
>>561
Fault-Torelant
~~~~~
jdk 1.1.8 落としたいのに,java.sun.com が落ちてるーーー。
564デフォルトの名無しさん:04/03/03 11:52
すみませんがまた質問させてください。
ResultSet rs = stmt.executeQuery(query);でエラーになるのですがqueryの内容がおかしいですか?
mdbではうまくいったのですがいろいろ書き換えて試したのですがだめでした。
DBはFileMakerPro6です。

class FileMaker{
public static void main(String[] args) {
String query = "SELECT * FROM test";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:FM";
String user="";
String pass="";
Connection con = DriverManager.getConnection(url,user,pass);
System.out.println("FileMakerに接続しました");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
rs.close();
stmt.close();
con.close();
System.out.println("切断");
}catch (Exception e){
System.out.println("Error");
}
}
}
なんのエラーがでてるかわからないとなんとも
そやな。
これだけだとDBとの接続手続きなのか、参照の問題なのか、
さっぱりわからんな。
567デフォルトの名無しさん:04/03/03 12:42
フォルダ選択ダイアログを出す方法さがしてます。
自分でさがした限りでは、SWTを使った例が見つかったのですが、
「SWTはあまり使わないほうが良い。」みたいな事を、
どこかで目にした記憶があるのですが・・・
他に方法を知っている方おりましたら、ヒントだけでも良いので教えてください。
568デフォルトの名無しさん:04/03/03 12:46
どうしたらいいでしょうか?、パソコンのシステム復元をしたら、
同じフォルダー内にクラスファイルがあるのにアプレットを組み込んだ
HTMLファイルを開いてもグレイの長方形が表示されるだけで、class not found と表示され
アプレット本体が表示されず、しかも,コマンドプロンとで  JAVAC を実行してみると  
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object と、表示され コンパイルできなくなりました。
これはどうしたら 直るのでしょうか?誰かおしえてください!
569デフォルトの名無しさん:04/03/03 12:47
>>567
javax.swing.JFileChooser
java.awt.FileDialog
おまいら!
winキーとeキーを5秒間押すと・・・




プッ
571デフォルトの名無しさん:04/03/03 13:18
HashMapの値のマップされた値だけをVectorに格納したいのですが
どうすればいいでしょうか?
HashMapのキー値はあわかりません。
572デフォルトの名無しさん:04/03/03 13:39
>>565 566
失礼しましたエラー内容下のようにでました。
ResultSet rs = stmt.executeQuery(query);とrs.close();を取るとエラーが出ていないので接続はできていると思うのですがエラーには接続失敗と出ているのでよくわかりませんよろしくお願いします。

java.sql.SQLException: [FileMaker][ODBC FileMaker Pro driver][FileMaker Pro]接続が失敗しました。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(Unknown Source)
at FileMaker.main(filemaker.java:19)


鯖復帰まだ?
574デフォルトの名無しさん:04/03/03 14:09
javabeansダウンロードに逝ったのですがサイトが見つかりません。
http://java.sun.com/j2se/

どこからダウンロードしたらいいの?
>>574
昨日からサイトが落ちててページが見られないみたいです。
576デフォルトの名無しさん:04/03/03 14:12
そうですか・・・
577追記:04/03/03 14:13
>>544
だから復旧するまで待ってた方がいいみたい
・・・ミラーサイトとかないのかな。
ほんと時間かかってるよね。すごい障害がおきてるのかな。
Sunの社員とかいたら、内部事情を教えて。
579デフォルトの名無しさん:04/03/03 14:17
IBMの攻撃だってば
580デフォルトの名無しさん:04/03/03 14:23
Graphicsオブジェクトで文字列を drawString する時に
実際描画されるドット数を取得するにはどうしたらいいのでしょうか?
WinAPIでいうところのGetTextExtentPoint32のようなメソッドが
欲しいのですが
581デフォルトの名無しさん:04/03/03 14:29
>>580
なぜか不可能なんだよね
>>580
java.awt.FontMetrics
違ってたらスマソ.
583デフォルトの名無しさん:04/03/03 14:34
アプレット作ってブラウザに表示してみたんですがIEだと全然動作しなくて
NCだとうまく表示されます。
ブラウザによって動作したりしなかったりとかあるんですか?
(NetBeans IDE3.5.1つかってます)
584訂正:04/03/03 14:39
>>577
544>577
586580:04/03/03 15:21
>>581-582
ありがとうございます
FontMetrics fontmetrics = graphics.getFontMetrics();
fontmetrics.stringWidth("で、いけそうな感じです");
587552:04/03/03 16:12
>>555

java_md.cのGetApplicationHome内、
*cp = '\0'; /* remove the bin\ part */
の行をコメントアウトすればカレントフォルダにあるJREを見つけてくれる(VM同梱)。

この行をコメントアウトするのは、これはもともとUNIX風の
ファイルの配置を想定してるから(ビルドバイナリをbinにまとめている)。
Winだと実行バイナリがトップにあるのが普通なので同じフォルダを探させる。
588567:04/03/03 18:23
>>569
どうもです!
あ。つながった。
590デフォルトの名無しさん:04/03/03 19:13
Javaでマウスジェスチャーを実装したものってありますか?
591デフォルトの名無しさん:04/03/03 20:11
perlのcrypt関数をjavaで実装するには
どのようにしたらよいでしょうか?

なにか参考になるサイトなどがあれば
教えてください。
592デフォルトの名無しさん:04/03/03 20:39
JDK1.4.xで、java.net.NetworkInterfaceクラスを使う際に、

Enumeration enum = NetworkInterface.getNetworkInterfaces();
NetworkInterface net = (NetworkInterface)enum.nextElement();
System.out.println (net.getDisplayName());

こんな感じで(かなりはっしょってるけど)。getDisplayName()メソッドを使うと、
アドレスを割り当てられてるLANカードの名称とかが出てくるんだけど、
一部、文字化けします。

3Com 3C920 Integrated Fast Ethernet Controller (3C905C-TX Compatible) - ?p?P?b?g ?X?P?W???[?? ?~?j?|?[?g

こんなふうに。
new String( net.getDisplayName().getBytes(), "SJIS" );
とか、いろいろ試してみたんだけれども状況変わらず。
化けてる文字を修正する方法ってあるでしょうか?
>>592
> new String( net.getDisplayName().getBytes(), "SJIS" );
new String(net.getDisplayName().getBytes("ISO8859_1"), "SJIS");
594フェラ:04/03/03 22:06
みなさんHSPについてどう思います?
>>594
スレ違いだと思います。
596デフォルトの名無しさん:04/03/03 22:52
JSPからJavaScriptに値を渡して、そこからwindow.openでサーブレットを呼んで、
別のJSPに出力しているいるのですが、
なぜかキャッシュされてしまい、JSPの結果表示が変わりません。
JSPはヘッダでキャッシュを使わないよう指定しているし、
APサーバの設定も大丈夫なはずです。
こういうことが起こるのはなぜでしょうか?
597デフォルトの名無しさん:04/03/03 22:54
>>593
無事解決しますた。ありがとうございますた。
>>596
IE の仕様。バージョンによるかも。
先に空で open して location 変更してもだめか?
空ってのは about:blank でいけた気がするけど忘れた。
>>596
キャッシュを使わないようにする指定が間違っているんでしょ。
601デフォルトの名無しさん:04/03/03 23:09
メールやHTMLのような読んでみるまでエンコードがわからないファイルの
一部を修正したい場合、どうするのがいいのでしょうか?

バイト配列でやるのは大変ですし、ファイル中のエンコード情報をあてにして
読み込もうとすると、そのエンコードが正しくない場合、読んでから書くと
元のファイルと違うものになってしまいます。

おねがいします。
>>596
呼び出すサーブレットに特定の拡張子を割り当てて、名前の部分を毎回変えるとか。
603596:04/03/03 23:12
お答えありがとう御座います。

>>598-599
IEは5.5ですね。
それはまだ試してませんでした。
明日試してみます。
target="_blank"ですよね。

>>600
それはないです。ヘッダ部は共通ファイルをインクルードしてるので。
604596:04/03/03 23:13
>>602
すいません。さすがにあまり特殊なことはできないです。
本当は対症療法的にソースを変えるのも好ましくないですし。
>>591
DESの実装はCryptixやPostgreSQLのJDBCドライバにあるよ。
MD5のは見たことないけど、自分で作ってもすぐできるよ。
java.security.MessageDigestでMD5使えるし。
>>601
JISAutoDetect はあかんのか?
まーどんな方法でも完全判別は不可能。
完璧な自動判別っつーのは無理
608591:04/03/04 00:28
>>605
レスどうもありがとうございます。
お手数ですが、サンプルソースがあるサイトなどご存知でしたら
教えていただけないでしょうか?
609601:04/03/04 01:09
ありがとうございます。

書き換えたいのはUS-ASCIIの部分なんです。
メールで言えばヘッダの部分です。しかしUS-ASCIIで開くと、US-ASCII
でないものは?に置き換わってしまうみたいなんです。

でもStringの機能を利用して書き換えをしたいと思っているのですが、
うまい方法が見つからないんです。
>>609
具体的に何をやろうとしているのか分からんからカンで言うけど,とりあえず読み込む
ファイルの先頭部分だけは少なくともASCIIである保証があるんだったら,まず1バイト
ずつ読み込んでbyte配列とかにためておいて,区切り文字みたいなものが出てきたら
そこまでに読み込んだバイト列をStringのコンストラクタとかに与えて文字列にすれば?
611デフォルトの名無しさん:04/03/04 01:34
次のアプレットやってみたんですがIEで表示されません。どこに問題があるか
分かるひとおしえて!

○javaソース
import java.applet.Applet;
import java.awt.*;

public class test47 extends Applet {
public void paint (Graphics g){
g.drawString("Test Java",50,20);
}
}

○htmlファイル
<HTML>
<HEAD>
</HEAD>
<BODY>
<HR>
<APPLET code="test47.class" width="400" height="300">
</APPLET>
<HR>
</BODY>
</HTML>
初心者がプログラムの練習するんだったらアプレットじゃなく
普通にアプリケーションにしろよ、
と思うのは俺だけではあるまい。
Java といったらアプレット、みたいな糞解説本は捨ててしまえ。
>>611
プラグインじゃない?
とりあえずappletviewer使ってみれば
皆さんは
クラスライブラリのメソッドの定義で困ったことはありませんでした?
いやね、どのメソッドを定義(実行)すればわrからないとか。
適当に定義(実行)して動かなかったりとか。
そういうことを聞きたいんです。
初心者の方は(私も)よくそういう経験してると思うんですけど
どうですか?
>>614
いやね、どのメソッドを定義(実行)すればわrからないとか。
どのメソッドを定義(実行)すればいいかわからない
誤りです、すみません。
定義 の後ろに括弧で 実行 と書いてあるあたり
あなた何にもわかってませんね?
617591:04/03/04 02:53
>>605
いろいろ調べた結果、
まずはPostgreSQLのjdbcドライバを使用してみることにしてみます。
どうもありがとうございました。
618611:04/03/04 04:27
>>613
どうも。appletviewerだとうまく表示されます。IEには別途プラグインの
インストールが必要ということですか?
もしよかったらどこでダウンロードしたらいいのか教えてくれますか?
>>618
Javaのバージョンが違うとかのオチだろ
620デフォルトの名無しさん:04/03/04 08:43
>>614
標準API のことを言ってるんでしたら、
あなたには「定義」なんて不可能ですよ。
継承して実装、とかはできますけど。
621デフォルトの名無しさん:04/03/04 09:00
>>614は、Java以前の問題。
622デフォルトの名無しさん:04/03/04 09:37
EclipseでQT for javaを使ってみようと思ったのですが、うまくいきません。
とりあえず、QuickTime\Plugins\QuickTimePlugin.classあたりをインポートしたのですが
import quicktime.*;
はインポートできたのですが、
import quicktime.ioやquicktime.stdが出てきません。
どうしたらよいか教えてください。お願いします。
eclipseの環境の話ならそっちのスレにいってみては?
624デフォルトの名無しさん:04/03/04 11:22
Windows + Tomcat 環境でearファイルを生成し、
そのearファイルを、solaris + Oracle AS の環境に
そのままデプロイすることは、できるのでしょうか?
よろしくお願いします。
できなきゃ Java の存在意義無いよ。
エンコーディングとか考えてプログラミングしてればちゃんと動く。
626デフォルトの名無しさん:04/03/04 12:26
>>622
QT for java
はインストールしたの?
竹岡誠治は山崎正友と共に妙信講(現顕正会)の盗聴にも加担していた。

http://www.google.com/search?q=%E7%AB%B9%E5%B2%A1%E8%AA%A0%E6%B2%BB+&ie=UTF-8&oe=UTF-8&hl=ja&lr=
http://sanity1.at.infoseek.co.jp/vsub526.html
竹岡誠治は山崎正友と共に妙信講(現顕正会)の盗聴にも加担していた。
 

http://www.google.com/search?q=%E7%AB%B9%E5%B2%A1%E8%AA%A0%E6%B2%BB+&ie=UTF-8&oe=UTF-8&hl=ja&lr=
http://sanity1.at.infoseek.co.jp/vsub526.html
629デフォルトの名無しさん:04/03/04 13:43
>>626
アップデートした際に、きちんとチェック入れました。
たぶん、自分がEclipseを使いこなせていないだけだと思います。
630デフォルトの名無しさん:04/03/04 13:48
>>629
QT for java用のclassファイルはjarファイルにまとまってたと思う。
拡張子がjarのファイルを検索して、
それらしいのをクラスパスに追加したらいいような。
(qt.jarって名前だったような気もするけど自信なし。)
>>629
QTをインストールすると、QTJava.zipが%JREがインストールされている
ディレクトリ%/lib/extにコピーされる。例えばWindowsだと大抵の場合、
E:\Program Files\Java\j2re1.4.2_03\lib\ext\QTJava.zip
EclipseでJavaプロジェクトを作った場合はこのファイルをJavaビルドパス
に含める必要がある。
632631:04/03/04 14:15
でも、なにもJava関係を入れていないWindowsにJ2SEとEclipseとQT
をインストールすると、EclipseはJ2SE本体のディレクトリを認識できずに
JRE(つまりc:\Program Files\Java\...のやつ)を認識してそこから
lib/extやlib/にある各種jar/zipを認識してJREシステムライブラリー
の構成を整える。だから、まっさらな状態から J2SE -> QT -> Eclipseの順番に
インストールすれば、QTJava.zipは既にJavaプロジェクトから
認識できている状態になっているはず。一度Javaプロジェクトの
JREシステムライブラリーの中を確認してみよう。
633630:04/03/04 14:16
今調べてみたら、>631の言うように、QTJava.zipだった。スマソ。
javaでString型に入ってる2バイト文字のアスキーコードが知りたいんですが
どんな関数使えばいいんですか?
>>634
> 2バイト文字のアスキーコードが知りたいんですが
ASCIIって1バイト文字だけでしょ。
その通り!
何か勘違いしました。

文字列のコードを知りたいンです
さらに間違えました。
1文字(2バイト)の文字コードが知りたいんです
String s = "あいうえお";
System.out.println((int)s.charAt(1));
とかやればいい。ただしUnicode(UCS-2)でのコードなので注意ね。
>>938
どうもです。出来たっぽいです。
ブラウザから飛んでくるパラメータってshift-jisだと思うんですけど
その文字の中にMS932のFF0Dが含まれてるかとかのチェックって
何らかの変換しないとマズイですよね?
シフトJISとも限らないし自動判別は完全には不可能

基本的にフォームはページのキャラクタセットと同じのを返すはずだが
EUCだと以前でてきた問題が発生するのでシフトJISかUTF8を使うべし
request.getParameterで取得した文字列をMS932に変換するには

String str = request.getParameter("substr");
byte byData[] = str.getBytes();
String outcsv = new String(byData,"MS932");
println(outcsv);

でOK?


初歩的質問スマソ
>>641
Servlet API 2.3以降ならrequest.setCharacterEncoding("MS932")
2.2以前なら、str.getBytes()をstr.getBytes("ISO-8859-1")に変更
>>942
ありがとうです。出来ました。
JSPからsservletにスクリプトレットで遷移するにはどうすれば
いいの?
645デフォルトの名無しさん:04/03/04 19:31
Appletから、そのAppletを埋め込んであるHTML上にあるJavaScriptの関数を起動するには、
どうすればいいですか?(LiveConnectを使わずに)

getAppletContext().showDocument(new URL("javascript:myfunc()"));

なんてやりかたじゃだめなのかな?

ttp://forum.java.sun.com/thread.jsp?forum=17&thread=28022&tstart=0&trange=15
ttp://www.rgagnon.com/javadetails/java-0184.html

この辺を参考にしてるのですが、関数が呼ばれません。
646601:04/03/04 20:28
>>610
ありがとうございます。
その方法でやってみます
透過GIFから生成したImageオブジェクトの任意の点
(x,y)が透過色かどうかを判定するにはどうしたらいいんでしょうか?
>>647
BufferedImage#getRGB()使うか
java.awt.image.PiexelGrabberでbyte配列に変換するかして
上8ビットをみればいいんじゃないかな
>>616
>>620
>>621
すみません。定義という言い方。間違えてました。
みなさんは、APIのようなクラスを自分で作るという意味で捉えているようですが
(間違えていたらすみません)
>>620さんの言うように継承。実装。のことを言っているわけです。
つまり、どのクラスのどのメソッドを使えばいいかというのが
(APIのこどです)わかりにくいので
テンプレートのようなものがあれば、それに沿って作れば
簡単に作れるということです(サンプルソースでもいいんですが)
つまり、簡単な説明しかないので、もう少し詳しい説明がほしいというか・・・
どのようにクラス、メソッドを組み合わせて作れば(オブジェクト)
ああなる、こうなる、というのが解りにくいというか・・・
だからオブジェクトの組み合わせがわからないから(解りにくいから)
プログラムが作りにくいということが言いかったわけです。
どうでしょう・・・そういうことはありませんでしたか?
(わかりにくい説明ですみません・・・)
最悪

さーーーいーーーあーーーくーーーーーー
>>649
よう分からんのだけど、JavaDoc見て書いたらダメなの?
>>649
まあ初心者だとそういうものかもな。
極端な話だが、初心者がjava.awtパッケージのjavadoc渡されて
「今からJavaでGUIアプリ作れ」と言われてできるものでもないし。

そういうときは本とか、Sunのチュートリアルとかが参考になった。
Sunのチュートリアルはjavadocからリンクが張ってあるので、
その意味では「javadoc読め」の範疇に入る話かも。
>>649
VBでヘルプ見たら関数の説明と使用例が載ってるけど、
そんなのがJavaにもないかってこと?
>>649
なんとなく言いたいことわかるけど、もうちょっと日本語わかりやすくしてよ。

要するに標準API使って自前のクラス作るのがどうもうまくいかないって話なの?

確かにクラスによってはjavadocの説明も簡素で使い方がいまいちわかんないことは
あるよね。そういうときはいろいろ試してみるしかないんじゃん?
655デフォルトの名無しさん:04/03/04 22:54
ほんとにしょうもない質問なのですが、お願いします。
私がもっている参考書に
private Counter counter; と書いてある行があるのですが、
Counter っていうのは、intとかdoubleみたいな感じでCounterというものがるのですか?
それとも、このプログラムでCounterっていうクラスを作っているみたいなのですが、
クラス名 任意の文字 ということができるのですか?
656デフォルトの名無しさん:04/03/04 22:59
private  Counter    counter;
修飾子 型名(クラス名) 変数名

public   class      Counter { }
修飾子 キーワード(クラス) クラス名
657655:04/03/04 23:02
>>656
ありがとうございました。
クラスのCounterでしたか。
ほんと変な質問ですいませんでした。
>>651
>>652
>>653
>>654
有益なご意見ありがとうございます。
(質問の内容が難しくてすみませんでした)
いろいろ参考になりました。
javadocというのがあるんですね・・・始めて知りました。
(私の参考書にはそんなこと書いてありませんでしたから・・)
そのことについても、いろいろ調べようと思います。
本当にありがとうございました。
>>658
javadocを知らなかったのか!衝撃的!
Javaショック
javadocとはAPIリファレンスではないんですか?
すみません・・・調べてもよくわかりません・・・
仕様を書くものと書いてあったのですが・・・
662独り言すまん:04/03/05 00:35
1.5Beta/Linuxで
void print(URL url) throws IOException {
InputStream in = url.openStream();
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(in, "JISAutoDetect"));
String line;
while((line = reader.readLine()) != null)System.out.println(line);
} finally {in.close();}
}
をwww.google.comに試したらリクエスト連続で投げまくって暴走した
これってF5アタック成立?けど別に俺のせいじゃないよね...
やっぱりBetaはちょっと恐いなあとおもた
1.5beta で JISAutoDetect 使うとバグる模様。
Shift_JIS とかちゃんと明示すれば大丈夫みたいだけど。
664662:04/03/05 00:48
ホントだ!JISAutoDetectやめたらまともに動いたYO
じゃあ別にリクエスト連投してたわけじゃなかったのか
よかった。わりと焦った。

勘違いの独り言にわざわざマジレスありがとうです>>663
ところでGoogleは攻撃的なリクエストを繰り返すとホスト単位でアクセス規制食らわすそうなので注意
ところで2chは攻撃的なリクエストを繰り返すとホスト単位でアクセス規制食らわすそうなので注意
667デフォルトの名無しさん:04/03/05 01:17
カコイイjavaプログラマの皆様助けて下さい。
どう頑張ってもint型しか引数に取れないメソッドに
100の二乗根を入れなければなりません。
小数点以下はいらないのですが、
Math.sqrt(100);
で出た数はdouble型なので困っています。
どうしたらいいんでしょうか
助けて下さい。お願いします。
>>661
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
これがAPIリファレンス。なぜJavaDocと呼ばれるかは、
自分で書いたソースにJavaDoc形式でコメントを書いて、
javadocコマンドを走らせて見たら分かる。

http://java.sun.com/j2se/1.4.2/ja/download.html
からダウンロードできるので、ローカルに置いてじっくり読め。
669667:04/03/05 01:20
すいません自己解決しました・・・
double x = Math.sqrt(100);
int x2 = (int)x;
と変換すれば良かったんですね
670デフォルトの名無しさん:04/03/05 01:25
>>669
(int)Math.sqrt(100)
でもいいよ。
671667:04/03/05 01:36
>>670
一行にまとめる事も出来るんですね
ありがとうございます。


またしても詰まってしまったのですが、
int l = ippen * x2;
という行を書きました。
ippenは事前に100を入れたint型の変数です。
x2は>>669のように作った「2の2乗根」です。

この直後にlを出力してみると、乗算が反映されず「100」が出力されます。
どうしてでしょうか。すいませんが教えてください。
l
672667=671:04/03/05 01:38
大変申し訳ありません。
自己解決しました。
2の2乗根をint型にしたものは「1」になってしまっていました。
なので乗算されてないように見えただけでした。
ご迷惑をおかけしました。
673デフォルトの名無しさん:04/03/05 01:40
>>671
x2=1になってるから。
674667=671:04/03/05 02:02
>>673
回答ありがとうございます
ご迷惑をおかけしてすいません
どうして????(´・ω・`) 
String strMessage ;

strMessage = "Stringクラスを使ってメッセージを表示しました。";

System.out.println(strMessage);
System.out.println("strMessageには" + strMessage.length() + "の文字が含まれています。");
}
}
\12288は不正な文字です。
System.out.println("strMessageには" + strMessage.length() + "文字が含まれています。")
676675:04/03/05 02:33
ごめんなさい、文がきれてた。
public class SampleD3L2{
public static void main(String args[]){

String strMessage ;

strMessage = "Stringクラスを使ってメッセージを表示しました。";

System.out.println(strMessage);
System.out.println("strMessageには" + strMessage.length() + "の文字が含まれています。");
}
}
全角スペースが入ってる。
どうでもいいがうまくいかないときは手で書き直すんじゃなくコピペしなさい。
675と676とで全角スペースの入ってる場所が違ってるぞ。
679675:04/03/05 02:42
(-_-)・・・・。
ありがとう。
ファイルシステム上のファイルに対して、ファイルタイプの自動判別ってどう
やってやるんでしょうか?できれば拡張子だけではなく、ファイル内を見てあ
る程度の判別ができると嬉しいんですが…。
ヘッダを見て何となく決める。
682680:04/03/05 10:10
うーん、ファイルがテキストかバイナリかの判別方法さえわかんないんです…
すいません。
テキストもバイナリもかわらんぞ
違いはどう表示させるかだけ
684デフォルトの名無しさん:04/03/05 10:24
>>680
何と何のファイルを判別したいのよ?
全てなんてバカなことは言わないよな。
なお、テキストかバイナリか完全自動で判別するのは無理だ。
>>680
JavaBeans Activation Frameworkである程度の判定は出来る
ttp://java.sun.com/products/javabeans/glasgow/jaf.html

対応形式それほど多くもないけどプラグインで増やせるのかも
686685:04/03/05 10:47
あれ?これって中身の判定はしないんだっけ?
うろおぼえ
>>685
しないよ。指定されたMIMEタイプに合わせて、
関連付けられたデータハンドラを実行するだけ。
688デフォルトの名無しさん:04/03/05 10:59
JAFってソース同梱じゃないのか。
どこにあるかわからん・・・。
>>688
J2EERI1.4のソースに含まれてるけど、これ400MBとかある。
ソースの配布するなら、単体でも配布もしてほしいよね。
691デフォルトの名無しさん:04/03/05 11:07
>>690
J2EERIってなに?
Application Serverのみのヤツじゃダメか?
692685:04/03/05 11:12
じゃあUNIXのfileコマンド移植しる

ていうか誰かやってそうだけどなー
見当たらないなー
>>691
そのApplication Serverが入ってるやつで多分あってるけど、それのソースの中に入ってるってこと。
ソースは別途ダウンロードしてこないといけなくて、それが400MBもあっていやだって話。

>>692
それがいいかも。以前Linuxで試したとき、ShiftJISのテキストとか判別してたし、
かなり精度の高そうな判別ができそうな予感。
694680:04/03/05 11:57
JAF 使ってみましたが、せめて .pdf くらいは認識してくれよ…とか思いまし
た。

いずれにせよ MIME types files を自分で用意しなきゃいけないんだったら、
自分で拡張子を見る簡単な関数を用意したほうがいいですね。Beans を使いた
いわけではないし…。

>>690

まさにそれなんですよ。

file コマンドみたいなのがあるはずだと思ってたら、調べても見つからない
んですよね…。移植はできないので(時間とスキル上)、拡張子とタイプのテー
ブルを用意して実装することにします。
695680:04/03/05 12:00
あ、java.lang.Runtime の exec() で file コマンドを使えばいいのかな?移
植性下がりそうだな…
696デフォルトの名無しさん:04/03/05 12:16
>>693
400Mもあるやつが見つからないのですが、どこにあるんでしょうか?
普通にたどると、奴らはバイナリかAPIドキュメントしかダウンロードさせません。
697デフォルトの名無しさん:04/03/05 12:25
SwingのJtreeでツリー表示させたのですが、
範囲外までツリーが延びたときに隠れる部分が出てきます。
スクロールバーなどを表示して対応する方法は無いでしょうか?
ttp://help.eclipse.org/help21/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/program/Program.html#getName()
を使う手もあるよ。何が返ってくるかは完全に環境依存になるけど。
>>697
使ったこと無いけど勘で答える。
スクロールバーが出て欲しいものは大抵、
Swing ではいちいち JScrollPane と組み合わせて使う。
700デフォルトの名無しさん:04/03/05 12:45
>>698-699
回答ありがとうございます。
なんとかやってみます。
>>696
http://wwws.sun.com/software/communitysource/j2ee/j2ee/download.html
のはずなんだけど、つながらないね。
wwws.sun.comの名前が引けないみたいなんだけど、うちだけ?
>>701
つながったよ。
703デフォルトの名無しさん:04/03/05 14:35
>>701
ゲットできた!ありがとう!
704デフォルトの名無しさん:04/03/05 14:50
RedHatに、J2EEをインストールしようとして上記のところから
j2eesdk-1_4-dr-linux-evalをダウンロード。
実行権を付与して、インストールを試みたのですが
Could not find the required version of the Java(TM) 2 Runtime Environment
といわれてしまってインストールができません。
J2REを/usr/local/src配下に入れて、
j2eesdk-1_4-dr-linux-eval' -javahome /usr/local/src/j2re
としたのですが、やはり見つからないというエラーが・・
なぜインストールできないかわかる方いらっしゃいますか?
705デフォルトの名無しさん:04/03/05 15:01
あ、すんません
ファイルが壊れていたようです・・
すみません、描画関係の話なんですが、
加算描画(?)を実装したくて、java.awt.Composite を実装してみたんですが
実装したクラスを Graphics2D に setComposite して実際に描画しようとすると

java.lang.InternalError: not implemented yet
    at sun.awt.windows.Win32OffScreenSurfaceData.getRaster(Unknown Source)
    at sun.java2d.pipe.GeneralCompositePipe.renderPathTile(Unknown Source)
    at sun.java2d.pipe.TextRenderer.drawGlyphList(Unknown Source)
    at sun.java2d.pipe.GlyphListPipe.drawString(Unknown Source)
    at sun.java2d.SunGraphics2D.drawString(Unknown Source)
    ....
と表示されるので困っています。
いろいろやってみたんですが、何をやってもこのエラーがでます。

どなたか実装された方、知ってる方、いらっしゃいましたら教えてもらえませんか?
加算合成のことだよね?
おれはやりかた知らんけどとりあえずレス

描画対象は何でつか?BufferedImageじゃないっぽく見えるけど
とりあえずComponentの直接描画じゃなくてBufferedImageで試してみては?
708よっぱらってカキコ:04/03/05 23:53
作ったものの発表の場が欲しいなー

自分でサイト立ち上げても自分一人で人集められそうにないし
Vectorとかだと使う側とのやりとりが気軽に出来ないし

2ch型掲示板のスレひとつ貰えれば
あとは自分で配布スペースは用意できるし
それだけで用は足りるんだけどなー

それ系のコミュニティってないでつかー?
>>708
まさにここでスレを立てるのはだめなのか?
2chっぽく、容赦なく論評してもらうスレ、みたいな。
>>708
ここで発表すればいいじゃないか。
スレひとつ使うだけの価値があれば、いやでもスレは立つ。
>>708
そだな。まずは見てみたいのでここで発表してよ。
712デフォルトの名無しさん:04/03/06 00:14
>>708
http://www.belution.com/worldwide/ja/

ここは添付ファイルは駄目だけど、字数制限はなくて
フォントも等幅。Tipsを紹介するには向いてるよ。
713708:04/03/06 00:22
いや、でもさすがに
みんなが小物ひとつ作るたびに
この板にスレ立てるわけにもいかないじゃん

特に俺が作るものなんかかなりショボイわけよ
この板に単発でスレ立てたら悲惨なことになっちゃうよ?

でもさー、みんなでそういうことが出来る板があったらなー
とか、思ってる人って他にもいると思うわけよ

でもちょっと試しにこのスレに晒してみよっかなー
酔っ払った勢いで

ちょっと待ってて
お前ら期待して待っとけ。
jar java zip しかうぷできないうぷろだ立てようか?
期待してるよ。
いよいよ Eclipse を超えるソフトが晒されるときがきた。
718708:04/03/06 00:35
ごめんなさい、Eclipseで複数ファイルからの一括置換てどうやるんでつか?
全ファイルの頭に自分の本名入っちゃってるよ。
>>708
もう一杯あおって、勢いつけてそのまま公開しる。
>>718
Eclipse ならリファクタリングでできるんじゃ?
ファイル一個ずつだけど、宣言は連動して変更される。
クラス数十個くらいなら、そんなに手間はかからないでしょ。もっと多い?
酔いが覚めてきて晒すのやめるに 1024 ジャバ。
722708:04/03/06 00:59
もうみんな帰っちゃった?

ふたばに上げたら名前変になっちゃたよ
ttp://cgi.2chan.net/up2/src/f50113.xxx
拡張子jarに変えてjava -jarで起動してくだちい
画像をドロップすると始まります
ジグソーパズルです。ごめんなさい。

よかったら御意見御感想お願いしまつ
723708:04/03/06 01:03
>>715
とりあえずふたばでしのぎますた

>>716, >>717
しょぼくてすんまそんです...

>>719, >>720
とりあえずバイナリだけでupしました
へたれですまそ

>>721
醒めてから後悔する鴨
724708:04/03/06 01:14
ていうか、ひょっとしてなんか本気で寒いことしちゃった?
ごめんね、漏れ初めて2chでプルグラム晒したから、ごめんね。
画像をドロップしても始まらない。jpg、gif、png、bmp で。
W2Ksp4、JRE1.4.2
まーいいや。悪いけど俺はもういいよ。

とりあえずフォントはボールドやめたら?
印象悪くなるかも。
726708:04/03/06 01:30
がーそ。すみません。
テストはLinux/J2SE1.5.0Betaでやりました。

なんか、せっかく試してくれたのにごめんなさい...
アプレットの方がいいな
>726
WinXPSP1 JRE1.4.2だけどやはりだめ。 

ソースは公開しないの?
729708:04/03/06 02:14
ソースつきです
ttp://cgi.2chan.net/up2/src/f50117.xxx

バグ取りして出直します
お騒がせしてすみませんでした...
730708:04/03/06 02:21
ていうかもろに/home/anyone/imageとかいうところに
ドロップされたファイルをキャッシュしてましたー!ぎゃーすみません

>>722の方は廃棄してくださいー
(HTTPのURLドロップしなければ大丈夫です
一応uploaderからも削除しときました

2chにさらされたプログラムを不用意に実行すると危険ですね
っていうかほんとにすみません
731728:04/03/06 02:30
>730
こんどはOKでした。

誰にでも失敗はある。ま、懲りずにがんばれ
うお、すげー。動きました。
WinXP, JDK1.5b1
>>729のやつ。
よくわからずに、一面白の画像をドロップしたら・・・・・鬱になりました。
よくわからずに、非常に小さい画像をドロップしたら・・・・更に鬱になりました。
734708:04/03/06 02:55
>>722の方が動かなかったのは
DropActionをACTION_COPYに限定していたせいみたいです
ACTION_COPY_OR_MOVEに直しました

あと、ドロップ元のファイラ/ブラウザによって
渡されるMIME型がかなり違うようなので
Windows環境とかでもまともに動くようによく検証しておきます

>>731
>>732
ありがとうございます
もうちょっとまともに遊べるものを目指して頑張ります

>>1-1000
酔った勢いでスレ荒してごめんなさい
735706:04/03/06 03:16
>>707
おぉぉぉ!
描画対象を BufferedImage にしたらちゃんと動いた!
すげぇぇ…けど、これはワンステップ置くことになるのか…?
ま、いいかw
どうもありがとうでした。
>>708
画像が升目にフィットするような動きだったら遊びやすかったかも。
また次のができたらさらして。
737708:04/03/06 03:44
...と、いうようなこと↑が素面でもできる
コミュニティがあったらちょっと素敵だと思いませんか。

...もう寝ます

>>736
がんがります
せっかく完成させたのに何もなしだった

もう寝よう
「コマンドまたはファイル名が違います」と表示されてコンパイルできなくて困ってます
パスもコマンドもファイル名もあってるのにできません_| ̄|○
>739
3つのうちのどれかが違ってるに決まってるだろ。
大文字小文字の間違いとか、ソフトがWin95で開発された環境
だったりとか(w
>>736
合ってるパーツ同士だと吸い付くような。

>>737
自作のプログラムを見てもらうスレ、って感じのがあれば
面白いと思う。
論評(批評?)してもらうスレ、かな。
ソフトごと単発でなくそういう趣旨のスレッド。
>>739
echo %PATH%
と打って、あってるかどうか確認しる。
相談というより雑談に近いのですけれど。

以前、したらばBBS対応ブラウザ開発のため、文字コード変換
EUC-JP -> SJIS(MS932)
について相談した者なんですが、なんとか、変換できない機種依存
文字対応はクリアしました。

当初、Stringをextendsして、new String(byte[] EUCbyteArray,"EUC-JP")や、
String.getBytes("EUC-JP")の機能を変更しようとしたんですが、Stringは
finalなのでできないんですね。extendしないで別個クラス作って凌ぎました。

それはさておき、―,〜,‖,−この4文字は、どうして微妙な状況にあるんでしょうか?
EUC-JPでもSJIS(MS932)でも上記手続き(StringコンストラクタやgetBytesメソッド)
は通るのに、なぜに結果が違う・・・・・・

これってJava固有の問題なんですか、それとも文字コードの問題なんですか?
>>741
でもこの板でプログラムの論評するとなると
どうしても技術的な議論の方に流れちゃうと思うんだよね
たぶんそれで荒れることも多くなると思うし

俺は技術的なアドバイスよりも普通のユーザからの意見が欲しい
本当に使ってくれる人達と話せる場所があったらいいと思うんよ
>>743
> それはさておき、―,〜,‖,−この4文字は、どうして微妙な状況にあるんでしょうか?
ベンダ毎にユニコード<->JIS文字セットの変換表が違うから。

SJIS と EUC-JP は JIS の変換表、MS932 は Microsoft の変換表を使う。
>>744
なるほど。
ただ、ある程度人がいて、かつ忌憚なく感想言ってくれるのは
2chが有力だと思う。
//でないとこてハン同士が思ってもないお世辞言い合って
//馴れ合い始めたりしそう。

Windows板やソフトウェア板は批評大好きな人がとても多い感じだけど
あっちはあっちで荒れるんだよねぇ。すごい勢いで。。

この板で、開発中のプログラム公開スレ、を立てて賑わったら
他の板にもちょっと宣伝するのはどうだろう。2ch風alphaworks。
ある程度有力なものは独自サイトなり他板なりにすだっていくと。
>745
どっちかが折れりゃ問題無しだったわけか・・・とほほ。
統一されるのはいつなんだろか・・・・・
この4文字だけはベタに変換したよ。
>>747
Apple とか HP も違ったような気がする。
統一されることは永久に無いと思われ。

4文字だけって書いてあるけど他にもあるよ。
>748
例えば、どんな文字?

JBBS@したらばが吐き出すEUCでエンコーディングされたバイト配列を
WindowsのIEコンポーネントにMS932で明け渡す際に、問題として最後に
残ったのがこの4文字だった。

他にあるかもしれないけれど・・・・
IEコンポーネントで取り扱えない文字で、食い違いがあっても、問題無。
750749:04/03/06 06:34
ちょっと意味不明でした。ま、スルーしておいてください(苦笑
751初期不良:04/03/06 07:30
容量に制限を持たせず InputStream を String にしたい時って
Reader から Writer にコピーしないといけないんですか?
while が面倒でしょうがないんですけど、避けられないですか?
org.apache.commons.io.IOUtils#toString(InputStream) でも
org.apache.commons.io.CopyUtils#copy(Reader, Writer) が
使われていて while してるし無理ぽ?
>>749
こことか見るのはどうでしょ。
ttp://www.ingrid.org/java/i18n/encoding/
753デフォルトの名無しさん:04/03/06 11:14
すみません初心者なんですけど複数の文字列から一番おおきい文字列もとめるプログラムなんですけど
public class Sample30
{
public static void main(String arges[])
{
String s[]=new String[5];
int i,biggest;
s[0]="Orange";
s[1]="Apple";
s[2]="Grape";
s[3]="Peach";
s[4]="Lemmon";
biggest = 0;
for (i = 1; i<s.length;i++)
{
if(s[biggest].compareTo(s[i]) < 0)
{
biggest = i;
}
}System.out.print(s[biggest]);
}
if(s[biggest].compareTo(s[i]) < 0)
ここの部分なんですけどなんで<0なんですか?>0じゃなくて?
754デフォルトの名無しさん:04/03/06 11:52
servletからservletが動いているマシンに
Runtime.execでコマンドを発行することって可能でしょうか?
>>753
仕様だから。
if (s[biggest].compareTo(s[i]) < 0) は
if (s[biggest] < s[i]) みたいな意味で分かりやすいと思うけど。
>>754
セキュリティが許す範囲内で可能。
757デフォルトの名無しさん:04/03/06 12:12
>>753
ついでにそれ、一番大きい文字列じゃなくて、
辞書式に並べたときに最も後に来る文字列を探すプログラム。

長さならjava.lang.Stringでs[i].length()で比較しなさい。
758デフォルトの名無しさん:04/03/06 12:19
>>755 仕様だからってどういう意味?
if (s[biggest] < s[i]) これなら理解できます。
if (s[biggest].compareTo(s[i]) < 0)これの0ってなに?
>>758
マニュアル読んだか?
760デフォルトの名無しさん:04/03/06 12:23
>>757..本に一番大きいプログラムを求めるって書いてあります。
だめだな、この本・・・久雄なんすけど、ちなみに、本の作者
if (s[biggest].compareTo(s[i]) < 0)

もし、s[biggest].compareTo(s[i])が負の値を返すのなら

もし、s[biggest]とs[i]をUnicode値に基き辞書式に比較した場合、s[biggest]のほうが後ろの来るのであれば

これ読んでも理解できないのなら、Java API ドキュメントを全部ダウンロードしておけ。
理解できてもダウンロードしておけ。
762デフォルトの名無しさん:04/03/06 12:33
>>761ありがとうございました。わかりました。
そういう風にかいてるわかるんですけど、この本全然書いてないんすよ。
ちなみにJava APIドキュメント、どこで手にはいります?
日本語版のほう、SUNのHP英語でわからん。独習Javaにすればよかったか
763754:04/03/06 12:35
>>756
レスありがとうございます。
セキュリティの許す範囲というのが、
私の勉強不足で把握できてないのですが、
実際にやりたいことは
RedHatのシェルを起動するというレベルなのですが、
どうなんでしょうか・・。
サーブレットコンテナはtomcatを使用しているみたいで
セキュリティなどはデフォルトだと思うのですが、
可能でしょうか。
もし、ご存知でしたらよろしくお願いいたします。
764デフォルトの名無しさん:04/03/06 12:41
手にはいりました。ありがとうございました。
>>763
Tomcatのプロセスを動作させてるユーザの権限の範囲内のことができる。
シェルは起動すると思うけど、シェルの中からファイルの読み書きとかするなら注意が必要。
766754:04/03/06 12:58
>>765
ありごとうございます。
ほんと助かりました。
今から出社してちょっくら試してまいります。
767754:04/03/06 13:04
本筋とはそれるかもしれませんが、
今回のような場合、javaのセキュリティーポリシー(?)とかは
無関係なことなのでしょうか?
>>767
無関係ではないと思うが、
OSの管理するパーミッションをJavaのセキュリティポリシーで何とかできるかって話なら無理。
>>767
意識してセキュリティーポリシーを変更してないなら無関係。
770754:04/03/06 13:46
>>767 768
なるほど。ありごとうです。
ちなみにjavaのセキュリティーポリシーを
勉強するときは
ttp://java.sun.com/j2se/1.4/ja/docs/ja/guide/security/
ここを見ていけばよいのでしょうか。

771初期不良:04/03/06 15:24
誰か >>751 お願いしまつ...
Jakarta Commons は標準 API に入ってほしいな。
>>771
Stream からやってくるデータサイズがあらかじめわかっていないかぎり無理。
わかっていても一度にやってくるとは限らないから一般的にはやっぱり無理。
>>773
だからそれを意識せずに隠蔽してくれないかってことじゃないの?
>>771 は IOUtils#toString のどこが不満なの。
775初期不良:04/03/06 17:54
>>774
>隠蔽してくれないか
その通りです。
IOUtils に不満がある訳じゃないです。
標準 API がクライアントコードに while を使わせる
と言うところには何かポリシー的なことがあるのかな?
>>775
最後まで読みたくない場合もあるから。
>>775
>標準 API がクライアントコードに while を使わせる
>と言うところには何かポリシー的なことがあるのかな?
>>773を読め。落ち着いて考えろ。System.inだってInputStreamだが、
System.inのデータの終わりっていつだ?
ネットワークのストリームも終わるまでデータが取れなかったら、
チャットクライアントだって書けないだろ?
778初期不良:04/03/06 18:53
>>773 >>776 >>777
確かに...
IOUtils#toString みたいなものは標準 API として用意すると
終わりがない場合とかで問題が出るから用意しない、
と言う考え方でいいのかな?...
そもそも InputStream から流れてくるデータは文字列とは限らないのだよ。
780初期不良:04/03/06 19:21
>>779
いや、String に限らず while で回すようなことを
クライアントコードに強制する事についてです。
>>777 >>779
単純にファイルを String に取り込みたいって思ったことはないのか?
Jakarta Commons IOUtils#toString の存在が不要と言ってるの?
終わりが分からんとか、文字列とは限らんときは使わなければいいだけ。
782749:04/03/06 20:45
>781
777や779じゃないが、whileを使うのをそんなに面倒とは思わないだけ
じゃないのかな。
それよりも、
終わりがわかる・文字列だとわかってる/そうでない で使い分ける事の
方が面倒だと思うので、私は使わん・・・・
でもBufferedReaderのReadLineは使ってるな(w 
>>778
考え方で言うなら、ストリームは一連のデータの流れってことだから、
Stringみたいに*長さが決まってない*データだということ。
逆に、これをwhileを使わないでどうやって取得すればいいと思う?
784初期不良:04/03/06 22:01
>>783
いや、使わずにと言う話じゃなくてなぜクライアントコードで
やる必要があるかと言う話です。標準 API が用意していても
いいかな?と思うんですが、何かポリシーがあるのかなと。
結構な頻度でみんなが同じように終端まで回す while を
書くわけですし...
785777:04/03/06 22:17
>>781
>終わりが分からんとか、文字列とは限らんときは使わなければいいだけ。
ファイルもTCP/IPも標準入力もその他もデータソースにするInputStreamに、
「サイズの小さいファイルでなおかつテキストだと分かっている場合に使うメソッド」
をわざわざ実装するのってどう思う?
そういう時はIOUtilsとか別のInputStreamのサブクラスだとかを使うでいいんじゃない?
786デフォルトの名無しさん:04/03/06 22:21
iアプリでmp3プレーヤーって作れないんですか?
787783:04/03/06 22:29
>>784
標準APIで用意してないのは、それこそ>>785の理由だと思う。
>>784
public static void streamCopy(Reader reader, Writer writer) throws IOException {
int n;
char[] buffer = new char[512];
while((n = reader.read(buffer)) != -1)writer.write(buffer, 0, n);
}
↑こんなメソッドがSystemクラスあたりに欲しかったってこと?
うーん...、いらね。自分で用意しる
ついでにarraycopyもいらね
>>788
arraycopy いらねって、アンタそれより速いコード書けるの?
あるもんは使えよ。
>>789
arraycopy はそんなに速くないぞ。
JIT すらなくて interpreter だけで動かしてた時はそこそこ有難かったが。
っつーか某氏はなんで while に拘るんだろ?
streamってのがわかってないんだろ
どうでもいいけどこのスレって初心者に優しいよね。
Perlスレに魅せてやりたい。Webプログラムだけど。
空気嫁。
まぁ、あれだ。質問しても全然答えの返ってこないスレよりはいいかも。
796デフォルトの名無しさん:04/03/07 00:53
アプレットについての質問なんですが
ローカル環境では動作するのですが
サーバーにUPしてアプレット起動したらどんだけだっても
アプレットを読み込んでいますの状態のままです
原因として考えられるのは何でしょうか?
InputStream談義、さっきから同じ話の繰り返しにしか見えないんだが
これこそがwhileってことなのかね。
うまくないし・・・。
>>796
例外は出てないんだよね?ブラウザ?それともappletviewer?
とりあえず考えられるのは前のバージョンがキャッシュされて使われてる、とか
そうでなければ多分何か無茶なことやってるんだと思うけど
800ゲトー
sun.misc.Unsafe を使いたいんだけど SecurityException が出る。
どうセキュリティを設定すればいいのかな?
>>801
使うな。以上。
助けてくれ。
C:\WTK20\apps\HelloMIDlet\src\HelloMIDlet.java:3: '{' がありません。
public class HelloMIDlet extends MIDlet implemtents CommandListener{
C:\WTK20\apps\HelloMIDlet\src\HelloMIDlet.java:34: '}' がありません。
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloMIDlet extends MIDlet implemtents CommandListener{
private Command exitCommand;
private Display display;
public HelloMIDlet(){
display = Display.getDisplay(this);
exitCommand = new Command("終了",Command.SCREEN,2);
}
public void startApp(){
TextBox t = new TextBox("Hello MIDlet","おはようございます",256,0);
t.addCommand(exitCommand);
t.setCommandListener(this);
display.setCurrent(t);
}
public void pauseApp(){
}
public void destroyApp(boolean unconditional){
}
public void commandAction(Command c, Displayable s){
if(c == exitCommand){
destroyApp(false);
notifyDestroyed();
}
}
}
>>801
自分がbootstrap classに入ってないとだめ。
java -Xbootclasspath/a:. Hoge
とか。
805デフォルトの名無しさん:04/03/07 03:46
>>803
×:public class HelloMIDlet extends MIDlet implemtents CommandListener
○:public class HelloMIDlet extends MIDlet implements CommandListener
806803:04/03/07 03:55
・・・・・・・・ありがとう。
807 :04/03/07 05:57
int[] を返すgetterを定義したんですが,
呼び出し側に配列の中身を書き換えられたくありません,
どうすればいいでしょうか.
Collections.unmodifiableCollectionみたく,
「書き換え不可能な配列」を得る方法とかはないんでしょうか?
>>807
無い。書き換えられて困るならSystem#arraycopy()でコピーを渡せ。
809807:04/03/07 06:09
orz
810デフォルトの名無しさん:04/03/07 10:19
今、すれ全部みてたら、俺の持ってる本がやばいみたいなことかいてあった、
久雄の本なんだけど、今日2巻かおうとおもってるんだけど。
やめたほうがいいの?35ぐらいでいってた、プレなんとかにふれてないとか。。
オススメの本まじ、おしえてくれ、一冊ですむやつ。。。
>810
自分がただの初心者だと思ってるなら独習Javaでいいんじゃないか?
J2EEやりたいならあの本じゃ厳しいがw
秀丸エディタからjavacなどを実行できるマクロでお勧めのものはなんですか?
[sun.misc.*]や、[sun.tools.*]などの
通常のAPIドキュメントにないパッケージのJAVADOCって
どこかで手に入りますか?
そのくらいも組めないの?
>>813
ソースをダウンロードしてjavadocに
かけたらいいんじゃないの、
と言ってみるテスト
>>808
clone() しなさい。
817デフォルトの名無しさん:04/03/07 12:07
同じマシンで異なるVMで動くプログラム同士で
メッセージのやり取りをするにはどういう方法が妥当でしょうか?
メッセージといっても片方のプログラムの進捗具合みたいなのを
もう片方のプログラムに報告する程度なのですが、
なにか妙案があれば教えてください。
818デフォルトの名無しさん:04/03/07 12:09
>>817
その程度なら生ソケットにテキスト流すのが楽っぽいな。
もうちょっと凝ったことしたければRMIを調べて見れ。
819817:04/03/07 12:19
>>818
レスサンクスです。
自信ないんですけど、こういう処理をプロセス間通信と
いうのでしょうか?
>>796
もし>>799さんが言うようにクラスがブラウザでキャッシュされているのならば
Applet読込時に画面右下のタスクバーに現れるコーヒーマークを右クリック
して「コンソールを開く」を選べばJavaコンソールが開く。ここで x を何度か
押せばクリアできるですよ。その後ブラウザで[Ctrl]+[F5]で完全なリロード
をすれば全部読み込み直されるです。
821!817:04/03/07 13:59
おいらも便乗質問させてください。
>>817さんと同じくプロセス間通信したいのですが、受信側が複数なのです。
今はファイルを置いて全員がそれをタイマ監視するようにしてるんですが、
どーにもスマートじゃない。>>818さんの方法だとスレッドの数だけポートを
いくつも開かなきゃいけないっぽいし、、、
なにか妙案ってありますでしょうか。
>>819
そう。IPC(Inter Process Communication)。
>>821
JMS(JavaMessagingService)とかMQ(MessageQueueing)について
調べれ。
>>821
受信するVM一つでいいんじゃないの?
そしてそこから各処理へとばすだけ

時間でファイル監視するより遙かにいい
それとも複数のVMじゃないとだめな作りなの?
単一マシン上でDatagramSocketでマルチキャストしたらどうなるかな
と、ふと思ってみた
825824:04/03/07 15:04
違った、java.net.MulticastSocketか
1.4からはsetLoopBackMode()なんてメソッドも出来てるね
826デフォルトの名無しさん:04/03/07 17:21
J2SE 1.5βで分からないことがあります。教えて下さい。
以下のプログラムは、コンパイルは通ったのですが、実行すると、
以下のエラーが出ました。

Exception in thread "main" java.lang.VerifyError: (class: Test, method: main signature: ([Ljava/lang/String;)V) Expecting to find integer on stack

sum += i; のところを sum = sum + i にするとエラーはなくなりました。
何がいけないのでしょうか。教えて下さい。よろしくお願いします。

import java.util.*;

class Test {
public static void main(String[] args) {

List<Integer> a = new LinkedList<Integer>();
int sum = 0;
for(Integer i : a) {
sum += i;
}
}
}
>>826
(多分)コンパイラのバグ。
BugParade に報告しとけ。
なんかベータ版使ってる人多いみたいだけどバグ報告したいってことなんかね
よくできた人が多いってか
漏れはいち早く新機能に触れてみたいってだけで使ってる。
バグっぽい動作を見つけても、正式リリース時には直ってればいいやとしか思わない。
>>828
そーゆー事いってると時代に乗り遅れるぞ。
俺?
俺は1.5βももちろんチェックしてるよ
今まで作ったアプリが動くかどうかが特にね
java2Dとjavasoundがかなり手が入ってるのかおかしい動きする

でも、あきらかにバグだろう>>826みたいな質問はせんってこった
動かないけどなんで?ってβであることを忘れてるんじゃないか、
という皮肉の意味だ

オートボクシング周りの不具合はオープンβ前からちょくちょくでてたしな
>動かないけどなんで?ってβであることを忘れてるんじゃないか、
バグ報告が無かったらβ版出す意味無いな…
俺は正式版が出て、情報が広まってから使うよ。
バグ報告はする気がないし、業務でも安定してからじゃないと使わないからねー。
>業務でも安定してからじゃないと使わないからねー。
業務でβ版使うのはたんなるアホだろ。
835821:04/03/07 21:14
>>822-825
教えてもらったキーワードでアレコレ試してみるです。サンクスコ!!

>>823
orbでクライアントと1対1対応したスレッドをじゃかじゃか作るんだけれど、
そいつら全員に配信したいですよ。クライアントが人なんで200msでタイマ
監視しても体感的にはストレス無いから今そうしてるんだけれど、やっぱ
スマートじゃないっつぅか。。。

>>824-825
なるほどマルチキャストなら全員が受信・・・ってできるんですか?
複数のプログラムというか、スレッドが同一のポートを開く時点で
アウトな気がするからまずは試してみるです。
>>835
その監視するファイルは誰が作ってるの?
それは1スレッド?

ファイルにする必要ってあるの?
たんなるBeansでいいんじゃない?
837デフォルトの名無しさん:04/03/07 23:03
Javaアプレットにて、
→キーを押したらキャンバス自体が動くプログラムを作りたいのですが、
問題が発生してしまいました。
init()で

//クラスHaikeiがCanvasを継承
//このクラスはインターフェースにKeyListenerがある
setLayout(null);
hx = 0; //int型変数
hy = 0; //同じくint型変数

//背景の設定
Haikei hhh = new Haikei();
hhh.setBounds(hx,hy,640,480);
add(hhh);
addKeyListener(this);

と記述し、同クラス上に

public void keyReleased(KeyEvent e){}
public void keyTyped(KeyEvent e){}
public void keyPressed(KeyEvent e){
int k = e.getKeyCode();

if(k == KeyEvent.VK_RIGHT){
hx -= 16;
hhh.setLocation(hx,hy);
}
}

と記述をしたのですが、キーを押しても何も起こりません・・・
なぜでしょうか??
>>837
そのコピペ内容を信じるなら
× Haikei hhh = new Haikei();
○ hhh = new Haikei();
かな。

あと、実行時にコンポーネント動かすのはトラブルの元かも
自前で描画処理書くことをお薦めしたい
839837:04/03/07 23:33
>>838
ああ、Haikei hhhは分かりづらいかと思ってコピペ用に付け足してしまったやつです。。
むう、次から気をつけます。スミマセン・・・
え、コンポーネント動かすのってダメなんすか!?何ィッ
repaint等でやると動作が重くなると思ったんですけど・・・。
じゃあスーパー正男やブレイク工業インベーダー等は一体どうやってキャラを動かしているんでしょう??
> repaint等でやると動作が重くなると思ったんですけど・・・。
コンポーネント動かしても殆ど同じ。
コンポーネント動かすのはそんなに悪くないんじゃ?
描画領域勝手にクリッピングしてくれるし、むしろ速いんじゃ?
そー思うなら試してみ
843837:04/03/07 23:52
クファッ、確かめて見たところ
コンポーネントを動かしてもrepaintは発動されるみたいっすね。
ガーン
では一体どうすればスムーズにコンポーネント「動かす」ことができるのでしょう・・
ってだんだん質問の主旨が・・
844デフォルトの名無しさん:04/03/07 23:54
簡単な出力コード(こんにちはなど)なら普通にコンパイル、実行できるのですが、
キーボードから入力するコードをコンパイルして実行したらNoClassDefFoundError
がでて困ってます。
調べたらパスの設定が間違っている可能性が高いみたいなことを書いてあったの
ですがよくわかりませんでした。どうしたら解決できますか?
>>844
>>1

でも、ただのタイプミスのような気もするが
>>843
普通にpaint()に描画処理書いて
普通にrepaint()で再描画すれば
普通の速度で動くよ

それで重くなるなら多分どっかで間違ったことやってるんだと思う
847デフォルトの名無しさん:04/03/08 00:23
あのぉ
test.classを
java test > log.txt
とすると、System.out.println()で
書いた文字がlog.txtに出力されますが、
log.txtに出しつつ
コンソール画面にも出したい場合は、
どうしたらよいのでしょうか?
unixならteeコマンドをパイプに挟む。

windowsでもteeコマンドくらい誰でも作れるし、そのへんに落ちてる。
>847
どーしても自プログラム側で解決したければ、
System.err.println() を使うとリダイレクト中でも画面に表示されるよ。
( System.err のリダイレクト先を変えたい時は 2> だっけ?)
まあ、リダイレクトしないと System.out と System.err の両方が画面に出ちゃうんだけどw
1.4以降ならloggerを使うのが正解。
>>847
単に、log.txtをtail -fで監視すりゃエエノデワ。
852デフォルトの名無しさん:04/03/08 12:22
JcheckBoxのTrue Falseを取得するにはどうしたら良いですか?
>>852
javaの基本

値の取得はget
値のセットはset
boolean型の取得はis
booleanは値の判定に使うから〜ってことだろうな
854デフォルトの名無しさん:04/03/08 12:43
回答ありがとうございます。
getTextとかsetTextなどは知ってましたが、isははじめて知りました。
この場合、is〜の次は何になるのでしょうか?
isState?
>>854
APIドキュメントみりゃ一発でわかるだろーが
少しは調べろ

isSelected
>>854
状態ですか? ってなんだよ。
857853:04/03/08 13:10
>>855
おまえ優しいな

しかし、このまえもでてきたがマニュアル読まないでプログラム作るのってはやってるのか?

たとえばカスタムレンダリングとかビューとドキュメントの分離の話とか
あきらかに難しい部分ならともかく、isから始まる命令というところまで教えても
わからないってのはなぁ
858デフォルトの名無しさん:04/03/08 14:00
Vector vec new Vector();
vec.add("1");
vec.add("2");
vec.add("1");
vec.add("2");

のようなVectorがあって重複する値を消すにはどうすればいいですか?
Vectorは順序を保持するものであって内容は関係ない
可変長配列だと思えばいい

重複するのを消して行くにもどういう優先順位で消せばいいのか
それとも重複するデータをいれれないようにすべきなのか
その辺は仕様によりけり

そもそも重複する判定をどうするのかという問題がある気がするけど?
String以外もいれれるわけで
860デフォルトの名無しさん:04/03/08 14:06
ListにStringのみを入れてるときに、そこからStringの配列を取り出すことってできないですか?
toArrayメソッドを使うとObjectの配列が出てきちゃうのでそれをStringの配列としてキャストするわけにはいかず。
System.arraycopyかなにかで再度入れ直すしかないですか?
861みー:04/03/08 14:07
SWTを利用してJavaからDLLを利用するモジュールを作成したいのですが、
どのようにしたらいいでしょうか?
JNIからSWTのDLLを呼び出すようにすればいいということまではわかったのですが、
どのように実装すればいいのか見当がつきません。
教えてください。
>>858
最初から重複しなくてよければ、Set使ったら?
>>860
(String[])arrayList.toArray(new String[arrayList.size()]);
じゃダメ?
864デフォルトの名無しさん:04/03/08 14:10
>>863
それだ!
どこかでやったような気もしてたんだけど、引数無しのtoArrayに固執してた。
さんくす!
865デフォルトの名無しさん:04/03/08 14:46
858です。

>>862
サンクスです♪
Set使ったらうまくいきました。
そういや引数無しのやつは必ず一度ははまるね
>>866
APIリファレンスをちゃんと読まないからそーなるのだ。
いや、読んだ上で省略形が純粋にObject[]かえすからこれをキャストで
気軽に取り出せるかと思ったのさ
んでコンパイルエラーと
869みー:04/03/08 17:46
SWT、誰かわかる人いないですか〜??
> これをキャストで
なんでキャスト出来ると思うんだろ?
>>869
もう少し待って回答がないようだったら、ここでの質問を一旦取り下げて、
こっちで聞いてみてもいいかもね。

Java 高速GUI SWT
http://pc2.2ch.net/test/read.cgi/tech/1068349883/
>>861
質問の意味がわからん。
873みー:04/03/08 18:38
SWTを通じてWin32APIを利用したいんです。
>>873
SWTを通じて、の必要が理解できないんだけど…

1.JNI経由でWin32APIを直接呼び出したい(SWT不要)
2.SWTが特定のWin32APIを呼び出す事が分かっているので、
 これを利用したい(JNI不要)

どっち?
875854:04/03/08 18:42
>>855-857
ありがとうございました。
一応、APIドキュメントで調べて、
isSelectedも含め、それらしいのをいくつか試してみたのですが、
エラーが出るので、違うのかと思い質問させて頂きました。
まったくマニュアルを読まないで作ってるわけではありません・・・
isSelectedに絞り込めたので、これでエラーの原因を探してみます。
876みー:04/03/08 18:56
>>874さん
回答どうもありがとうございます。

ちょっと私の理解が間違っていたようです。
最初SWTを通じてWin32APIを利用したプログラムを作成しようと思っていたのですが、
私が使いたい機能はどうやらSWTでは定義されていないようでした。

ちなみにWin32APIを利用して端末に接続されているプリンタのステータスを取得したいのですが、
OSが2000の場合どのようにしたらいいのでしょうか?

よろしくおねがいします。
>>876
すまん。プリンタのステータスを取得する Win32API は知らない。
javax.print も調べてみるといーかも。
すみません。
catch(Exception e)で取得したException型の変数eをString型に変換って可能ですか?
>>876
プリンタのステータスって具体的には何を知りたいのかな。
SWTでも解像度ぐらいなら取得できるけど。
とりあえず
ttp://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets
にあるサンプルとAPIリファレンスを眺めてみよう。
>>878
Exception#toString
これでなんかいいことあるのか?
>>880
log4j使ってデバッグ文をlogに出したいんですけど
logger.info( String ) しかないらしく、Exception型をログファイルに書き出せないんです。
882みー:04/03/08 19:54
>>879
回答ありがとうございます。

取得したいのは、プリンタからのステータスの変更通知です。
現在手元にあるJNIを利用したモジュールだと、スプールの状態しか確認できず、
アプリケーション起動後のステータスの変更(電源のON・OFFや紙切れなど)を拾うことができないのです。
JNIで呼び出しているDLLの中身を見ることができないので(方法がわらかないだけ?)、
今のモジュールではどういう風にスプールの状態を取得しているのかもわらかないのですが・・。
>ちなみにWin32APIを利用して端末に接続されているプリンタのステータスを取得したいのですが
ここできくことじゃない。Java とは全然かすってない。
884882:04/03/08 19:56
>>続き

ちなみにSWTでは私の希望してる感じのAPIはないようでした。
885882:04/03/08 20:02
>>883
すみません。

開発環境がJavaなのでここで聞けばいいのかな?と思っていました。
やり方によってはC言語などでWinAPIを操作しなくても直接Javaから呼び出す方法もあるのかな?と思いまして・・。
PrintService#addPrintServiceAttributeListener

>>877 のアドバイスで速攻見つけたけどどうよ。

これで解決できなかったらひと月滝に打たれてきな。
887みー:04/03/08 20:18
>>886

PrintServiceAPIにそれらしきクラスとかありました?
私も一通り見たんですが、ハードに依存したステータスを取得するような
クラス、メソッドはなかったように思うのですが・・。
もし思い当たるものがあったのなら教えていただけませんか?
お願いします。
>>881
ん? そういう意味か。Exception を引数で渡せるのあるだろ?
古いバージョンでは無いのか? info しか使えないようになんか制限されてるのか?
それか Exception#getMessage では足らんか?
http://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/print/attribute/standard/PrinterStateReason.html
ここにもあるぞ。どこまで互換性あるか知れたもんじゃないが。

なんつーか、二枚舌じゃないけど、やりたいことをはっきり直球で書かない奴だな。
「今使ってるモジュール」の話は本当に必要だったのか?
>>877 のアドバイスをちゃんと聞いてて
>私も一通り見たんですが、ハードに依存したステータスを取得するような
>クラス、メソッドはなかったように思うのですが・・。
と言えるくらい眺めてるなら、スプール状態しか調べられない DLL なんかそもそも不要やんけ。
アプリケーションのパッケージ名はどのようにしたらいいのでしょうか?
ただ単に

package myApplication;

みたいにしたら、何か問題はあるのでしょうか?
お願いします。
>>890
普通は大文字は使わない。また短いほうがいい。
公開する場合や、パッケージの衝突を避けたいんだったら
ドメインを逆に並べる。ドメイン名を使うのは必須ではない。
>>890
・パッケージ名が他の人に使われないと保証できる場合
・パッケージ名がカチあった事によって問題が起こっても良い場合
なら問題ない。
そうでなければ素直に Sun のガイドラインに従え。
>>890
別に問題ないよ。
キーの打鍵数をカウントするアプレットを作ったのですが、
ユーザがアプレットにフォーカスを設定しなくてもいいように、
requestFocus()でやらせようと思ったのですが、うまく動きません。
どうすれば意図した通りに動くのでしょうか、お願いします。

問題のソース
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=58
>>894
requestFocus() はそのような目的には使えない。

FocusListener#focusGained(FocusEvent)使ってみれば
フォーカス得るのに失敗してるのがわかるでしょ。
>>881
Throwableを引数にとれるぞ。
ttp://logging.apache.org/log4j/docs/api/org/apache/log4j/Category.html#info(java.lang.Object, java.lang.Throwable)
大昔からあるぞ。
1.2以降なら、CategoryじゃなくてLogger使えよ。
897894:04/03/08 22:58
>>895
ども、レス有難うございます。

>FocusListener#focusGained(FocusEvent)使ってみれば
>フォーカス得るのに失敗してるのがわかるでしょ。
その通りでした。↓をinit()に追加し実行して確認しました。
addFocusListener(new FocusAdapter() {
 public void focusGained(FocusEvent e) {
  showStatus("focus gained");
 }
 public void focusLost(FocusEvent e) {
  showStatus("focus lost");
 }
});

>requestFocus() はそのような目的には使えない。
知りませんでした。他に手段があるなら教えてもらえませんでしょうか。
お願いします。
898894:04/03/08 23:17
勉強不足でした。フォーカスを確実に当てさせることは出来ないんですね。
>>895さん、どうも有難うございました。
>>898
requestFocus() でフォーカスを確実に当てるには条件があるだけ。
簡単に言うとアプレット側ではどーしよーも無い。
900894:04/03/08 23:36
>>899
ども。挙動がブラウザ等によって、まちまちだとかですよね。
取り合えずは、「クリックでスタートします」みたいなメッセージを出しておこうと思ってます。
>>891-893
お答えありがとうございました。サンのガイドラインを読んでみます。
すいませんが教えてください。
コンパイルすると
パッケージ netscape.javascript は存在しません。
import netscape.javascript.*;
^
となります。
検索するとどうもmoz3_0.zipとかが必要な感じなのですが、どこにあるのでしょうか。

よろしくお願いします。
>>902
なにそれ?そんなライブラリあるの?
ちょっと興味あるな。
>>902
LiveConnect用のパッケージが無いんでしょ?

あれ? 今も配布されてたっけ?
>>902
俺はアプレットなんて作らないからよく知らないが,検索してみたらjaws.jarとかいうのを
クラスパスに入れるらしいことが分かった。だが,俺の使ってるSDKの1.4.2_02にはそんな
ものは無かったんで,適当にjarの中を見ていったらplugin.jarの中にそういう名前のパッケージ
が入ってた。これか?
>>903
>>904
お手軽なIRCクライアントを探していてQuickIRCというのを見つけたのです。
それをコンパイルしようとしてmakeを実行すると >>902 のメッセージがでて失敗しました。
Javaは殆ど分からないのですが、すこしカスタマイズしたいと思ったのです。
ですが、コンパイルエラーでつまずいてしまいました。

解決策等ありましたらよろしくお願いします。
>>905
情報をどうもありがとうございます。
ご指摘のモジュールを探して今からちょっとやってみます。
私もJavaアプレットを触るのは今回が初めてなのです
>>905
どうもありがとうございました。
jaws.jarというモジュールをCLASSPATHに指定すれば上手くいきました。
私の環境ではjaws.jarというパッケージはmake ファイルに指定されていた場所には無かったようです。
とにもかくにもおかげさまで上手くいきました。
本当にありがとうございます。
909デフォルトの名無しさん:04/03/09 18:04
Loggerを使用してLOGをはきたいのですが、なぜかLOG吐きをするたびに
新しいLOGファイルが誕生してしてしまいます。
一つのLOGファイルだけでLOG吐きをおこないたいのですが
どうすればいいんでしょうか?
追記設定ちゃんととかしてるのになぁ。
BufferedReaderのreadLineを利用して、ファイルから1行を読もうとしているのですが、
指定行を読むには、readLineを指定行回ループさせる方法でよいのでしょうか?
skipLineみたいな感じで一気にジャンプする方法はありますか?
よろしくお願いします。
911910:04/03/09 18:21
↑補足です。
指定行目を読み込むという意味です。
>>910
ループさせるしか無いね

どうしてもそれが嫌なら
"どの行が何バイト目にあるか"の情報をファイルの頭に書いとくとか
>>909
ちゃんとやった追加設定をさらしてくれ。

>>910
探してみたら、BufferedReaderの子にLineNumberReaderがあって、
setLineNumberといかにもそれをやってくれそうなメソッドがあるけど、
getLineNumberで返す番号を変更するだけという何のためにあるか分からんようなメソッドだった。
というわけで、skipLineを自前で実装するしかないんじゃないかと思う。
>>910
構造上飛ばすメソッドがあったとしても結局一行ずつ読むのとほとんど変わらないと思うけど・・・
リスト構造の○番目を見たいと思ったら先頭や何かで覚えておいた位置から
順番にたどっていくしかないみたいな
915910:04/03/09 20:04
なるほど、よくわかりました。
1行目から読んでいく方法で実装しようと思います。
どうもありがとうございました。

もう一つ、質問があるのですが、
おなじInputStreamReaderのmarkの引数(readAheadLimit)には何を指定すべきなのでしょうか?
「マーク位置を保持して読み込むことのできる最大文字数を指定します。」
とあるのですがよくわかりません。
916デフォルトの名無しさん :04/03/09 20:31
appletに関する質問です。
appletが表示された後に、ブラウザを小さくすると
描画が乱れます。
リロードで元にもどりますが、
これを回避するにはどうすればいいでしょうか?
917デフォルトの名無しさん:04/03/09 21:02
スレッドAが、スレッドBに作業開始を通知し、その後、
スレッドAは、スレッドBからの作業終了の通知があるまで待機する、

ということを実現するにはどうすればよいでしょうか?
(要するに、WindowsのSignalObjectAndWait()をやりたい)

素直に以下のとおり実装したところ、(1)の前に(2)が走ってしまってだめだめでした。

Object 作業開始 = new Object();
Object 作業終了 = new Object();

ThreadA#foo() {
 作業開始.notify();
 作業終了.wait(); - (1)
}

ThreadB#run() {
 for(;;) {
  作業開始.wait();
  作業();
  作業終了.notify(); - (2)
 }
}
918917:04/03/09 21:30
API仕様を穴のあくほど見た結果、自己解決しました。(でも自信なし)

wait()すると、synchornizedでかかったロックが一時はずれるので、
必ず外れた後に作業終了.notify()が走るようにしたところ、問題なく動きました。

Object 作業開始 = new Object();
Object 作業終了 = new Object();

ThreadA#foo() {
synchronized(作業終了) {
  synchronized(作業開始) { 作業開始.notify(); }
  作業終了.wait();
 }
}

ThreadB#run() {
 for(;;) {
  synchronized(作業開始) { 作業開始.wait(); }
  作業();
  synchronized(作業終了) { 作業終了.notify(); }
 }
}

まるでパズルだ…Javaはもうイヤ…
919デフォルトの名無しさん:04/03/09 22:24
あるファイル選択したときに、そのファイルがテキスト形式であるのか、
バイナリ形式であるのか判断する方法を知りたいのですが、何か良い方法は
有るのでしょうか?

よろしくお願いいたします。
>>919
確実にバイナリであると言う判断はできるが、
確実にテキストであると言う判断は不可能。
もっと冷静になれ。

つーか何故 Java のスレに聞きに来る?
>>919
おまえほんのちょっと前にも同じことかきこんでなかったか?
922デフォルトの名無しさん:04/03/10 00:55
質問です。
WeakHashMapはstatic final でも、GCの対象になって
メモリ中身が消えたりするのでしょうか?
>>922
finalなのはWeakHashMapへの参照だけだからエントリは消えるよ。
>>919
>>680から読んでみそ。結局、ファイルの先頭10数バイト読んで、
そのパターンでファイルの種類を判別する、
UNIXのfileコマンドをJavaに移植したらどうかってのが一番確実っぽい。
925922:04/03/10 01:18
>>923
ご回答ありがとうございます。

普段 WeakHashMap等のget()から
得る物の実態はMap.Entryってことなのでしょうか?

そんでももってそれはWeakHashMapとは別物だから
GCの対象になっちゃうってことなんでしょうか?
926デフォルトの名無しさん:04/03/10 01:27
>>925
Map以外から参照されていればGCされない。
>>925
get()で得られるオブジェクトをMap.Entryが持ってて、
WeakHashMapの場合、Map.Entry自体がWeakReferenceを継承したオブジェクトだから、
Map.Entryの持つオブジェクトは、WeakReferenceの持つオブジェクトと同じようにGCの対象になる。
WeakReferenceの弱参照の説明を読んでみそ。
928927:04/03/10 01:36
なんか説明がおかしいね。
Map.Entryの持つキーが、WeakReferenceと同じルールで破棄されるって言わんといかんかった。
929922:04/03/10 01:43
>>926
そうですよねぇ・・・
参照されてたら消えないはずなんですが、
なんかやたらと消えるんす。
消えるのはやっ!って思うくらいに。

>>927
なるほどー。
そういうことだったんですか。
すごく勉強になりました。
ありがとうございます。
>>927
WeakReferenceでぶら下げているのはキーだけ?
値の方はどうなるの?
>>918
それ、生産者・消費者問題っていう、マルチスレッドプログラミングにおける一般的な
問題なのでわ。

そういうのがメンドイときには、JDK1.5でコアAPIにバンドルされる予定の、Doug Leaセンセイ
謹製 util.concurrentライブラリがよく効くよ。センセイが公開しているから、ネットで探
して味噌。
>>929
WeakReferenceは、消えるの早いよ。GC走ったら即消えるのが、一般的
なGC戦略になりそう。カノニカライズマッピングくらいでしか使い道なさそう
だと思うんだけど。

なんでSoftHashMapはないんだろね。カノにカライズ〜なんてめったに作らんと
おもうけど、メモリセンシティブキャッシュを欲しがる人は多いと思うんだよなあ。
>>930
ぶら下げてるのはキーだけ。
でも、キーが破棄されたら割り付けられた値も到達不可だから結果的に回収されちゃう。
>>931
一般的なのか。Windowsやってる分には便利なAPIが一発で面倒なこと解決してくれるんで、
基礎知識がおろそかになるな。

concurrentライブラリか!コンカレントCP/M思い出して燃えてきたぜ!
早速ググってみるわ。情報サンクス。自作ルーチン危なっかしいんで置き換える。
935デフォルトの名無しさん:04/03/10 09:18
みなさんは、javaのプログラムから
もう一つVMを起動して
そこで別のjavaを走らせるってさせたいときには
どのようにしていますか?
936デフォルトの名無しさん:04/03/10 12:28
File("/aaa/bbb/ccc")と
File("/AAA/BBB/CCC")がほんとに同じかをシル方法は
ないでしょうか?
LinuxからFATを見ている場合、equalsではfalseを返して来ます。
throws IOExceptionってどういう意味ですか?
>>936
java.io.getCanonicalPath
java.io.getCanonicalFile
939938:04/03/10 13:32
まちがえた
java.io.File#getCanonicalPath
java.io.File#getCanonicalFile
940938:04/03/10 13:34
LInuxから見てるのか...。これじゃダメかも。
941デフォルトの名無しさん:04/03/10 14:40
servletで時間制限をかけたいのですが、どうすればよいのでしょうか?
JSPで一分以内にIDをいれなければ、timeout、見たいな感じで。
942デフォルトの名無しさん:04/03/10 14:42
>>941
セッションにCalendarクラスのインスタンスでもつっこんでおけば?
943749:04/03/10 14:44
>937
Javaの入門書なり、Sunのチュートリアルなりに目を通せ・・・と言いたいところだが

何を知りたいのだ?
 throwsと表記するとどんな効果があるのか?
   その次に記述するエラーが起きたら、そのルーチンを抜け出して呼び出し元の指示を仰ぐ。

 IOExceptionの意味が知りたいのか?
  入出力でエラー(オープン/クローズ/リード/ライトができない等)があった時に生じるエラー
944749:04/03/10 14:45
あ、名前の番号は他板の他のスレの番号だった。

すまん、このスレの749
>>936
File#equals(Object)はネイティブファイルシステムに比較を依頼してるから、
File側でそれが実際は同じ場所なのを知ることはできないんじゃないかな。
アプリ側で特殊なケースとして、指定されたパーティションでの比較の場合は、
File#equals(Object)じゃなくて、自前で比較するとかしかないんじゃない?
>>945
> File#equals(Object)はネイティブファイルシステムに比較を依頼してるから、
OS判定して大文字/小文字を同一視するかのフラグに反映させてるだけだったような。
>>945
new File("C:\\Program Files").equals(new File("C:\\PROGRA~1"))
とかの評価結果は false になると思うけど…
948デフォルトの名無しさん:04/03/10 17:46
JSP側で取得したDateをservletに送るにはどうしたらいいんですか?
session,requestのどっち使うんですか?
949デフォルトの名無しさん:04/03/10 17:49
>>948
質問がわかりにくいが、おまいさんのやりたいことを想像すると、Sessionだろう。
950945:04/03/10 18:17
>>946
Fileのソース見て。FileSystemっていうネイティブインタフェースに処理を委譲してる。

>>947
それは、今回の件と何の関係があるの?
UNIXでもシンボリックリンクが同じ場所を指してても、
リンクを辿らないフルパスとは別物と判断されるよ。
>>950
あぁ、フラグ使ってないや。

Windowsだと java.io.Win32FileSystem#compare(File,File)で
f1.getPath().compareToIgnoreCase(f2.getPath()) してて
Unix だと java.io.UnixFileSystem#compare(File,File) で
f1.getPath().compareTo(f2.getPath()) してるだけ。
>>951
つまり、ファイルシステムがFATならcompareToIgnorCase()使うようにすればいい、と。
…JavaプログラムからFATかどうかなんてどうやって知るんだよぅヽ(`Д´)ノ
953945:04/03/10 18:46
>>947
ごめん。分かったかも。漏れがネイティブファイルシステムとか言ってるから、
OSとかに処理を委譲してるんだったら、同じ物理パスならtrueになるはずって突っ込みだったのね。
すまそ。ネイティブとかってのはJNIとかとは何の関係もなくて、
そのシステムに依存したFileSystemクラスのサブクラスって意味で使ってた。
>>951の言うとおり、Win32FileSystemとUnixFileSystemどす。
で、これはFileクラス側からはいじれないのでどうしようもないという意味でした。
用語を間違って書いた上に、やらしい書き方してすません。
>>952
制限事項にしちゃって、大文字小文字を区別しないオプションをアプリにつけるとか。
作りこむなら、/etc/fstabを見てどのタイプでマウントされてるか判断する。
これだと手動でマウントされたファイルシステムは分からないので、
もっと本格的にやるなら、mountコマンドの実行結果を解析する。
955916:04/03/10 20:10
>>916
まだ解決しません。
お願いします。
>>916
paint か update が適切でないんだろ
957デフォルトの名無しさん:04/03/10 21:17
質問なのですが、java言語を勉強したらどういう仕事ができるんですか?
java言語だけではダメでしょうか?
>>916
最新のVM使うと良いと思われ。

それかappletにname="myapplet"とbodyにonresize="document.myapplet.repaint();"つけると
どうなる?

ex.
<body onresize="document.myapplet.repaint();">
<applet code="Animator.class" width="460" height="160" name="myapplet">
960958:04/03/10 21:36
>>916
ごめん。上のは古いやつだった。こっち。
http://developer.java.sun.com/developer/bugParade/bugs/4844303.html
アプレットでタイピングソフト作ろうとおもってやっとるんですが
ボクの予定では正しくタイピングすると文字が消えていくよていなのですが消えませんなにがいけないですか?

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class Typing extends Applet {
private Label lb1,lb2;
int i=0;
String kana[]={"こんにちわ","おはよう","おやすみ","さようなら"};
String str[]={"konnitiwa" ,"ohayou","oyasumi" ,"sayounara"};
String str1="";
public void init(){;;
str1=str[i];
lb1=new Label(kana[i]);
lb2=new Label(str1);
add(lb1,BorderLayout.NORTH);
add(lb2,BorderLayout.SOUTH);
addKeyListener(new KeyInput());
}
962つづき:04/03/10 21:39
class KeyInput extends KeyAdapter{
public void keyTyped(KeyEvent e){
char a;
int c;
c=str1.length();
StringBuffer stb=new StringBuffer(str1);
a=stb.charAt(0);
if(a==e.getKeyChar()){
stb=stb.deleteCharAt(0);
str1=stb.toString();
c--;
}
if(c==0){
i++;
str1=str[i];
lb1.setText(kana[i]);
}
}
}
}
>>957
結果としてjavaで喰っていると思った方がいいぞ

俺だけでも言語はここ20年いろいろいじってきたから
javaでずっといけるかというとそういうわけでもないだろう

ただ、cobolの置き換えとしてのjavaがのびてる感じなので
すぐに消えるかと言えばそんなことはない

大概OSやらハードやらのほうが先におじゃんになることも多いからね
javaはそのへんの環境超えやすいので注目しているけどね

今でもDOSや88BASICのシステムとか残ってるし
一つの言語としてjavaはいいだろうけどプログラマとして
一つの言語にこだわる必要はない、というか止まっちゃダメ
Environment:Win2k SP4
Eclipse 2.1.1 (日本語LanguagePack適用済)
Java2 SDK, Standard Edition v 1.4.2_01

 MSX-BASIC から Java (Eclipse) にステップアップしたばかりの者です。
諸般の事情で、オフラインで使い始め、なんとかHelloWorldは悪戦苦闘の末、
表示に成功しました。
 ところが、"ヘルプ"を開こうとすると、真っ白な画面しか出ません。もしや、サイト
につなげないと使えないのでしょうか?知ってる方、教えてくださいな。
>>961
ちゃんと見てないけど、キーイベントのとこで、
lb1には値をセットしてるけどlb2にはセットしてないからとかそんなの?
966916:04/03/10 23:05
>>956
>paint か update が適切でないんだろ
javaのDemoのアプレットも全部、乱れますよ。

>>958
>最新のVM使うと良いと思われ。
最新です。
>それかappletにname="myapplet"とbodyにonresize="document.myapplet.repaint();"つけると
>どうなる?
できました。
けど、javascriptは使用したくないです。

>>960
>ごめん。上のは古いやつだった。こっち。
>http://developer.java.sun.com/developer/bugParade/bugs/4844303.html
IDが無いと見られないようです。
ID取りますね。

みなさんありがとうございます。後は頑張ります。
967デフォルトの名無しさん:04/03/10 23:12
>>963
ありがとうございます!!
963さんは20年間もこの仕事をされてるんですね。
私もこれから長い道のりになるのでしょうが、頑張りたいと思います。
javaだけでとまらず、どんどん吸収しろということですよね。
まだ、963さんがおっしゃってくれた事が半分くらいしか理解できないので
まずは言葉から勉強します。

もう一つよろしいでしょうか。今、独学で勉強しているのですが、

System.outprint(1./3+1./3+1./3);

が何故「1」になるのかが分かりません。
0.333333333333333を3回足したら0.9じゃないんですか?
javaでは、少数以下は切り上げなんですかね?
初歩的な質問ですみません。

よろしくお願いします。
>>967
>0.333333333333333を3回足したら0.9じゃないんですか?
違いますけど。
丸め誤差を知らないどころの騒ぎじゃないな
970デフォルトの名無しさん:04/03/10 23:25
>>968
お返事ありがとうございます。この場合どう考えたら良いのでしょうか。
0.999999999999999が四捨五入されて1.0と表示されるのですか?
>>964
やってみた、つかEclipse自体のヘルプなんて初めて見た。
これローカルマシン内で通信してるが、TCP/IP入ってる?
ネットにつなげてなくてもTCP/IPだけ入れれるはず。
>>964
このスレ残り少ないし、とりあえず専用スレに移ったほうがよいと思われ

【Java/C/他】統合開発環境Eclipse M11
http://pc2.2ch.net/test/read.cgi/tech/1076074293/
>>964
>ところが、"ヘルプ"を開こうとすると、真っ白な画面しか出ません。もしや、サイト
>につなげないと使えないのでしょうか?知ってる方、教えてくださいな。


       ヘ ル プ 読 め !


974963:04/03/10 23:38
>>964
Eclipse固有の問題ならそれ専用のスレがある
そっちできくがよろし
個人的には本当の初心者なら環境設定も楽ですぐに
開発開始できるNetBeansをおすすめする
MSXBASICとは懐かしいな
ハンドアセンブルと組み合わせて遊んでいたな
MSXの感覚でプログラム組みたいのならまっさきにBufferStrategyとJAVA2Dを
勉強してフルスクリーンやウインドウ内を描画するのがいいだろうね
スプライトもjava2dの描画で何の問題もない

>>967
プログラムしてるのが20年ってだけで喰ってるのはそこまではない
当時はパソコンなんてさわってると白い目で見られる時代だった

>System.outprint(1./3+1./3+1./3);
本人が意識していないうちに浮動小数点つかってるね
これはだいたいの値を処理できるもので最終的に約1となるかな
これはjavaだからというわけじゃなくてどの言語も同じ
0.999999999・・・と続くから約1
0.3*3にしたいのならそれぞれを0.3にすべし
> 0.999999999・・・と続くから約1
この説明は正確ではない。

1./3+1./3+1./3 の評価結果は 1.000000000000000
(ビットパターンで言うと 0x3ff0000000000000)になってる。
正確なのおしえるのもいいけど
こんな基本中の基本の質問するんだから浮動小数点のあいまいさをおしえただけだった

すまんね

詳しく知りたいのなら
情報処理の概論かなんかよんでくれ>967
たぶん2の補数とかもしらないとおもうし基礎はやっぱり大事だ


ま、一応自分の名誉のために(大嘘)javaでは浮動小数点はこうなるといっておくか

浮動小数点の実装は昔はそれぞれまちまちだし、
今でも組み込みで作り込んでいる場合独自実装もありえる
普通のデスクトップアプリは独自実装はほぼないといっていいけどね

ビットパターンやら指数部とかこの辺を意識して作るようなら
javaというか高級言語やめれって感じか
>>974
お前、浮動小数点の丸め誤差を全く考慮してないのな
>>977
ん?なぜ俺?
丸め誤差のことを約1とかいたんだが?
浮動小数点数なんか使わない、が業務アプリ向けの正しいJavaの使い方
ではないかと。
JSP使った業務アプリでDoubleだのFloatだのIntegerだのが入り乱れて
使われているのをみていると、「使い分けている意味あるのかよ、単に
面倒事増やしてるだけで、メリット無いじゃん」とおもうです。
980964:04/03/11 00:07
>>971
レスおおきに。
>これローカルマシン内で通信してるが、TCP/IP入ってる?
>ネットにつなげてなくてもTCP/IPだけ入れれるはず。
 TCP/IPは入ってます。このカキコも同じPCですし。

>>972
誘導サンクス。

>>974
 さっそく、NetBeans をチェックしてみます。
 MSX-BASICは、実質的に ASCII の MSX 公式エミュから使い始めたのですが、
設計・コーディング等を考えずに気軽に遊べるので気に入ってます。
ハンドアセンブル・・・すごいですね。Poke文とマシン語はまだ手を出してません。
ていねいにありがとうございました。
>>979
カネの計算するプログラムで普通にdoubleが使われてるのを知ったときは
問題が起こる前にとっとこのプロジェクトから抜けよう、と思ったよ。
たしかに業務プログラムで浮動小数点全く使わないね
でも、しらずに使ってるコードとかよく見る
あと有効桁数ってのもしらないでfloatでガシガシかいて死んでた
システムも見たことある
doubleにして緊急回避してたようだけどね・・・


>>980
NetBeans知らずに入れてる人もいる・・・かも?
俺は落としてないからどういうアーカイブかわからんけど
1.4.2のダウンロードのトップはNetBeans同梱版だからね

分かりやすく言えばsunの商用開発ツールがこのNetBeansに
WEBサービスやらEJBやらつけたして売ってる
EclipseがちょうどIBMのWebSphereのベースになってるように

だからある意味純正といえる
ただ3.51はとっつきにくいのでβの3.6のほうが触りやすい
βだけに初心者に勧めにくいけどね
ま、3.5.1でも昔に比べればとんでもなく触りやすくなって高速化したよなぁ
BigDecimalの使い方も存在意義も知らずにJavaで金勘定向け業務アプリを
作るような馬鹿が、日本の会社には腐るほどいるということなのですな・・・
昔から腐るほどいる
VBとかでも通貨型が何のために必要なのかわからないやつとかいた
質問です。XMLのタグ(閉じタグや開始タグ等は問わない)が
有効な書式であるかを調べるAPIってありますか?
例)
<test id="xxx"> ○
<test id="xxx>  ×
</test id="xxx"> ×
って感じで判定してくれるようなものがあれば有難いです。。
986919:04/03/11 00:59
>>920 >>921 >>924
ありがとうございました。
お手数おかけいたしました。
うげー。次スレ建てられなかったよ。
漏れって荒らしに認定されたの?誰かよろしく。
ほい、次スレ

【初心者】Java質問・相談スレ43【大歓迎】
http://pc2.2ch.net/test/read.cgi/tech/1078935442/
おー、サンクス。home.ne.jpって以前アクセス規制があったからその流れかな。
初めて2chでスレ建てられると思ったのに。ヽ(`Д´)ノ ウワァァン!!
>>985
XMLがXMLの書式に沿ってることをwell-formedであるって言う。
あるスキーマに沿ってることをvalidatedであるって言う。

前者だけをチェックしたいならば、
javax.xml.parsers.DocumentBuilderFactoryで
setValidating(boolean validating)をfalseにしたDocumentBuilderを作り、
それでparseしてみればいいと思われ。

SAXのほうがお好みならばそれぞれSAXParserFactoryとSAXParserで
いいと思われ。
>>966
最新のVMというか、JavaPluginとVMのバージョンの組み合わせみたい。
>>960のリンク先にはそんなことが書いてある。
根本的な問題はIEがブラウザのリサイズ時にrepaintイベントを送ってこないことらしい。
公開するアプリだったら、JavaPluginとVMのバージョンを指定して使ってもらうより、
>>958のJavaScriptでの解決法が一番簡単で確実だと思うんだけど。
>>987
多分違うと思う。
http://pc2.2ch.net/tech/SETTING.TXT
によるとだれか他のプロバイダに加入している香具師らスレッドを立てない限り
同じプロバイダで同じ板に連続して64回もスレッドを立てられないということを意味している。
993デフォルトの名無しさん:04/03/11 11:59
型名そのものを取得する方法ってありますか?
C++のtypeidみたいなものが欲しいんですが。
994デフォルトの名無しさん:04/03/11 11:59
記念カキコ v(^-^=)
getClass(), Class#getName()
梅松
998デフォルトの名無しさん:04/03/11 13:12
埋めろ、グズども
999デフォルトの名無しさん:04/03/11 13:20
スリーナイン
1000デフォルトの名無しさん:04/03/11 13:20
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。