【初心者】Java質問・相談スレッド60【大歓迎】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
以下のエラーが表示されて、途方にくれているあなたは、下のページへ。
「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path%2Cclasspath
前スレッド
【初心者】Java質問・相談スレッド59【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1103729175/
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。
JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/
0002デフォルトの名無しさん
NGNG乙。
0003デフォルトの名無しさん
NGNGそのサイズはタイトルバー込みのサイズになってしまいます。
タイトルバーなしのサイズを指定(もしくは取得)したいのですが、
何とかする方法はありませんか?
0004初心者 ◆Java/isQ.c
NGNG次のページの「タイトルバーを除いたFrame領域の取得方法」が参考になるかもしれません。
ttp://mikilab.doshisha.ac.jp/~junjis/rwiki/index.cgi?cmd=view;name=Java%BB%A8%B5%AD
0006デフォルトの名無しさん
NGNGこれでプログラムでIEEE754の浮動小数点表現が得られ、仮数の桁数も求められる
ようになったわけですが、あと切捨ての有無を調べるにはどうしたら良いでしょうか。
わかる方、教えて下さい!!
以下に今の所できているプログラムを記載します。
class FloatingPoint {
public static void main(String[] args) {
// 文字列 args[0] を float 型に変換
float f = Float.parseFloat(args[0]);
// float 型 f のビット表現を文字列 str に変換
String str = Integer.toBinaryString(Float.floatToRawIntBits(f));
System.out.println(args[0] + " = " + str);
System.out.println("仮数の桁数は" + ((0 <= args[0].indexOf('e') ?
args[0].indexOf('e') : args[0].length()) - (0 <= args[0].indexOf('.') ? 1 : 0) + "です。"));
}
}
0007デフォルトの名無しさん
NGNGおつかれ。
0008デフォルトの名無しさん
NGNGアプレットはJRE無しでも動くものなのでしょうか?
それともアプレットが動くということは、JREが入っているということですか?
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGjavaをホームページに載せようとアップロードしてるのですが、
(クラス名)$1.class
(クラス名)$2.class
などのクラスファイルがアップロードできなくて困ってます。
たぶんファイル名に「$」が入ってるからダメだと思うのですが、
何か良い方法はないでしょうか?
プログラムを書き直すしかないですか?
どうかよろしくお願いします。
0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG外部蔵酢煮汁
0013デフォルトの名無しさん
NGNGjar で固めろ。
0014デフォルトの名無しさん
NGNGjarファイルにまとめましょう。
001510
NGNG前スレ検索して、解決できました。
とてもありがとうございました。
0016デフォルトの名無しさん
NGNG少し考えたのですが、簡単なブラウザでも作ろうかと思ってるんですがいきなりは厳しいでしょうか?
GUI・ネットワークの勉強にもなるとは思うんですけど・・・
基礎本の後って皆さん何をやるんですかね? いきなりすいません
入門書の後に読む参考書でも買ってJAVAのメカニック・プログラミングでも学ぶんでしょうか?
それともJSPやJDBCとかを勉強するんでしょうか?
こんなおいらに何でもいいんでアドバイス下さい
0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNG参考として本についているCDのプログラムをコピペしてコンパイルしてみると
"Untitled1.java": クラス FirstApplet は public であり、ファイル FirstApplet.java で宣言しなければなりません。
とエラーが出てきました。
他の参考書のサンプルプログラムを記述してコンパイルしても同じようなことが起こってしまいます。
この解決方法を教えてください。
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNGFirstApplet.javaに名前を変更してコンパイル
0021デフォルトの名無しさん
NGNG1つのファイル中では、publicなクラスは1つしか宣言できません。
ファイルを2つに分けましょう。
0022デフォルトの名無しさん
NGNGpublic宣言していなければならない。
また、public宣言をしてあるクラスがソースファイル名になる。
>>18
FirstAppletクラスのpublic修飾子をはずせば動くなり!
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNGなんだろ。メモ帳じゃないよね。
0025デフォルトの名無しさん
NGNG1.String[]
2.ArrayList
3.Vector
4.HashSet
0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNGうーん。
じゃあ直感で、1!
0028デフォルトの名無しさん
NGNGぶー。
0029デフォルトの名無しさん
NGNGリモートアクセスするときはJNDI名でlookupするけど、
同じコンテナ上のアプリからのアクセスは
java:comp/env/...という名前になるよね?
なぜこのような違いがあるのか教えてもらえないだろうか。
003018
NGNG修正(ファイル名をクラス名に変更、publicを除去)してコンパイルし実行してみましたが
Exception in thread"main"java.lang.NoSuchMethodError:main
との表示がでました(コマンドプロンプトにて)
スレッドに関しての詳しい勉強はまだしていないのですが
mainからプログラムが始まるということは勉強しました。
エラーに関しての詳しいことはよく分からないのですがmainの表記がないことが問題なのでしょうか?
一応次にソースがありますので分かる方教えてください。お願いします。
003118
NGNGimport java.applet.*;
import java.awt.*;
import java.awt.event.*;
/*
<applet code="SelectColor" width=400 height=60>
</applet>
*/
class SelectColor extends Applet
implements ItemListener {
CheckboxGroup cbg;
Checkbox red, green, blue;
Canvas canvas;
public void init() {
cbg = new CheckboxGroup();
red = new Checkbox("Red", cbg, true);
red.addItemListener(this);
add(red);
green = new Checkbox("Green", cbg, false);
green.addItemListener(this);
add(green);
blue = new Checkbox("Blue", cbg, false);
blue.addItemListener(this);
add(blue);
canvas = new Canvas();
canvas.setBackground(Color.red);
canvas.setSize(30, 30);
add(canvas);
}
003218
NGNGpublic void itemStateChanged(ItemEvent ie) {
Color color;
Checkbox cb = cbg.getSelectedCheckbox();
if (cb == red)
color = Color.red;
else if (cb == green)
color = Color.green;
else
color = Color.blue;
canvas.setBackground(color);
canvas.repaint();
}
}
〜終〜
(publicは複数記述されていますがメソッドなので問題ない・・・ですよね?
すいません、よく理解できていなくてm(__)m
コンパイルは成功しましたし、参考書のものなので間違いはないと思いますが。。。)
0033デフォルトの名無しさん
NGNGそりゃ、「java SelectColor」ってしてるからでそ。
アプレットをブラウザ以外で動かしたかったら、コマンドはjavaじゃなく、appletviewer。
「appletviewer SelectColor.java」でドゾ。
0035デフォルトの名無しさん
NGNG>>1くらいは見ようね。>>1の二つ目のリンクを見たまい。
0036デフォルトの名無しさん
NGNGclass SelectColor extends Applet
0037デフォルトの名無しさん
NGNG> リモートアクセスするときはJNDI名でlookupするけど、
> 同じコンテナ上のアプリからのアクセスは
> java:comp/env/...という名前になるよね?
そうとも限らない。
リモートアクセスでもjava:comp/env/...が使えるコンテナなら
使った方がよい。結合が疎になり、アプリケーションの
ポータビリティが高まる。
0039デフォルトの名無しさん
NGNGC畑出身なんだけど、
class A {
public String hoge()
{
String s = new String("hoge");
return( s );
}
}
このクラスのメソッドで返してるString[s]ってローカル変数でしょ?
これってアリ?
JAVAのガベージコレクタって、参照カウンタが残ってる限り、値を
保証してくれるの?perlみたいに。
0040デフォルトの名無しさん
NGNGアリ。
0041デフォルトの名無しさん
NGNGjava:comp/env/ってリモートアクセスでも使えるの?
例えばコンテナ次第で
・ローカルでもリモートでもjava:comp/env/が使える
・ローカルでは使えるがリモートでは使えない
・ローカルでは使えないがリモートでは使える
というパターンがあり得る、ということ?
あと、この辺の話はJ2EEの仕様?それともEJB仕様?JNDI仕様?
この辺の話を明瞭に解説してある資料がうまく探せなくて。
004239
NGNGじゃー、明示的にnull突っ込んで参照カウンタ減らさないと破棄してくれないんだな。
ガベージコレクタの信頼性を聞くのは野暮だろうけど。
さんくす。
004439
NGNGreturn(new String("hoge"))
か?
0045デフォルトの名無しさん
NGNG> >>43
> return(new String("hoge"))
> か?
return "hoge";
だよ。String は new しない。
0046デフォルトの名無しさん
NGNGマジレスしとくと、ブラウザでも既存部品を使ってやってみるとか、ともかく既存品をいじって
組み立てるようなイメージで作られるものを、ひとつずつ挑戦することだな。
プログラムは結局作ってみなければ分からないことが多い。世に発表するとかじゃなくて、
練習がてら、思いついたことが実現できそうかやってみるとか、作っては作りかけで棄てる
のを繰り返しているうちになんか分かってくる。
そんなことして遊んでいるうちに蓄積した知識で、1本くらいソフトが作れるようになる。
まず完成させる事は忘れて、ともかく実験、実験、実験で遊びまくれ。
たとえばだ、フツーのTextFieldにメールアドレスがあったら青くしてクリックしたら
別の画面が開くようにするにはどうしたらいいか? とかそういうぱっと思いついた
単機能で遊んでみるのが楽しいと思う。
004739
NGNGjavadocに
String str = "abc";
は、次と同じです。
char data[] = {'a', 'b', 'c'};
String str = new String(data);
と、書いてあるぞ。
しんたくすしゅがーじゃないのか。
もしかして、JAVAって文字列はStringになんの?char[]じゃなくて?
0048デフォルトの名無しさん
NGNGEJB仕様でもJ2EE仕様でもなく、JNDI仕様の範疇だが
仕様では明確に規定されていない、コンテナ依存の部分だな。
・ローカルでは使えないがリモートでは使える
というパターンも理屈ではあり得るが実際にはほぼ無いと考えていいだろう。
リモートで使うにはグローバルJNDI名と関連づける「何か」が必要。
たとえばJBossだったらjboss.xmlとかjbossweb.xmlなどで関連づけを行う。
明確な資料は思い当たらないな・・・・
JBoss入門(技術評論社)とかはわかりやすいが、ここですべて解説されているかと
いうとそうでもないし。
0049デフォルトの名無しさん
NGNG文字列はStringクラスのインスタンスだよ。しかも同じ文字列は使い回される。
でもnewしたら使い回さずに新しいインスタンスを作るから非効率。
005039
NGNG[String クラスは文字列を表します。Java プログラム内の "abc" などのリテラル文字列はすべて、このクラスのインスタンスとして実行されます。 ]
書いてあった。すまんこ。
さんくすこ。
0051デフォルトの名無しさん
NGNGString str1 = "abc";
char data[] = {'a', 'b', 'c'};
String str2 = new String(data);
System.out.println(str1==str2);
System.out.println(str1.equals(str2));
「同じ」っていったときに二つの意味があるんだよ。
あと、
String str3 = new String("abc");
System.out.println(str1==str3);
System.out.println(str1.equals(str3));
の違いもこのスレだと定番。オブジェクト生成
のコストも違う。
0052デフォルトの名無しさん
NGNGリモートアクセス→lookupしてPorableRemoteObject#narrow
ローカルアクセス→lookupで直接取れる
という前提はまず正しいだろうか?
んで、グローバルで一意なJNDI名が定義してあれば、
基本的にローカルでもリモートでもJNDI名で
lookup出来るんだよね。
その上で、java:comp/envを使うと、
・java:comp/env/参照名でアクセスできるので、
JNDI名をソースにハードコーディングせずに済む。
・同一コンテナ上の異なるアプリで同じ参照名が使われた
としても、java:comp/env/参照名としているとコンテナ側
で名前衝突を回避してくれる。
といったメリットがあるから、なるべくjava:comp/env/を
使うべし、ということでいいかな。
0053デフォルトの名無しさん
NGNG> ローカルアクセス→lookupで直接取れる
> という前提はまず正しいだろうか?
まあそうなんだけど。
JNDIクライアントは、リモートアクセスするのかローカルアクセスするのかは
意識せずに透過的に扱えるのが望ましいから、
リモートだろうがローカルだろうがPorableRemoteObject#narrow()したほうが安全。
> んで、グローバルで一意なJNDI名が定義してあれば、
> 基本的にローカルでもリモートでもJNDI名で
> lookup出来るんだよね。
そう。
> その上で、
〜 中略 〜
> といったメリットがあるから、なるべくjava:comp/env/を
> 使うべし、ということでいいかな。
そう。
0054デフォルトの名無しさん
NGNGありがとう。胸のつっかえが取れたよ。
0055デフォルトの名無しさん
NGNG> のコストも違う。
C厨じゃねーんだから、百済ねーこと気にする暇あったら、アルゴリズムでも最適化しろ、ボケが!
0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNGいます。win98でmysql4.0.13に環境変数PATHを設定する場合、どうしたら良
いでしょうか。(mysqlはC:\の直下にあります)
ちなみにAutoexe.batに付け足すのはわかっているんですが・・・
0059デフォルトの名無しさん
NGNGJavaと同じように付け足せばいい
0060デフォルトの名無しさん
NGNG板違いだが特別にヒントをくれてやる。感謝しろ。
http://www.google.co.jp/search?hl=ja&q=MySQL+%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB+Windows&lr=
0061デフォルトの名無しさん
NGNG株価データを取得し、移動平均等を計算するクラスを作って、
SwingのGUIのボタンなどで株価データを扱うようにはできました。
あとは、グラフを表示するところなんですけど、
Canvasを拡張してpaint()をオーバーライドするのかなと思っていますが、
合ってますか?
拡大表示できるようにして、スクロール可能にしたいと思っています。
ScrollPaneに乗せるだけで実現可能でしょうか?
あと、表示するグラフの種類(ローソク足とか移動平均とか)をJCheckBoxで選択したいんですけど
選択したグラフの種類のデータは、
Canvasを拡張したクラスに変数を作ってGUIで操作される度にsetするのと
CanvasにGUIのクラスへの参照を持たせて、JCheckBoxのisSelected()で判断するのと
どちらが良いですか?
以上、よろしくお願いします。
0062デフォルトの名無しさん
NGNGサーブレットに対してアクセス制限をかけたいです。
IPアドレスで許可または拒否するにはどうしたらいいでしょうか?
できれば拒否または許可リストを、標準入力で読み込んでできるとナイシなのですが。
ちなみにjspファイルには何もしたくありません。
0063デフォルトの名無しさん
NGNGいったい何が変わったのでしょうか?
後、みなさんはリファレンスとして、やはり本を買って使っているのでしょうか?
もし使っているのでしたら、その本のタイトルも教えていただけるとありがたいです。
0064デフォルトの名無しさん
NGNG>Canvasを拡張してpaint()をオーバーライドするのかなと思っていますが、
>合ってますか?
それはAWT
Swingの基本なのでテンプレふくめ少し検索してみるといい
わかりやすくヒントをいうとSwingはある意味すべてのコンポーネントがCanvas
0065デフォルトの名無しさん
NGNGclass testTyping
{
public static void main(String args[])
{
int i;
while(true)
{
System.out.println("小文字の英文字を大文字の英文字にします。");
System.out.println("小文字の英文字を入力して下さい。");
try
{
i=System.in.read();
}
catch(IOException objioexception)
{
System.out.println("input erro");
return;
}
if('E'==(char)i)
{
return;
}
i=i-32; //小文字から32を引くと大文字の英文字になります。
System.out.println((char)i);
}
}
}
006665
NGNG以下の質問お願いします
http://www.geocities.jp/onearchangela/javaex/javaex0005.htm
このサイトのプログラム(>>65)を実行したのですがうまくいきません
内容は、入力する小文字を一字づつ大文字にして'E'が入力するまで続けるものです
どこがおかしいのかと言うと、例えば
小文字の英文字を大文字の英文字にします。
小文字の英文字を入力して下さい
の時に、'a'を入力すると
小文字の英文字を大文字の英文字にします。
小文字の英文字を入力して下さい。
a
A
小文字の英文字を大文字の英文字にします。
小文字の英文字を入力して下さい。
?
小文字の英文字を大文字の英文字にします。
小文字の英文字を入力して下さい。
?
小文字の英文字を大文字の英文字にします。
小文字の英文字を入力して下さい。
となります
何故か?と待ち受けプロンプトがいくつも表示されます
他の入力でも同じ感じです
ソース見てもそうなるとは思えないし、'?'が出てくる事事態が謎です
0067デフォルトの名無しさん
NGNGたくさん格納しています。
で、この中から同じ社員コードを持ったEmployeeオブジェクトを
排除してしまいたいのですが、何か言い方法はありませんでしょうか。
0068デフォルトの名無しさん
NGNG例えば http://hoge/examples/ ってやったときに
(examplesはContextで登録済み)ディレクトリのリストが
表示されるんだが、このリストを表示させないようにしたい。
どうすればいいんだろう?
Tomcat4系だと、web.xmlに
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
にすればいいらしんだけど、
Tomcat3でweb.xmlにこのエントリを買いても
うまくいかない。
教えてエロい人〜
0069デフォルトの名無しさん
NGNG1.4.2_06から乗り換える価値あり?不具合とかバグとかが心配なんだけど、あんまりそういう話聞かないし・・・
0070デフォルトの名無しさん
NGNG>>69 実務で使うんじゃなければさっさと乗り換えたら?
0071デフォルトの名無しさん
NGNG実務じゃないけど、趣味でJava系のプログラム(GUI系やWeb系)を配布してるから・・・
しょうもないバグがあったり・・・とかで時間を喰われたくないんだ。
0072デフォルトの名無しさん
NGNG不特定多数に配るんじゃどっちにしろ5.0系での動作確認は
やることになるだろ。
0073デフォルトの名無しさん
NGNG10文字目以降の文字を読み込むプログラムを作りたいのですが、うまくいきません。。
substring()を使うと思うのですが、どうすればいいのでしょうか?
現在のソースは以下のようになっています。
FileReader fr = new FileReader("test.txt");
StreamTokenizer st = new StreamTokenizer(fr);
String instring;
while(st.nextToken() == StreamTokenizer.TT_NUMBER){
i++;
a[i-1]=st.nval;
}
fr.close();
0074デフォルトの名無しさん
NGNGFile f = new File("test.txt");
FileChannel channel = new FileInputStream(f).getChannel();
ByteBuffer buffer = ByteBuffer.allocate((int)f.length());
channel.read(buffer);
channel.close();
buffer.clear();
byte[] bytes = new byte[buffer.capacity()];
buffer.get(bytes);
String s = new String(bytes);
String[] line = Pattern.compile("\\n").split(s);
for(int i=0; i<line.length; i++){
line[i] = line[i].substring(10, line[i].length());
}
こんな感じではだめ?
0075デフォルトの名無しさん
NGNGint b ; //実体が生成される
HogeClass c = new HogeClass; //実体が生成される
int d = new int ; //駄目
HogeClass[] e ; //実体が生成されない
int[] f ; //実体が生成されない
HogeClass[] g = new HogeClass[10]; //実体が生成されない
int[] h = new int[10] ; //実体が生成される
何か納得いかないのは俺だけか。
皆、ここで躓かないのか。
C馬鹿の俺に、納得いく説明を誰か頼む。
0076デフォルトの名無しさん
NGNGjava.nioかよ。
>>73
java.ioとsubstringを使ったバージョン。
List resultList = new ArrayList();
BufferedReader fr = null;
try {
fr = new BufferedReader( new FileReader("test.txt"));
for( String line = fr.readLine(); line != null; line = fr.readLine()) {
String wanted = line.substring( 9, 10);
resultList.add( wanted);
}
//内容を表示
for( Iterator iter = resultList.iterator(); iter.hasNext(); ) {
String forPrint = (String)iter.next();
System.out.println( forPrint);
}
} catch( IOException e) {
e.printStackTrace();
System.exit(1);
} finally {
if( fr != null) {
try{
fr.close();
} catch( IOException e) {}
}
}
0078デフォルトの名無しさん
NGNG70じゃないけどな
i = 'a';
i = '\r';
i = '\n';
0079デフォルトの名無しさん
NGNG1と2は大丈夫でした。
3は少し。
4は何回かミスを。。
プリミティブの変数と普通のオブジェクトは別に考えてるから気にならないのかも。
0080デフォルトの名無しさん
NGNG「実体」の意味が行によってまちまちじゃないか。だから納得いかんのじゃないか?
HogeClass a ; //変数が作成される
int b ; //変数が作成される
HogeClass c = new HogeClass; //インスタンス(実体)が生成されて、変数cにその参照が代入される。
int d = new int ; //intはclassじゃないんだからnew演算子が使えるわけないだろがボケ。
HogeClass[] e ; //配列型の変数が作成される(中身は空)
int[] f ; //配列型の変数が作成される(中身は空)
HogeClass[] g = new HogeClass[10]; //配列型の変数に、10個分のHogeClass用領域をもったArrayクラスのインスタンス参照が代入される。
int[] h = new int[10] ; //配列型の変数に、10個分のint用領域を持ったArrayクラスのインスタンス参照が代入される。
何の矛盾も無いな。
008173
NGNG>>76
jdk1.3を使っているので>>76さんのでうまくいきました。
java初心者でわかりにくい質問だったと思いますが、
早急な解答をお二方ともありがとうございました。
008266
NGNGありがとうございます
つまり、'a'以外にもprintlnの'\n'、リターンキーを押した時の'\r'の事でしょうか?
>>66のサイトにはその事について触れて無いんですけど間違い?
008381(73)
NGNGファイルによってはプログラムを実行すると
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -2
というエラーがでます。
各行の10文字目から2文字前を見てみると、半角の英語でした。
(他はスペースか数字)
これはどういったエラーなのでしょうか?
0084デフォルトの名無しさん
NGNG間違ったインデックスを参照しようとして発生する例外です。
10文字未満しかない行で10文字目以降をsubstringしようとしたりしたせいかも。
長さによって処理を変えましょう。
それと、76のsubstringはline.substring(9, line.length())にしないといけない気が。
008576
NGNGあー、そだね。よく見てなくて、10文字目をとってくるように書いてしまった。
あとOutOfBounds(範囲外)例外は10文字目がないから起きてるんでしょうね。というわけで修正してみた。
List resultList = new ArrayList();
BufferedReader fr = null;
try {
fr = new BufferedReader( new FileReader("test.txt"));
for( String line = fr.readLine(); line != null; line = fr.readLine()) {
if( line.length() >= 10) {
String wanted = line.substring( 9, line.length());
resultList.add( wanted);
} else { resultList.add( ""); }
}
//内容を表示
for( Iterator iter = resultList.iterator(); iter.hasNext(); ) {
String forPrint = (String)iter.next();
System.out.println( forPrint);
}
} catch( IOException e) {
e.printStackTrace();
System.exit(1);
} finally {
if( fr != null) {
try{
fr.close();
} catch( IOException e) {}
}
}
0086デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNGdouble d = Double.parseDouble(string);
0089デフォルトの名無しさん
NGNGそもそもJ2EEとはなんなのでしょうか?
0090デフォルトの名無しさん
NGNG今のあなたにはたぶんいらない。
J2EEはJSP/Servlet/EJBといったWebアプリケーション用のエディションです。
009275
NGNGんなこたーわかってんだよ!
HogeClass a ; //(参照を格納できる)変数が作成される
int b ; //(参照ってなんですか)変数が作成される
Cばっかやってると、この二つが心情的に納得いかねーんだよ!
Stringで混乱すんだよ!
String[] s = new String[10];
で、「よーしパパ文字列10個作っちゃったぞ〜」とか勘違いしがちなんだよ!
s[0]とか参照してコンパイラに「何いってんの?」とか言われると
逆切れしたくなるんだよ!
0093デフォルトの名無しさん
NGNGおれも最初やったなぁ
Object[] objs = new Object[10];
objs[0].toString();
とかやるとぬるぽ
Javaで
HogeClass a;
ってのはC++だと
HogeClass& a;
なんだよ。だから
a = new HogeClass();
って実体を作ってやんなきゃならん
0094デフォルトの名無しさん
NGNGあー、じゃあ
System.out.println((char)i);
これ、
System.out.println(i);
System.out.println(",");
にして、アスキーコード表とにらめっこしな。
0096デフォルトの名無しさん
NGNGJava自体初心者という事で別スレ行けといわれたのでこっちに来て見ました。
というか質問の内容がEclipseってわけじゃないようなんですが・・・
Eclipseでdoclet(javadocのカスタマイズ)を書いているのですが
Eclipseでどうやって実行させればいいんでしょうか?
ファイルのエクスポートからJavadocを選んだのですがどこに何をいれたら
いいのかわかりません・・・
Javadocコマンドにはtools.jarを指定、ドクレット名に自作ドクレットの名前、
ドクレットクラスパスはそのソースのパス、を入れて終了おしたのですが
うまくいきません・・・
エラーメッセージはこんな感じです。
http://www.uploda.org/file/uporg31221.jpg
あとjavadocのソースコードは公開されていると聞いたのですが
どこを探してもみつけれません・・・
どこにあるのでしょうか?
Sunのサイト・・・?
0097デフォルトの名無しさん
NGNGGUIを作れるようになるのはマダー?
電卓とか作りたいなぁ・・・
0098デフォルトの名無しさん
NGNGよかないか。
・Object objは、HogeRec *hogeRecみたいなもん。
・Object[] objs は、HogeRec *hogeRecsみたいなもん。つまり上と変わらん。
・obj = new Object() は hogeRec = malloc( sizeof( HogeRec)) みたいなもん。
・objs = new Object[5]は、hogeRecs = malloc( sizeof( HogeRec) * 5)みたいなもん。
だからString[] s = new String[10] は stringArray = malloc( sizeof( String) * 10) のようなものに過ぎん。
そりゃCでもstringArray[0]とか参照したら、「なにいってんの?」すら言ってくれずにバスエラーだろ。
「文字列10個つくっちゃったぞー」ではなくて、「文字列10個分のメモリ確保したぞー」なわけだから。
おれは上記のような理解でいったので、そこでは躓かなかったなあ。
誤解を恐れずに言えば、JavaにはCのような意味での「配列」という型はないんだな。
あるのは「Arrayクラス」だけ。でStringが言語仕様に組み込まれているのと同じように、Arrayも
言語仕様に組み込まれている.....というよりも特別扱いされてて、なんとなくCっぽく使えるようになって
るけど、基本的にはやっぱりオブジェクトであることに変わりはない。
0100デフォルトの名無しさん
NGNGGUIなんてそんなに楽しくないよ。
絵を描くなら別だけど。
言語とかつくるほうが楽しそう。
0101デフォルトの名無しさん
NGNGっつーか、C にマトモな配列が無いのでは。引数で渡すとポインタに成り下がったりとか。
あと、Arrayクラスってーのは文脈を見るに配列型だね。
Array(java.lang.reflect.Array)はリフレクションで配列にアクセスするためのユーティリティクラス。
0102デフォルトの名無しさん
NGNG> Javadocコマンドにはtools.jarを指定
そこは使用する javadoc.exe をフルパスで指定する場所。
0103デフォルトの名無しさん
NGNG010496
NGNGjavadoc.exeてのは標準javadocですよね?
それはどこにあるんでしょう・・・?
0105デフォルトの名無しさん
NGNGString string = textField.getText();
あとは>>88
つーかAPI嫁
0106デフォルトの名無しさん
NGNGJDKをインストールしたディレクトリ\bin\javadoc.exe
010766
NGNGやってみました、納得です
System.out.println(i);
に変更して>>66と同様'a'を入力すると結果が三つ
65,-19,-22
i=i-32; を考慮するとアスキーコードで97,10,13
にらめっこした結果'a'とCRとNL
System.out.println(","); の結果は三つ','でした
','とリターンキーでwhile分が3回ループしている事がわかりました
どうもです
010896
NGNGおお、ありがとうございます、とりあえず実行はできました!
ところがまたエラーが・・・
javadoc: doclet クラス DocSearch が見つかりません。
エラー 1 個
というやつなんですが。
読み込むソースはJavadocが生成される型の選択 てとこで
指定するんですよね?
ちなみにDocSearchてのが自分で作った奴です。
クラスパスはEclipseで作ったのがここにあるのでこんな感じで
指定してるのですが・・・
C:\Program Files\eclipse\workspace\DocSearch\src
0109デフォルトの名無しさん
NGNGそこみてごらん。classファイルないから。
0110デフォルトの名無しさん
NGNG勘でレス。
>C:\Program Files\eclipse\workspace\DocSearch\src
最後のsrcはいらないと思う。
これはEclipseの話です。
あるいはカレントディレクトリにクラスパスが通ってない??
クラスパスに.(ピリオド)があるかどうか確認してください。
これはJava一般的な話。問題の切り分けが難しいですね。
0112デフォルトの名無しさん
NGNGat java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:983)
at java.lang.Double.parseDouble(Double.java:220)
at test3.init(test3.java:19)
at sun.applet.AppletPanel.run(AppletPanel.java:353)
at java.lang.Thread.run(Thread.java:534)
上のエラーは何ですか?
0113111
NGNGわかるかた、教えてもらえたらありがたいです・・・
0114デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNGそこからリンクされてる。
0116デフォルトの名無しさん
NGNG|
∩___∩ | ぷらぷら
| ノ _, ,_ ヽ (( |
/ ● ● | (=)>>112
| ( _●_) ミ _ (⌒) J ))
彡、 |∪| ノ
⊂⌒ヽ / ヽノ ヽ /⌒つ
\ ヽ / ヽ /
\_,,ノ |、_ノ
0117デフォルトの名無しさん
NGNG「Stringオブジェクトに空文字が入ってるのでdoubleに変換できない」と言っているのです。
http://pc5.2ch.net/test/read.cgi/tech/1100565043/485n
>>86
>>103
http://pc5.2ch.net/test/read.cgi/tech/1100565043/505n
着実に進んでるみたいですね(プ
0118111
NGNGそれって C:\j2sdk1.4.1_07 にある src.zip というやつでしょうか?
その中には見当たらないのですが・・・
>>115
http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/javadoc/standard-doclet.html
ここの一番したのやつのことですよね?
Page Not Found で見つからないのですが・・・
周辺をうろうろしてみたけど見つからずダウン・・・
0119デフォルトの名無しさん
NGNG0120111
NGNGttp://www.sun.com/software/communitysource/j2se/java2/download.html
ここがそれっぽいなとJava 2 SDK 1.4.2のDownload押してみたのですが、
登録しないとだめだ見たいな事がでるのですが、登録しないとソースコードは
見れないのでしょうか?
何度もすいません・・・
0121デフォルトの名無しさん
NGNG【SDKから乗換】EclipseでJAVAの勉強【初心者大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1105811745/
012292
NGNG>・objs = new Object[5]は、hogeRecs = malloc( sizeof( HogeRec) * 5)みたいなもん。
あら、そうなのか。
hogeRecs = malloc( sizeof( hogeRec) * 5)
だと思ってたよ。
つまり、Cで言うポインタ配列。
ぶっちゃけ
HogeRec *hogeRec[5];
これと等価かと思ってたんだが、めんどくせぇな、おい!
0123デフォルトの名無しさん
NGNGStringで混乱するのは単に、Cが本来は「文字の配列」でしかないchar[]を
「文字列」として扱っているところに問題があるかと。
JavaやC#では「文字列」は本当に「文字列」として扱う(C++はやや微妙)。
あと実体が生成されたりされなかったりと言ってるけど
単に初期値がnullか0かの違いに過ぎないわけで。その意味で
>String[] s = new String[10];
>で、「よーしパパ文字列10個作っちゃったぞ〜」とか勘違いしがちなんだよ!
ってのは別に勘違いじゃないじゃん。
初期値のnullが入ってるけどStringは10個あるんだから。
(もちろんint[] i = new int[10];ならintの初期値の0が入ってるだけ)。
0124デフォルトの名無しさん
NGNG98が間違い。
Object[] objs = new Object[5]はHogeRec **hogeRecsみたいなもん。
その意味でポインタ配列みたいなもんというのはあってるがHogeRec *hogeRec[5]ではない。
だからhogeRecs = malloc(sizeof(HogeRec *) * 5)となる。
もちろんhogeRecs[0]を使う前にはhogeRecs = malloc(sizeof(HogeRec))が必要なのはいうまでもない。
0126デフォルトの名無しさん
NGNGポインタの配列へのポインタね。
0127デフォルトの名無しさん
NGNGオブジェクトを作成、参照を配列の要素に格納
objs[0] = new Object();
objs[1] = new Object();
objs[2] = new Object();
0128デフォルトの名無しさん
NGNGpublic class MyObjectInputStream extends ObjectInputStream {
public MyObjectInputStream(InputStream in)throws IOException{
super(in);
//その他の処理が続く
}
//続く
}
と、スーパークラスのコンストラクタにInputStreamを渡しています。(使用時はソケットから得たInputStream)
大抵の場合はこれでうまくいくのですが、たまに、super(in);のところでEOFExceptionが出ます。
データの読み込みのところでEOFExceptionが出るのであればまだわかるのですが、
ここででるのはさっぱり意味がわかりません。
で、今手元にスタックトレースの結果がないので(諸事情で)、わかりにくいかもしれませんが
スーパークラスのコンストラクタの処理の中のreadFullyメソッドで最終的にはEOFExceptionが出てしまっている
ようです。
このような症状を経験された方いらっしゃらないでしょうか?
0129デフォルトの名無しさん
NGNGどうでしょうか?
0130デフォルトの名無しさん
NGNG>RandomAccessFile インスタンスの getChannel メソッドで取得したチャネルは、
>インスタンスがモード「r」で作成された場合は読み込み可能、
>モード「r」で作成された場合は読み込みと書き込みが可能です。
ってかいてあるけど
2番目の「ら」は「w」だよね
0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNGString[] hogeA = new String[1];
String[] hogeX = new String[1];
hogeA[0] = "ABC";
hogeX[0] = hogeA[0];
hogeA[0] += "DEF";
// hogeA[0] = "ABCDEF" , hogeX[0] = "ABCDEF"
String hoge1 = "ABC";
String hoge2 = hoge1;
hoge1 += "DEF";
// hoge1 = "ABCDEF" , hoge2 = "ABC"
0133デフォルトの名無しさん
NGNGファイルの内容を変換して出力するというプログラムを作ろうと思うのですが
その命令というのは!RIGHT で右寄せ !CENTERで中央寄せ !LEFTで左寄せという風にしてます。
readLineメソッドで読み込んでif分で比べていき、
その後出力するという方法なのですがだと思うのですが。
出力は一行ずつすればよいのかまとめて出力するものなのかよくわかりません。
どなたか力を貸してもらえないでしょうか?
0134デフォルトの名無しさん
NGNGどうでしょうかと言われても。作りたければお好きなように。
>132
なぜそこまで書いて、mainメソッドとクラス宣言書いてコンパイルする手間を惜しむ?
(訳: 自分でやってみれ)
>133
どっちでもいいと思うが普通はバッファ処理はBufferedWriterに任せて
プログラムからは1行ずつたらたら書き出すもんじゃないかと思われ。
0135デフォルトの名無しさん
NGNG実装されるべきもの何ですか?
0136デフォルトの名無しさん
NGNGtest2.java:53: 互換性のない型
検出値 : java.lang.String
期待値 : char[]
s=str1; /* そのまま入れるとコンパイルエラーになります。 */
^
エラー 1 個
お願いします。
0137初心者 ◆Java/isQ.c
NGNGjava.lang.String クラスの getChars メソッドを使ってみてはどうでしょう?
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/String.html#getChars(int, int, char[], int)
0138デフォルトの名無しさん
NGNGs = str1.toCharArray();
0141デフォルトの名無しさん
NGNGでエラーになるんだけど
このパッケージって何かのjarファイルをダウンロードして
CLASSPATH通せばいいんですか?
環境はTomcat5 です
0143デフォルトの名無しさん
NGNG整数に変換するため、
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
char ch1 = str.charAt(0);
char ch2 = str.charAt(1);
int res1 = Integer.parseInt(ch1);
int res2 = Integer.parseInt(ch2);
と売ったのですが
int res1 = Integer.parseInt(ch1);
int res2 = Integer.parseInt(ch2);
のところでえらーがでます。原因はなんでしょうか?
0144デフォルトの名無しさん
NGNG0145133
NGNG作っていたところに新たに疑問点が生じましたのでご教授ください。
133でいっていた命令で
!LEFT これ以降の行を左寄せで出力
!begin これ以降の行を出力
!end これ以降の行を出力しない
命令がない場合は!LEFTと同等の効果が現れるようにしたいと思ってます。
!LEFT
プログラム作成中
とすると
プログラム作成中 と表示されるとしたいのですが。
なまじ命令がないところは!LEFTと同じようにしないといけないためちょっと混乱しています。
BufferedReaderで1行ずつ読み込んでいこうとは思ったもののちょっと壁にぶち当たっています。
0146デフォルトの名無しさん
NGNGCOMオブジェクトを作成する方法は何かありますか?
0147デフォルトの名無しさん
NGNGchar = -128〜+127
byte = 0〜255
0148デフォルトの名無しさん
NGNGどっち寄せかという情報と、出力するかどうかというフラグを変数で持て。
そのものを書くと意味ないからヒントだけにしておくが。
aが0なら左、1なら中央、2なら右
pが0なら出力しない、1なら出力する
0149デフォルトの名無しさん
NGNGそんなメソッドなかった気が。
0150デフォルトの名無しさん
NGNGJComとかどうよ。漏れ自身は試したことないけど。
ttp://download.seesaa.jp/contents/win/data/appdata/09877/
0151デフォルトの名無しさん
NGNG俺が今現在進行中で思い込んでるんだが、俺を救ってくれ
0152デフォルトの名無しさん
NGNGおお、正にぴったりな感じですね。どうもです。
ちょっと試してみます。
0153デフォルトの名無しさん
NGNGchar 0u0000〜0uFFFF (int換算で0x0000〜0xFFFF)
byte -128〜+127
0154デフォルトの名無しさん
NGNGそうそう、charが2バイトだって知ったときはめちゃめちゃショックだった。
char=1文字=UNICODEだから2バイトなんだよね。
0155デフォルトの名無しさん
NGNGchar 0〜65535
byte -128〜127
0156デフォルトの名無しさん
NGNGintが速くて、十分でかいからshortとかlongとか
ほとんど使ったことないなあ。。。
0157デフォルトの名無しさん
NGNGメモリに余裕があるなら小さな数値しか扱わなくてもbyteよりintの方が速いとか。
0158153
NGNGUNICODEなのか!
だから、OBEXのNameHeaderをchar[]に受け取れるのか。
今まで、Hoge((char)byteBuff)とか書いてた俺は馬鹿ですか。
そして、byteはunsignedじゃないのか。
なんか、自分が小さく見えてきたよ。
0159デフォルトの名無しさん
NGNG8ビット時代からやってる人にとっては今までの常識が通用しないこともある。
0161デフォルトの名無しさん
05/01/17 00:32:47符号付整数型
整数のリテラルは内部的には int 型に解釈されます。
byte, short 型変数へ代入すると、自動的に型変換されて代入できます。
byte, short への代入は、代入先の変数の型に合わせて自動的に型変換されます。
無論、データ型の表現できる数値の範囲を超えたリテラルは代入できません。
だそうだ。
そもそも基本データ型に符号無しが存在しないから、特に事情がない限りは
整数はintかlongで扱えということなんじゃなかろうか?
0162デフォルトの名無しさん
05/01/17 00:44:26http://www.atmarkit.co.jp/fjava/rensai2/jspservlet03/jspsevlet03_1.html
このサイト参考にしてJDK、Tomcat、Apache(version2.*)をインストールしました(OSはXP)
あとはApacheとTomcatの連携をとるためにコンテナmod_jk2が必要になるそうですが
ジャカルタHPの何処から選んでいいかよく解りません
http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk2/release/v2.0.1/bin/win32/
ここのTomcat Web Server Connectors (including mod_jk, mod_jk2, and mod_webapp (the deprecated WARP connector))
からJK 2 Binary Releases →Win32→...tors-jk2.0.4-win32-IIS.zip(一番上)で合ってますか?
よろしくお願いします
0163デフォルトの名無しさん
05/01/17 00:46:11どちらが好きですか?
0164デフォルトの名無しさん
05/01/17 00:51:07アセンブラなら大文字、他の言語なら小文字。
個人的には大文字のほうが好きだけど、大きいプロジェクトで
多人数でやるときに困るから小文字で書くクセをつけた。
0165デフォルトの名無しさん
05/01/17 00:52:24JSPの勉強をするのにApacheはいらない。Tomcat単体で勉強すれ。
書き込みのように、JSPではないよけいな箇所でつまづくし
問題が起こったときに原因の切り分けも難しいだろう。
0166デフォルトの名無しさん
05/01/17 00:53:27じゃ、通信バッファをint配列で扱うのか。
RAM無駄にしてる気がしてやだなぁ。
特にiαppliとか作ってると。
JAVAじゃ無理な事なんだろうが、ROM書き換える時とか、面倒そうだな。
0167デフォルトの名無しさん
05/01/17 00:56:140168デフォルトの名無しさん
05/01/17 00:57:23iアプリだと速度とメモリの兼ね合いじゃない?
端末によってコアも違うから、必ずしもintが最速とは限らないし。
0169デフォルトの名無しさん
05/01/17 00:57:27そうなんですか、>>162のサイトを参考にしてたんですが・・
確かに処理はTomcatとApacheで区別するってありますね
それでも、コネクタをダウンロード・解凍してみたのですがなんか違うっぽい・・・
0170デフォルトの名無しさん
05/01/17 01:03:22いや、162で書いてるのってIIS(マイクロソフト製Webサーバ)とのコネクタだし。
ついでにJK2コネクタはもうメンテされないそうだから忘れてよし。
0171166
05/01/17 01:11:42byte b = (byte)(0xff & in.read());
こういうの、だいじょぶ?
>>168
だな。
ただ、俺の携帯SH系で16ビット最速のはずだし、やっぱintか。
0172デフォルトの名無しさん
05/01/17 01:13:05byte a = 0xff; // エラー
byte a = (byte)255; // a = -1
byte a = (byte)0xff; // a = -1
byte a = (byte)0xffff; // a = -1
byte a = (byte)0xff80; // a = -128
byte a = (byte)0x80ff; // a = -1
(byte)NでキャストすることでN & 0xffされて、その結果を符号付byteとして格納されるっぽい。
0174デフォルトの名無しさん
05/01/17 01:18:40それをソートしようと思ったらJavaだとどうするのが最も効率がいいんだろう?
0175デフォルトの名無しさん
05/01/17 01:18:57わかりました、忘れます。有難うございました
技術が枯れるのははやいですね
0177デフォルトの名無しさん
05/01/17 01:22:13|byte b = (byte)(0xff & in.read());
|こういうの、だいじょぶ?
言いたいことはわかるが、in.read()が-1を返したときに
判別できなくなるから、だいじょばない。
0179デフォルトの名無しさん
05/01/17 01:28:040180デフォルトの名無しさん
05/01/17 01:29:100181デフォルトの名無しさん
05/01/17 02:10:29超ガンガレw
0182デフォルトの名無しさん
05/01/17 02:30:03そうするには
C:\Program Files\Java\jdk1.5.0\bin\java.exeに関連づけすれば良いのでしょうか
0183デフォルトの名無しさん
05/01/17 03:09:52見て思ったが、JavaBeansでは無理?
Java(Beans)をActiveXにできるんだから、
「JavaでActiveXを叩く何か」も用意されてて良いような
気がするんだが・・・ぐぐっても見つからなかったorz
あまり需要ないのかな。
0184デフォルトの名無しさん
05/01/17 03:44:51スレッド式掲示板を作るというサンプルがあって、新規投稿の部分を作っています。
************
new.jsp
************
bean_bbs objBbs = new bean_bbs();
//sbmがnullのとき、すなわち初めてこのページが開かれたとき
if(request.getAttribute("sbm") == null){
<form method="post" action="new.jsp" name="fm">
件名<input type="text" name="title" size="70" maxlength="25">
名前<input type="text" name="nam" size="70" maxlength="10">
パスワード<input type="password" name="passwd" size="15" maxlength="15"></td>
<textarea name="article" cols="70" rows="15"></textarea>
<input type="submit" name="sbm" value="投稿">
</form>
}else{
//bbs_beanのsetArticleメソッドでは、引数で渡されたもの
(掲示板の投稿内容)をbbsテーブルにINSERTしています。
objBbs.setArticle((String)request.getAttribute("title"),
(String)request.getAttribute("nam"),
(String)request.getAttribute("article"),
(String)request.getAttribute("passwd"),"0","0");
}
0185デフォルトの名無しさん
05/01/17 03:56:08JREかJDKをちゃんとWindowsにインストールするときに
それはできているはず。
それ+マニフェストファイルの設定がいる。
http://www.javadeveloper.jp/members/general/Article.category_topic_article_tips_issue_008.dhtml
0186デフォルトの名無しさん
05/01/17 04:07:44SWT
0187デフォルトの名無しさん
05/01/17 06:24:24そうなんですか
参考書を読みながらやってたのですが
C:\Program Files\Java\jdk1.5.0\demo\jfc\Notepadにある
jreをダブルクリックして起動してみましょうと書かれてたのですが、動かなかったのでおかしいなぁと
再インストールしたら出来ました。ありがとうございます
0188デフォルトの名無しさん
05/01/17 08:09:48あと
123
456
789
のようなデータを
num[0][0]=1,num[0][1]=2,num[0][2]=3
num[1][0]=4,num[1][1]=5,num[1][2]=6
num[2][0]=7,num[2][1]=8,num[2][2]=9
の2次元配列に格納するにはどのようにしたらいいんでしょうか?
0189デフォルトの名無しさん
05/01/17 08:48:14int[][] num=new int[3][3];
num[0][0]=1,num[0][1]=2,num[0][2]=3
num[1][0]=4,num[1][1]=5,num[1][2]=6
num[2][0]=7,num[2][1]=8,num[2][2]=9
か
int[][] num={{1,2,3},{4,5,6},{7,8,9}};
こんな感じ
0190デフォルトの名無しさん
05/01/17 09:09:19サーバ:UNIX
上記環境でクライアントPCのローカルディスク上のファイルをWEBブラウザ(JSPページ)を通してサーバ側にアップロードするものを作りたいのですが、
サーバ側のプログラムでC:\〜と言うパスを認識させることって可能なのでしょうか?
0191デフォルトの名無しさん
05/01/17 09:13:02サーバ側でクライアントのパスを認識する必要はない
0192デフォルトの名無しさん
05/01/17 09:35:270193190
05/01/17 10:19:29ありがとうございます。
クライアント側からデータを送信して、
それをサーバ側が受け取り、所定の場所に吐き出すようにすれば良いのでしょうか?
0194デフォルトの名無しさん
05/01/17 10:27:46その通り。
Jakarta-commonsのFileUploadでも使うがいい
0195デフォルトの名無しさん
05/01/17 10:36:50staticのクラスの中からstaticでない別のクラスの変数を参照したり、
変数に値を代入する方法はありますでしょうか?
0196デフォルトの名無しさん
05/01/17 10:40:37クラスにはアクセサメソッド実装しておけ。
0198195
05/01/17 10:48:57ありがとうございます。
0199デフォルトの名無しさん
05/01/17 11:57:33ぶっちゃけ、Java2 SE 5.0(1.5) ってどうよ?
使用用途は個人でプログラミングする程度なんだけど
どこか恐くていまいち踏み切れない…。
いまのところ、バグとか不具合とか大丈夫?
導入に値しますか? それとも 1.4.2 使ってたほうがセーフ?
0200デフォルトの名無しさん
05/01/17 12:01:330201デフォルトの名無しさん
05/01/17 12:14:55そんなレスいらね 消えろ
0202デフォルトの名無しさん
05/01/17 12:17:250203デフォルトの名無しさん
05/01/17 13:28:10おまえのその一言は
親切なおせっかいを
皆引かせるのに十分な一撃だ
0204デフォルトの名無しさん
05/01/17 13:30:180205デフォルトの名無しさん
05/01/17 13:31:400206デフォルトの名無しさん
05/01/17 14:41:57byte[] = { 0xf0, 0x01 } ;
これ書くと
「0xf0はintなんだけど?解ってる?あなたお馬鹿ちゃん?」
とか言われて激しくむかつくんだが、俺が悪いのか。
通信データだからbyteじゃないと駄目なんだが。
おまいら
byte[] = { (byte)0xf0, 0x01 } ;
とか書いてるの?
0207デフォルトの名無しさん
05/01/17 14:56:22Javaのbyteは符号付1バイト整数、つまり範囲は-128 〜 127、
16進表記でいうと-0x80 〜 0x7fまで。
0xf0 = 240は大きすぎます。
0208デフォルトの名無しさん
05/01/17 15:02:09んじゃ、通信バッファにはint配列使ってんの?
0209デフォルトの名無しさん
05/01/17 15:06:01と書けばいいのかな・・・スマン自信がなくなってきた。
-0x10 = 1111 0000
0x01 = 0000 0001
だよね?
0210デフォルトの名無しさん
05/01/17 15:44:28気持ち悪いな。
いや、まあ、それしか手が無いなら好みを言ってる余地は無いんだが。
0211206
05/01/17 16:03:12(byte)0x**
にしたよ!もりもり!
0212デフォルトの名無しさん
05/01/17 17:45:5510レス前くらい嫁。>>166-172
0213デフォルトの名無しさん
05/01/17 18:25:56例) 12345
7d6r5
99y66
を num[0][0]=1,num[0][1]=2,num[0][2]=3,num[0][3]=4,num[0][4]=5
num[1][0]=7,num[1][1]=d,num[1][2]=6,num[1][3]=r,num[1][4]=5
num[2][0]=9,num[2][1]=9,num[2][2]=y,num[2][3]=6,num[2][4]=6
見たいな感じです。
0214デフォルトの名無しさん
05/01/17 18:33:13つ[hogechar = hogestr.charAt(int index)]
0215デフォルトの名無しさん
05/01/17 18:37:47間違ってたらごめん、動作確認してないから
String lines[] = textArea.getText().split("\n");
char num[][] = new char[lines.length][256];
for(int i = 0; i < lines.length; i++)
num[i] = lines[i].toCharArray();
0216デフォルトの名無しさん
05/01/17 18:41:41ざいます
0217デフォルトの名無しさん
05/01/17 18:42:30した
0218213
05/01/17 18:50:28できました!ありがとうございました><
0219デフォルトの名無しさん
05/01/17 20:16:54もしかして書籍全く買わないでネットだけで習得
できちゃうんじゃない?って思う。
今まで計6冊のJava本を買い勉強してきた身としては
悲しい事実なんだけども。
ぶっちゃけ本買わないでネットの情報のみで
Javaを習得しちゃった人いる?
またはネットで習得可能だ!って思う人はなぜ
そう思うのか詳細キボヌ
0220デフォルトの名無しさん
05/01/17 20:33:56点線を描いたりするにはどうすれば良いですか?
0221初心者 ◆Java/isQ.c
05/01/17 20:42:59線の太さを変える件に関しては次のWebページの末尾が参考になるかもしれません。
ttp://www.sun.ac.jp/Siebold/hemmi/JAVA_Manual_Graphics.htm
点線(破線)を描く件に関しては次のMLの投稿から情報を辿れるかもしれません。
ttp://java-house.jp/ml/archive/j-h-b/035277.html
0222220
05/01/17 22:42:48ありがとうございます
試してみます
0223デフォルトの名無しさん
05/01/17 23:02:11int 型は、32ビットで、
-2147483647から2147483647です。
補数も使って負の数も出力
以下こんな感じなのですが、
class Hosuu{
public static void main(String args[]){
int i = 0;
int ii = 0;
for(int j = 0;j<31;j++){
i = i+(int)Math.pow(2,j);
ii = ii + (~((int)Math.pow(2,j))) + 1;
System.out.println("負"+ii);
System.out.println("正"+i);
}}}
これだと32ビット使ってないような気がするのですが。
0224デフォルトの名無しさん
05/01/17 23:36:54ii = ii + (~((int)Math.pow(2,j))) + 1; ←
0225デフォルトの名無しさん
05/01/17 23:50:33最後、1足してますから、ですね。
負の数をだすのに、1bit 必要ということですね。
失礼しました。
0226デフォルトの名無しさん
05/01/18 00:11:20メソッドの引数が、 | で区切られているソースを見たことがあるのですが、
これはどういう意味なのですか?
public void method( A | B | C | D ) {
}
Javaの勉強を始めた頃に見たので、そのときは単純に4つの引数を渡してるだけなんだと
思って見てましたが、今考えてみると、ここで渡されるのはtrueかfalseになるように思います。
でも、そのとき見たメソッドは、A,B,C,Dのどれとどれが指定されているかによって違う動きを
するものだったと思うんです。
つまり、
A
A | B
A | B | C
A | B | C | D
の4パターンの指定は、全て違う結果になったと思います。
trueかfalseなら、2パターンにしかなりませんよね?
でも確かに違う指定だったと思うんです。。。うろ覚えですみません。
0227初心者 ◆Java/isQ.c
05/01/18 00:28:13次のWebページが参考になるかもしれません。
ttp://www.hellohiro.com/basic/bit.htm
0228デフォルトの名無しさん
05/01/18 01:55:54にプログラムを作ったんですが、num[count]の部分が1回目は問題なく動作するんですが、
2回目(連続して実行)すると1回目のnum[count]の状態が残ってしまいます。
どうにかしてnum[count]の状態を初期化できないでしょうか?
0229デフォルトの名無しさん
05/01/18 02:49:39メインクラスに置かないでそれ専用のクラスを別に作って、必要時に作って
要らなくなったら破棄する方法はどう?これならサイズも動的に変えれる希ガス。
思いつきで書いてるから正しいかどうかもわからんが、これで想像してくれ。
hoge num = new hoge(XX*YY); // 使い始め
num.sethoge(count, "hoge");
str = num.gethoge(count);
num = null; // 不要になったら
public class hoge {
static num[];
public void hoge(int maxcount) {
num = new String[maxcount];
}
public void sethoge(int count, String str) {
num[count] = str;
}
public String gethoge(int count) {
return num[count];
}
}
0230デフォルトの名無しさん
05/01/18 02:50:37public class hoge {
static num[];
じゃなくて
public class hoge {
private String num[];
0231デフォルトの名無しさん
05/01/18 03:01:08ここまで凄いソースを書けるとは尊敬するよ。
0232デフォルトの名無しさん
05/01/18 03:50:330233デフォルトの名無しさん
05/01/18 06:10:58便乗質問ですが、Graphics2D を使わないで、つまり ver.1.1 で同じことをやる
方法はないんでしょうか。
0235226
05/01/18 07:32:30理解しました! ありがとうございます!
0236デフォルトの名無しさん
05/01/18 09:48:52出力した行を最大で30文字に揃えなければならないのです。一行が30文字を超える場合は31文字以降を次の行に折り返すとなっています。
考えた方法としてはleadLine()で読み込んだ行をlength()で文字数をカウントして
if分で30文字を超えた場合は31文字以降を次の行に折り返す処理を行い、
そうでない場合にはそのまま処理を続けるという風にしたいのですが折り返す処理というものがいまいち理解できません。
新たに変数を作って一文字ずつ出力していき変数が30を超えたらprintlnで改行して
次の行に出力していけばいいのでしょうか?
FileReader fr; FileWriter fw;
try{
BufferedReader in = new BufferedReader(fr);
PrintWriter out = new PrintWriter(fw);
String s;
int length = 0;
while((s = in.readLine()) != null) {
length = s.length();
if(length > 35){
}else{
}
0237206
05/01/18 10:42:11超遅レスだが
それは受信のときだろ?
通信アプリでは固定送信データが必要になるじゃねーか。
それを
int txData[] = {0x10, 0x03, 0xff・・・・};
とintで書くのはまあ、別に構わん。
だが、OutputStreamはbyte[]しか受け取ってないのにどうするんだって話だ。
int渡しでループさせるのか。
0238デフォルトの名無しさん
05/01/18 11:02:35まあ落ち着け。おまいの当初の疑問は、>>160-161と>>172読めば解決しないか?
キャスト無しにこだわるなら>>209だが。
通信だの送受信だのは関係ないよ。
この場合、java.ioパッケージの問題ではなくJava言語仕様の問題だから。
0239デフォルトの名無しさん
05/01/18 12:33:091文字ずつやらんでも、readLineで読んだ1行の中には改行が含まれないから
30文字ずつやればいいじゃん。
例えば、50文字読んだら、30、20。
0240デフォルトの名無しさん
05/01/18 12:37:28Process P;
P = rt.exec(s);
P.watiFor();
で実行中のプロセスをP.destroy()で任意のときに強制終了させるにはどうすればよいのでしょうか?
0241デフォルトの名無しさん
05/01/18 12:41:30もしくは実現する方法があれば教えてください。
0242デフォルトの名無しさん
05/01/18 12:50:07new String(bytes).toCharArray()とか。
0243236
05/01/18 12:56:28そうですね。readLine()で呼んだ行の中にどうやって\nをいれようか悩んでいたんですがどうしてもわからなかったんです。
30文字ずつやるというのは
read()で1文字ずつ読み込み 変数などで文字数が30以上になるかなどを調整する
ということでいいのでしょうか?
0245デフォルトの名無しさん
05/01/18 13:25:12コンパイルしたいのですが、コマンドプロンプトでjavac hello.java
としたのですが
'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
とでてコンパイルできません。どうすればよいのでしょうか・
0246デフォルトの名無しさん
05/01/18 13:26:27パスが通ってません。
>>1
をよく読め。
0247デフォルトの名無しさん
05/01/18 13:38:54おまいさん SDK インストールしたんだろ?
そのなかの bin っていうディレクトリーにパスを通せ。
例)
C:\Program Files\j2sdk1.4.2_04\bin
「パスの通し方が〜」「パスってなんですか?」なんていう質問したらやさしく抱きしめるぞ!
0248デフォルトの名無しさん
05/01/18 13:41:38説明不足でした。
C# では次のコードを実行すると "a]?RvE!a?iisPoa" が表示されます。
public class MyClass {
public static void Main() {
byte[] bs = {
226, 93, 159, 82, 31, 118, 200, 33,
97, 190, 237, 238, 115, 80, 243, 229
};
char[] c = System.Text.Encoding.GetEncoding(1252).GetChars(bs);
string str = "";
for (int i = 0; i < c.Length; i++) {
str += c[i];
}
System.Console.WriteLine(str);
}
}
Java で次のようにしてみると "[B@1be2d65" が表示されます。
public class MyClass {
public static void main(String[] args) {
char[] cs = {
226, 93, 159, 82, 31, 118, 200, 33,
97, 190, 237, 238, 115, 80, 243, 229
};
System.out.println(new String(cs));
}
}
0249248
05/01/18 13:42:11226, 93, 159, 82, 31, 118, 200, 33, 97, 190, 237, 238, 115, 80, 243, 229
が格納されている配列から、
C# の実行結果と同じ文字列を取得したいのですが、
実現する方法があれば教えてください。
0250デフォルトの名無しさん
05/01/18 13:43:13それともflashに乗り換えたほうがいいですか?できればjavaの方がいいんだけど普及してない!?
0251デフォルトの名無しさん
05/01/18 13:50:02new String(new byte[]{ (byte)226, (byte)93, (byte)159, (byte)82, (byte)31, (byte)118, (byte)200, (byte)33, (byte)97, (byte)190, (byte)237, (byte)238, (byte)115, (byte)80, (byte)243, (byte)229 }, "windows-1252");
0252デフォルトの名無しさん
05/01/18 13:53:07素直にflashに乗り換えた方がよさげ。
0253デフォルトの名無しさん
05/01/18 14:08:46そうですか。
グラフィックはメモリイメージソースをいじって何とかなってたのですが、
サウンドがどうしようもないんですよね。1.2.x以降の普及を待つつもりだったのですが
flash陣営にかないそうにないみたいな意見がおおいですからね。
javaは好きだからしばらくはつづけつつも裏でflashの勉強でもしますかにょ。
0254デフォルトの名無しさん
05/01/18 14:20:45いいかげんMSJVMに頼るのは止めれ。
Appletプラグイン使って最新のJREをインストールしてもらうようにすべき。
0255デフォルトの名無しさん
05/01/18 14:28:02に1票。
5.0使えばいいじゃない。
0256デフォルトの名無しさん
05/01/18 14:29:13ありがとうございます。
ただ、"?]?Rv?!a???sP?? " と表示されてしまいます……
0257245
05/01/18 14:34:24java.exeが
C:\Program Files\Java\j2re1.4.2_01\bin
というディレクトリにあるんですが
C:\Program Files\Java\j2re1.4.2_01\bin\javac
としても、パスが見つかりませんとなります・・
どうすればよいのでしょうか
0258デフォルトの名無しさん
05/01/18 14:38:34SDKをインストールしてないわけだ
J2SE SDK のダウンロード
http://java.sun.com/j2se/1.4.2/ja/download.html
0259257
05/01/18 14:42:590260デフォルトの名無しさん
05/01/18 14:44:56JavamailでX-Mailerの設定は無理ですか?
0261デフォルトの名無しさん
05/01/18 14:47:08ドライブ内をjavac.exeで検索してみたら
0262デフォルトの名無しさん
05/01/18 14:50:22SDKじゃなくてJREが入ってるんだろ
0263デフォルトの名無しさん
05/01/18 14:51:15C#とJavaで一文字ずつ16進表示させて比較してみたら?
0264デフォルトの名無しさん
05/01/18 15:00:00C#だとサーカムフレクスアクセントとかの無いASCII文字に成り下がるのか。
それをやると再変換しようとしても元に戻せないって事だから問題あるような。
まぁ、どの時点でそーなったかにもよるんだけど。
Javaの場合は小細工なしに出力して日本語のエンコーディングで扱えない文字は
全部'?'に変換されてるから予想された結果だけど。
0265デフォルトの名無しさん
05/01/18 15:02:31JFrame2でごちゃごちゃ計算した結果をJFrame1に返したいんですけど
どうしたらよいのか検討がつきません。ご教授願います。
0266デフォルトの名無しさん
05/01/18 15:13:22その「学校のパソ」とやらの管理者に聞けば良いんじゃない?
02671/2
05/01/18 15:25:29class Manager{
private JFrame1 frame1;
private JFrame2 frame2;
public static void main(String[] args){
//自身のインスタンス化とJFrame1の表示
}
public void requestAction(){
action(); // 何か複雑な処理
frame2.showResult();
}
}
02682/2
05/01/18 15:26:28private Manager maneger;
public void actionPerformed(ActionEvent e){
Thread t = new Thread(new Runnable(){
public void run(){
manager.requestAction();
}
});
t.start();
}
}
0269257
05/01/18 15:28:22そうっぽいです。JREの場合パス指定方法は
どのように?
C:\Program Files\Java\j2re1.4.2_01\bin\javac
ではパス指定になってないのですか?
0270デフォルトの名無しさん
05/01/18 15:28:25じゃあJVMの最新バージョンは? JVMのバージョン意識する必要あるの?
02713/2 残った・・・
05/01/18 15:28:38public void showResult(){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
// 表示
}
});
}
}
ざっくり省いたので使うときは補ってくれ。それから、引数が必要な時は適宜クラス作れ。
0273デフォルトの名無しさん
05/01/18 15:31:15JREにはjavacはない。
しっかりしろ。
>>270
同じだ。
0274初心者 ◆Java/isQ.c
05/01/18 15:33:42JVMを含むJREとJDKは同じバージョンのものが同時にリリースされています。
最新のJDKで提供される機能をフルに用いた場合、最新のJVMが必要かと思います。
0275デフォルトの名無しさん
05/01/18 15:34:38なってない。javacっていうのはコンパイラを示す。
\bin\javacは意味不明になっちゃうの。
環境設定をしなさい。
0277270
05/01/18 15:49:33同じ?JDKとJVMのバージョンがですか?
>>274
JVMはJREとJDK両方に含まれてますよね
JREとJDKが同時にリリースされるのでバージョンが一緒になるのはわかるのですが
JVMも一緒になるのでしょうか?
というのもさっきSystemクラスのpropertyメソッドで自分のJDKとJVMのバージョン確認してみたら
JDKが1.4.**、JVMが1.0.**となりました
0278デフォルトの名無しさん
05/01/18 16:04:33JTabbedPane base=new JTabbedPane(SwingConstants.TOP);
getContentPane().add(base);
JPanel tab1=new JPanel();
JPanel tab2=new JPanel();
JPanel tab3=new JPanel();
base.add(tab1,"1");
base.add(tab2,"2");
base.add(tab3,"3");
tab1.setLayout(new BorderLayout());
tab1.add(new JButton("A"));
tab2.setLayout(new BorderLayout());
tab2.add(new JButton("B"));
tab3.setLayout(new BorderLayout());
tab3.add(new ScrollPane());
}
↑みたいにScrollPaneとJTabbedPaneを組み合わせると
起動直後はタブの1枚目や2枚目にもScrollPaneが表示される…
順番の入れ替え以外で対処できないんですかね?
0279初心者 ◆Java/isQ.c
05/01/18 16:10:28> JVMはJREとJDK両方に含まれてますよね
> JREとJDKが同時にリリースされるのでバージョンが一緒になるのはわかるのですが
> JVMも一緒になるのでしょうか?
同じになるものと理解しています。
> というのもさっきSystemクラスのpropertyメソッドで自分のJDKとJVMのバージョン確認してみたら
> JDKが1.4.**、JVMが1.0.**となりました
私の環境で次のコードを実行してみたところ、
JRE は 1.4.2_06 で、JVM は 1.4.2_06-b03 という結果が得られました。
public class Test {
public static void main(java.lang.String args[]){
System.out.println("JRE: "+System.getProperty("java.version"));
System.out.println("JVM: "+System.getProperty("java.vm.version"));
}
}
JDK のバージョンはどのように確認されていますか?
0280デフォルトの名無しさん
05/01/18 16:11:32System.arraycpy( trg, 0, src, 0, len )
って書いたこと無い?
紛らわしいんだよ!普通
trg, src の順だろうが!
0281デフォルトの名無しさん
05/01/18 16:14:57JDKにもJREは含まれていて、JREがJVMを提供しているので
JDKにJVMが含まれているとも言えるし、バージョンも同じと言える。
0282デフォルトの名無しさん
05/01/18 16:21:08実装系のバージョンは別物だから気をつけようね。
0283デフォルトの名無しさん
05/01/18 16:22:35まさか""で囲んでないとか?
"C:\Program Files\Java\j2re1.4.2_01\bin\javac"
0284デフォルトの名無しさん
05/01/18 16:36:58ふつうに考えてそのパスにjavac.exeがあるか?
0286デフォルトの名無しさん
05/01/18 18:39:08hello.javaファイル内の
public class helloのところをHelloに変えて、
ファイル名もHello.javaに変えてみ。
0287デフォルトの名無しさん
05/01/18 18:49:53javacが見つかってないんだからそういう問題じゃないと思う。
0288デフォルトの名無しさん
05/01/18 19:36:26指定した幅で折り返ししたいのですが、どのようにすれば良いのか分かりません。
setPreferredSizeメソッドで横幅を指定すれば、折り返しは出来ますが、
高さが不明であるため、上下に無駄な空白が出来たり、途中で切れていたりして
制御できません。
どなたかご教授お願いします。
0289デフォルトの名無しさん
05/01/18 19:59:49ちがう、読むのは1行ずつよむ。
1行読み込んだら、その1文字を30文字単位に分割して、
30文字単位で出力する。
30文字単位で、printlnすれば改行は付くでしょ?(\nを入れる必要はない)
1行読む→
1行が50文字だった→
最初の30文字をprintln→
残りの20文字をprintln
0290236,243
05/01/18 20:11:53readLine()で行を読み込んでlength()で30文字を超えるかどうかを判定し、
readLine()で読み込んだ文字列をString型の変数にいれたあと
while(y <= 30){
System.out.print(charAt(y));
y++;
}
以上のプログラムを使って出力ができました。おそらくヒントとはちょっと違うと思いますが
非常に参考になりました。どうもありがとうございました。
0291デフォルトの名無しさん
05/01/18 20:12:59if文ではなくwhile文になりそうだな。
0292デフォルトの名無しさん
05/01/18 21:09:12class FrameTest extends Frame
{
}
class Test extends FrameTest
{
.
.
.
とやればTestにはTestFrameが継承されて、Frameの機能をTestクラスで使えるようになるのですか??
0293デフォルトの名無しさん
05/01/18 21:19:49大体そんな感じです。
0294デフォルトの名無しさん
05/01/18 22:09:15final class Foo { // 改造禁止のクラス
public Foo() {}
public void setId() {...}
};
class Bar<Child> { // 試しに作ったクラス
public Child child;
public Bar() {}
public void createChild() {
child = new Child(); // ※1 Childはインスタンス化できない
}
public void setChildId(int id) {
child.setId(id); // ※2 setId()はChildで未定義
}
}
void test() { // ためしに作ったクラスを使う例
Bar<Foo> bar = new Bar<Foo>();
bar.createChild();
bar.setChildId(1);
}
こういう場合、どうやって回避するのが良いでしょうか?
0295デフォルトの名無しさん
05/01/18 22:12:56test()ってどのクラスのメソッド?
0296デフォルトの名無しさん
05/01/18 22:14:37任意のクラスのメソッド、という意図です。
0297デフォルトの名無しさん
05/01/18 22:18:13悪いがソースを全部コピペしてくれ。
コピペミスしてそうだから>>294のような状況を再現することすら出来ない。
クラスFooの最後にセミコロンあるしクラスChildの定義ないし。
0298デフォルトの名無しさん
05/01/18 22:24:03Cannot instantiate the type Child
The method setId(int) is undefined for the type Child
public class Test {
final class Foo { // 改造禁止のクラス
public Foo() {}
public void setId() {}
};
class Bar<Child> { // 試しに作ったクラス
public Child child;
public Bar() {}
public void createChild() {
child = new Child(); // ※1 Childはインスタンス化できない
}
public void setChildId(int id) {
child.setId(id); // ※2 setId()はChildで未定義
}
}
void test() { // ためしに作ったクラスを使う例
Bar<Foo> bar = new Bar<Foo>();
bar.createChild();
bar.setChildId(1);
}
}
0299デフォルトの名無しさん
05/01/18 22:29:51> child = new Child(); // ※1 Childはインスタンス化できない
そーゆーもん。
不満があるなら interface や class で定義された特定の引数型のコンストラクタを
実装クラスで定義しないとコンパイルエラーになるように言語仕様を変更しろと
JCP や Sun の掲示板やメーリングリストで騒ぐとかしろ。
> child.setId(id); // ※2 setId()はChildで未定義
静的型言語で定義されていないものが呼べないのは極めて正常。
不満があるなら実行時にメソッド呼び出しを解決するスクリプト言語でも作れ。
0300デフォルトの名無しさん
05/01/18 22:31:54不満があるのではなく、こういう場合の逃げ方のパターンがあれば教えて欲しい、のですが...
0301デフォルトの名無しさん
05/01/18 22:32:36> child.setId(id); // ※2 setId()はChildで未定義
setId()はjava.lang.Objectで未定義の間違いだな。
0302デフォルトの名無しさん
05/01/18 22:36:34ちなみに、どーゆーシチュエーションで使いたいわけ?
0303デフォルトの名無しさん
05/01/18 22:39:03http://java.sun.com/j2se/1.4.2/ja/download.html
このページのJ2SE SDKをクリックしても「ページを表示できません」になってしまいます。
このページのリンクが切れているからでしょうか?
それとも私のPCの環境のせいでしょうか?
0304デフォルトの名無しさん
05/01/18 22:39:190305デフォルトの名無しさん
05/01/18 22:40:16つながる。
httpsの接続環境を確認してみましょう。
0307デフォルトの名無しさん
05/01/18 22:43:03実際にはタブブラウザを作成していて、
タブ内に表示す子るビューとそのモデルをパラメータとする、タブビューテンプレートクラス、
のようなものを作っています。
0308307
05/01/18 22:44:170309デフォルトの名無しさん
05/01/18 22:44:560310デフォルトの名無しさん
05/01/18 22:47:13この中に組み込む GUI オブジェクトが、もしプログラムの実行中にサイズ変更された場合って
JScrollPane 自体を再描画するしか反映させる方法って無いですよね?
GUI オブジェクト内部で getParent().paintAll(…) ってやる以外に、変更をトリガする方法って無いですよね?
0311デフォルトの名無しさん
05/01/18 22:52:15setIdの方は、setIdを持つ適当なインタフェースHogeを定義して
Bar<Child extends Hoge>とする。
new Child()できないのは仕様なので、適当なファクトリメソッドを持つ
ファクトリをテンプレートパラメタに与えるようにする。
>>310
いいえ。
0313デフォルトの名無しさん
05/01/18 23:39:49ファクトリクラスはコンストラクタで与えるなり
テンプレートクラスの名前を設定ファイルとかから読み出して
reflection とかでインスタンス生成するなり
どっかのクラスに静的ファクトリメソッドを用意するなり
0314デフォルトの名無しさん
05/01/18 23:51:24interface ChildCreator<Child> {
Child createChild();
};
void test() {
Bar<Foo> bar = new Bar<Foo>(new ChildCreator<Foo>() {
public Foo createChild() { // ※
return new Foo();
}
});
...
}
※のところで以下のような警告が出たのですが、意味が分からない…。
(Eclipse3.1M4+jdk1.5.0_01使っています)
Type safety: The return type Foo of the method createChild()
of type new ChildCreator<Foo>(){} needs unchecked conversion
to conform to the return type Child of inherited method
new ChildCreator<Foo>(){}の中にあるメソッドcreateChild()の返却値の型
Fooは、継承されたメソッドの返却値の型Childに一致させるために、
チェック無しの変換が必要...???
0315デフォルトの名無しさん
05/01/18 23:53:44あと、調子に乗って、以下のようにしてみました。
interface ChildDelegate<Child> {
Child createChild();
void setChildId(Child child, int id);
};
void test() {
Bar<Foo> bar = new Bar<Foo>(new ChildDelegate<Foo>() {
public Foo createChild() {
return new Foo();
}
public void setChildId(Foo child, int id) {
child.id = id; // ※コンパイルエラー
}
});
...
}
※のところで、「child.id cannot be resolved or is not a field」と、
前と同じようなエラーがでます。
何か基本的なところで間違えている予感...
0316デフォルトの名無しさん
05/01/19 00:05:140317デフォルトの名無しさん
05/01/19 00:21:51俗に言うクリティカルセクション。
何で
synchronized - 同期
って名前なんだろう。排他制御以外にも利用されるからか?
誰か俺を救え。
0318デフォルトの名無しさん
05/01/19 00:33:570319デフォルトの名無しさん
05/01/19 00:36:15http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=synchronized+%E6%8E%92%E4%BB%96%E5%88%B6%E5%BE%A1&num=50
0320デフォルトの名無しさん
05/01/19 00:38:12マルチスレッドプログラミングで各スレッドの「同期」を取るために「排他制御」を使う。
同期が排他制御以外にも利用されるんじゃなくて、同期のために排他制御を使ったりもするの。
0321デフォルトの名無しさん
05/01/19 00:42:46全然問題外なので自分でもう一度genericsの仕様を調べることを勧める。
0322デフォルトの名無しさん
05/01/19 00:44:33String hoge1 = "目的の文字列";
String hoge2 = "";
while(hoge1.length() > 30) {
hoge2 = hoge1.substring(0, 30);
hoge1 = hoge1.substring(30);
// ここでhoge2を出力
}
if(hoge1 != "") // ここでhoge1を出力
0323デフォルトの名無しさん
05/01/19 00:49:48}
class ChildCreator<? extends Child>{
Child createChild();
}
Bar<Child> bar = new Bar<Child>(new ChildCreator<ChildImpl>);
0324323
05/01/19 00:51:300325デフォルトの名無しさん
05/01/19 01:44:21色々さんくす。ただ、セマフォとの違いが見えん。
結局鍵を取り合うだけだろ?セマフォのようにカウンタ無いっぽいけど。
名前の由来がしっくりこないな。
0326デフォルトの名無しさん
05/01/19 01:45:04interface Factory<T> { T create(); }
Bar<T extends Factory<U>> {}
使うとき。
class FooFactory implements Factory<Foo> {
Foo create() { return new Foo(); }
}
Bar<FooCreator> bar = new Bar<FooCreator>();
setIdも対応するともっと長くなるがこんな感じだろ。
0327デフォルトの名無しさん
05/01/19 01:46:240328デフォルトの名無しさん
05/01/19 02:14:320329310
05/01/19 02:14:42具体的にはどんな方法があるんでしょうか?
0330デフォルトの名無しさん
05/01/19 02:24:43マルチスレッドで同期化されてないのをつかったりするとよくわかる
VectorとArrayListとかクラス変数の宣言にvolatileありなしとかやってみそ
あるスレッドの動作で他のスレッドでも使われる変数の中身がかわらないから
各スレッドはスタックを別に持つはずだからまぁ言いたいことはわかるべ
0331315
05/01/19 02:52:41アフォでした、「child.id」は「child.setId()」の誤りでした...。
直したところ、コンパイルエラー消えました。>>294からしてすでにおかしいし。orz
>>326
interface Factory<T> { T create(); }
class FooFactory implements Factory<Foo> {
public Foo create() { return new Foo(); }
}
これだと>>314と同じ警告が出ます。
初心に帰って"javac Test.java"してみたところ、両方とも、
特に警告は出ませんでした。実行しても特にエラーは出ないようなので、
Eclipse周りをあたって見つつ、これでいきたいと思います。
>>321
言語仕様の最新Fix版はどこで見れますか?
JDKのスタートページから「Java言語仕様」のリンクをたどると、古いようなのですが。
JSRとかいうところをグルグルとさまよっている最中です...。
0332331
05/01/19 02:56:06public class Test {
final class Foo { // 改造禁止のクラス
public Foo() {}
public void setId(int i) {}
};
interface Adapter<Child> {
Child create();
void setId(Child child, int id);
}
class Bar<Child> {
public Child child;
Adapter<Child> adapter;
public Bar(Adapter<Child> adapter) { this.adapter = adapter; }
public void createChild() { child = adapter.create(); }
public void setChildId(int id) { adapter.setId(child, id); }
}
void test() {
Bar<Foo> bar = new Bar<Foo>(new Adapter<Foo>() {
public Foo create() { return new Foo(); }
public void setId(Foo child, int id) { child.setId(id); }
});
bar.createChild();
bar.setChildId(1);
}
}
0333デフォルトの名無しさん
05/01/19 10:08:18ここに
>Genericクラスの中で,型パラメータ(<T>)をnewできない. -- new T はだめ
ってあるから
new Adapter<Foo>() {
public Foo create() { return new Foo(); }
ができないんじゃない?
0334デフォルトの名無しさん
05/01/19 10:24:26bugは以前からknown bug。Eclipseスレの過去スレでも話題に出てた。
milestone buildを試すときにはbugzillaとにらめっこしながら
試すのを心がけよう。
まあ1.5サポートが不完全なmilestone buildで新しい言語仕様
を勉強するのは無茶だとおもうよ。
あとそもそもEclipseはJDKのjavac使ってないのは知ってますか?
0335デフォルトの名無しさん
05/01/19 11:06:40しらんかった。
0336デフォルトの名無しさん
05/01/19 11:11:54> 言語仕様の最新Fix版はどこで見れますか?
Fix版は無い。あるのは差分だけのはず。JSRにあるのは
http://jcp.org/aboutJava/communityprocess/review/jsr014/index.html
一番新しいのは adding generics についてる pdf だったと思われ。
http://java.sun.com/developer/earlyAccess/adding_generics/
それより新しいのがあったら俺も知りたい。
0337デフォルトの名無しさん
05/01/19 15:03:52クラスのstaticメソッドってパッケージをまたげないの?
自動でpublicだと思ってたんだが。
0338デフォルトの名無しさん
05/01/19 15:07:340339デフォルトの名無しさん
05/01/19 15:29:20スコープを勉強してこい
0340デフォルトの名無しさん
05/01/19 15:37:20絶対 い ・ や ・ だ !
つか、教えろ!オマエが!
0341デフォルトの名無しさん
05/01/19 15:37:47通称 package private とか package protected とか呼ばれているアクセス制限になる。
http://www.y-adagio.com/public/standards/tr_javalang2/names.doc.html#36154
> 6.6.5 フィールド,メソッド及びコンストラクタのデフォルトアクセスの例
>
> アクセス修飾子public, protected又はprivate をいずれも指定していなければ,
> クラスメンバ又はコンストラクタは,そのクラスメンバを宣言しているクラスの
> 宣言を含むパッケージの全体からアクセス可能とする。しかし,そのクラスメン
> バ又はコンストラクタは,他のパッケージからはアクセス不能とする。
0342デフォルトの名無しさん
05/01/19 15:39:14protected は継承クラスならパッケージ外からでもアクセス可能だな。
0343デフォルトの名無しさん
05/01/19 15:44:140344デフォルトの名無しさん
05/01/19 15:53:23わりわり。
0345デフォルトの名無しさん
05/01/19 16:12:52君のスコープは?
0346デフォルトの名無しさん
05/01/19 18:12:26ちなみに、Runnableインターフェースを実装し、そのrunのなかでTimerクラスを用いてます。
0347デフォルトの名無しさん
05/01/19 18:18:52何秒ごとに描写、と。描写はpaintですけど。。
スレッドを継承しているわけではないから、違うのかなぁ。
0348デフォルトの名無しさん
05/01/19 19:04:56タイマーは奪い合いで複数作業を平行して進める。
0349デフォルトの名無しさん
05/01/19 19:44:17ここでいうTimerはJavaのクラスとしてのTimerであって、
タイマーという概念全般のことではないだろ?
0350デフォルトの名無しさん
05/01/19 20:38:28問題視されていましたよね。
その原因を調べる過程で、以下の記事を見つけました。
ttp://www.atmarkit.co.jp/fjava/special/ejb20/ejb20.html
この記事の中段付近でコンテナによるダーティーフラグや
キャッシュについて述べられています。しかし、ダーティ
フラグやキャッシュが有効なら、パフォーマンスにそれほど
問題が出ないような気がします。
EJB1.x系のパフォーマンスが低い原因について、より詳細な
説明をして頂けないでしょうか?>識者の皆様
0351デフォルトの名無しさん
05/01/19 21:05:35そのとき、そのコマンドを実行するカレントディレクトリを指定したいんですけど、
Javaでやる場合って、どうやればいいですかね?
"cd c:\〜"ってなコマンドをJava内で実行するとエラーになります。
0352デフォルトの名無しさん
05/01/19 21:14:26\をエスケープしてないとか。
0353デフォルトの名無しさん
05/01/19 21:58:51と
public static void main(String args[])
は
何が違うんですか?
0354デフォルトの名無しさん
05/01/19 22:01:16[]の位置
0355デフォルトの名無しさん
05/01/19 22:04:28Webアプリでは様々なツールを連携させて開発するので
一応下記の物を入手しましたが
J2SE 5.0
J2EE 1.4
Eclipse 3.0.1
Tomcat 5.5.4
mysql 4.1.7
Apache 2.0.52
JBoss 4.0.1
Struts 1.2.4
jakarta-taglibs
Ant 1.6.2
JUnit 3.8.1
Cactus 1.6.1
これらを連携させるとの概念で少し詰まっています。
それぞれのツールのインストーラーを起動させてプラグインするのは
分かるのですが、それをどれに対してするのかが曖昧です。
標準的な組み合わせ法を教えてください。
0356デフォルトの名無しさん
05/01/19 22:05:06なぜ2通りの書き方があるんですか?
0357デフォルトの名無しさん
05/01/19 22:09:45仕様
0358デフォルトの名無しさん
05/01/19 22:25:09ロートルにたいするサービス
0359デフォルトの名無しさん
05/01/19 22:34:51連携の概念も糞も無いというか、俺としては連携に苦労した記憶が一切無いんだが・・・
普通に教科書どおりにやってうまく動かないの?
0360デフォルトの名無しさん
05/01/19 22:38:22なんか前にもまったく同じの見たな
0361デフォルトの名無しさん
05/01/19 22:46:12eclipseでコーディングしてるんで、エスケープシーケンスはチェックが入るんで、
ちゃんと実装してますよ。
0362デフォルトの名無しさん
05/01/19 23:02:17java.lang.Runtime.exec(String, String[], java.io.File) とか
java.lang.Runtime.exec(String[], String[], java.io.File) とかを使え。
あと、cd は外部コマンドじゃないな。
0363デフォルトの名無しさん
05/01/19 23:36:56そりゃすべてのEJB呼び出しがリモート呼び出しになる環境で
パフォーマンスなんか出るわけないわな。
メソッド呼び出すために、オブジェクトがシリアライズされて渡される
んだぞ。ローカルですら。
EJB2.0でローカル呼び出しが可能になって、ローカルを使う分には
速くなった。ものの記事によると、Hibernate(O/Rマッピングツール)
と、EJBローカルエンティティと比べると、一部EJBの方が速かったり
するらしいし。
ただあの複雑さと無駄な単純作業の多さは、まともな人間が設計した
とは思えん。なんか頭のいい人がユーザーのことなんて考えずに作った
ような感じがする。
0364デフォルトの名無しさん
05/01/19 23:51:22ありがとうございます。
execは多々オーバーロードされた関数でしたか。
この第三引数で指定したディレクトリが、カレントとみなされるわけですね。
なるほどー。
cdで例外が起こったのは、外部コマンドでないからでしたか。
勉強になりました。
0365デフォルトの名無しさん
05/01/19 23:52:12環境は JDK1.3.x Win2000 エクリプス3.0
下記のソースなのですが、1行目の「あいうえお」を表示した後に
子供のコンポーネントをインサートして図1の様に1行目の上側の
スペースをそろえたいのですが、どうしても図2のようになってしま
います。理由はわかるのですが、何とかならないでしょうか?
長文、駄文、スレ汚し申し訳ありません。
図1
--------------------------------
「あいうえお」|「2あいうえお」|
| |
|「2かきくけこ」 |
-------------
「かきくけこ」
--------------------------------
図2
--------------------------------
|「2あいうえお」|
「あいうえお」| |
|「2かきくけこ」 |
-------------
「かきくけこ」
--------------------------------
次に サンプル・ソースを乗せます。
0366デフォルトの名無しさん
05/01/19 23:54:35import javax.swing.JFrame;
import javax.swing.JTextPane;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
public class LineSpacingTset extends JFrame
{
public LineSpacingTset()
{
super("LineSpacingTset");
setBounds(200, 160, 500, 250);
JTextPane jTP = new JTextPane();
SimpleAttributeSet attr = new SimpleAttributeSet();
StyleConstants.setLineSpacing(attr, 20.5f);
// JTextPane全体に属性を設定
jTP.setParagraphAttributes(attr, true);
JTextPane jTP1 = new JTextPane();
jTP1.setParagraphAttributes(attr, true);
Document doc1 = jTP1.getDocument();
try
{
doc1.insertString(0, "2あいうえお\n", attr);
doc1.insertString(8, "2かきくけこ", attr);
}
0367デフォルトの名無しさん
05/01/19 23:55:17catch (BadLocationException e)
{
e.printStackTrace();
}
Document doc = jTP.getDocument();
try
{
doc.insertString(0, "あいうえお\n", attr);
doc.insertString(7, "\nかきくけこ", attr);
}
catch (BadLocationException e)
{
e.printStackTrace();
}
jTP.setCaretPosition(5);
jTP.insertComponent(jTP1);
getContentPane().add(jTP, BorderLayout.CENTER);
}
public static void main(String[] args)
{
LineSpacingTset cTester = new LineSpacingTset();
cTester.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
cTester.setVisible(true);
}
}
0368デフォルトの名無しさん
05/01/19 23:56:05ためしに、SimpleAttributeSet();を(attri, -16.5f)として
StyledDocument.setCharacterAttributes(0, 7, attr, true)
を使って「あいうえお」を選択してその文字属性だけ上に
持ち上げようとしたのですがうまくいきませんでした・・・
なにとぞ、お願いします。
0369デフォルトの名無しさん
05/01/20 00:05:17引数で渡すだけだと変更されてなくて方法が分かりませんでした^^;
0370デフォルトの名無しさん
05/01/20 00:09:22あなたも知識だけの人ですね。
ローカルインタフェースが仕様化されたのは2.0からですが
実際にはほとんどのEJBコンテナ製品では物理的にリモート配置
していない限りは内部で勝手に最適化してローカル参照していました。
それが後付で仕様として取り込まれたというのが実状です。
現行の製品でもリモートインタフェースを作成しても
実際には内部で最適化されてローカル参照しているのがほとんどです。
0371デフォルトの名無しさん
05/01/20 00:12:340372デフォルトの名無しさん
05/01/20 00:13:41どうしたらよいでしょうか?
0373デフォルトの名無しさん
05/01/20 00:16:01import java.awt.event.*;
class Frame1 extends Frame
{
Frame1(String title)
{
super(title);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
});
}
}
public class FrameApplication
{
public static void main(String [] agrs)
{
Frame1 f1 = new Frame1("ふれーむ");
f1.setSize(200,200);
f1.show();
}
}
0374デフォルトの名無しさん
05/01/20 00:16:33というのを作ったんですが、コンパイルすると
c:\MyApplet>javac Frame1.java
Frame1.java:19: クラス FrameApplication は public であり、ファイル FrameApplicat
ion.java で宣言しなければなりません。
public class FrameApplication
とでます。どういうことですか?
0375デフォルトの名無しさん
05/01/20 00:18:05Javaのファイル名は、ファイル内に一つだけ書いていいことになっている
publicなクラス名と同じでないといけない。
0376デフォルトの名無しさん
05/01/20 00:19:43ありがとうございます。>>375
0377デフォルトの名無しさん
05/01/20 00:26:02コマンドライン引数というのがありますが、これは
java *** a b c
と実行したとき
args[0]=a
args[1]=b
args[2]=c
となります。
そうではなく、半角スペースなしに
java *** abc
と実行したとき
args[0]=a
args[1]=b
args[2]=c
こうなって欲しいのですが、どうしたらよいでしょうか?
0378277
05/01/20 00:28:51>>279>>282
返事貰ったのにおくれてすいません
以下にJVM確認のプログラムと実行結果を書きます
<プログラム>
System.out.println(System.getProperty("java.version"));
System.out.println(System.getProperty("java.vm.specification.version"));
System.out.println(System.getProperty("java.vm.version"));
<実行結果>
1.4.2_03
1.0
1.4.2_03-b02
僕が報告したのは2行目でした
APIリファレンス見たら(http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html)
>>282さんの言うとおり仕様のバージョンと実装のバージョン二種類があるのを知りました
一体それぞれの違いは何なんですか?教えてください、お願いします
0379デフォルトの名無しさん
05/01/20 00:39:46追加しておいてはどうだろうかと提案してみるテスト。
0380デフォルトの名無しさん
05/01/20 00:43:47toCharArrayか、Substring。
0381デフォルトの名無しさん
05/01/20 01:00:34仕様が確定しても、製品としての実装物はいくらでも改良できるだろ。仕様をさえ
満たせばいいわけだから。
だから仕様バージョンはなかなかあがらないが、実装バージョンはどんどんあがる。
0382378
05/01/20 01:12:07例えてくれると解りやすいですけどこの場合JVMの仕様バージョンとは・・・?
バージョンと言ってもプログラムではないという事?
1、ある偉い人達(サンの人達?)がJVMにはこういう機能を持たせよう(ドキュメント)
→JVMの仕様バージョンになる
2、その仕様バージョンにあわせて実装・プログラミングする→JVMの実装バージョンになる
3、JVMの仕様は変わらないけど2で実装したJVMのバグを直す、改良・昨日補足する→JVMの実装バージョンUP
こういう理解であってる?
0383デフォルトの名無しさん
05/01/20 02:37:220384デフォルトの名無しさん
05/01/20 03:22:44うす
0385デフォルトの名無しさん
05/01/20 04:23:430386デフォルトの名無しさん
05/01/20 04:35:250387デフォルトの名無しさん
05/01/20 04:42:560388デフォルトの名無しさん
05/01/20 05:07:10(eval (read) )
>>(defclass CA()());クラスCAが定義される
みたいな。
0389デフォルトの名無しさん
05/01/20 05:17:570390デフォルトの名無しさん
05/01/20 05:29:20マジすか?
差し支えなければ方法を教えていただけないでしょうか?
0391デフォルトの名無しさん
05/01/20 07:12:24>>370
レスありがとうございます。
ちょっと私の言葉が足りなかったようです。
知りたかったのはエンティティ・ビーンの永続化の
パフォーマンスが低い原因について、でした。
コンテナがダーティーフラグやキャッシュを用意して
いるにもかかわらず、パフォーマンスが出ないのは
なぜか、と思いまして。
0392デフォルトの名無しさん
05/01/20 08:50:09クラス名 a = (クラス名)Class.forName( "クラス名" ).newInstance();
0393デフォルトの名無しさん
05/01/20 11:10:491.4.2_03以降のものはIBMからは提供されていませんか?
探してみたんですが見つからないので。
0394デフォルトの名無しさん
05/01/20 11:31:40賛成。
案1
publicなクラスは同名のファイル(クラス名.java)中に宣言しなければなりません。
名前を揃えましょう。大文字と小文字の違いにも注意しましょう。
またこのことによって1つのファイル中に2つ以上のpublicなクラスを宣言することもできません。
可視性を変更するか、ファイルを分割しましょう。
0395デフォルトの名無しさん
05/01/20 11:32:30SunのJDKとの対応はしらないけど、知っている限りで一番
新しいbuildはIBM Rational Web Developerに入っているやつ
だった。 http://www.ibm.com/developer/java/jdk/ で
手に入るものより数ヶ月は新しかった。
0396デフォルトの名無しさん
05/01/20 11:33:090397デフォルトの名無しさん
05/01/20 11:34:250398デフォルトの名無しさん
05/01/20 12:12:096月頃。
Eclipseのサイトにロードマップがあるんだからそれぐらい見ろよ
0399デフォルトの名無しさん
05/01/20 12:26:04知らなかったよ。ありがとう。
6月か。。
0400デフォルトの名無しさん
05/01/20 12:35:42VB.NETで、javaを実行したいんですが、
java.exeは起動はできるんですが、ファイルを実行できません。
エラーからクラスパスに問題があることがわかりました。
それで環境変数設定しても、うまくいきませんでした。
だれか、他のプログラムから、javaのクラスファイル実行するの
わかるひといませんか?
0401デフォルトの名無しさん
05/01/20 12:37:25> わかるひといませんか?
いる。
0402デフォルトの名無しさん
05/01/20 12:40:48SystemColorの定数にいろいろあるから使え。
0403デフォルトの名無しさん
05/01/20 13:01:29エラー内容は書いてない・・・自分の行った環境変数設定は書いてない・・・
どのようなVB.NETのプログラムで、どのようなJavaプログラムを呼び出すかも書いてない・・・
独り言口調・・・
典型的なエスパー募集の広告だな。
0404400
05/01/20 13:07:21>>403
うるさいよ。わからない奴はだまってみてろっつーの。
俺は、知ってる人に聞いてるんだから、ちゃちゃ入れるだけの初心者は引っ込んでろ。
0405デフォルトの名無しさん
05/01/20 13:16:19バカじゃなかろか?
0406デフォルトの名無しさん
05/01/20 13:31:480407デフォルトの名無しさん
05/01/20 13:56:38詳細なエラーメッセージ出すとかなにもないしねぇ
0408デフォルトの名無しさん
05/01/20 13:58:03わからないなら書き込むんじゃねえよ、カス
0410デフォルトの名無しさん
05/01/20 14:04:58>>409
0411デフォルトの名無しさん
05/01/20 15:17:21ちょっと補足。
ファイル名と異なる名前の非publicクラス群*のみ*
からなるソースコードも作れる。
0412デフォルトの名無しさん
05/01/20 15:17:46どこを直すべきか、アドバイス頂けませんでしょうか?
ブラウザからPOSTした文字列をbeanで受け取って、それをpostgresqlのDBに書く、
という処理を行っています。関係しそうな所を抜粋して書きます。
---- javaBean内で
request.setCharacterEncoding("euc-jp");
String params = request.getParameter("params");
String sSql = "insert into TEST values (?)";
ps = conn.prepareStatement(sSql);
ps.setString(1, params);
result = ps.executeUpdate();
----
---- Database (postgresql)
createdb -E EUC_JP foo
---- OS
unix
DBに挿入された日本語は全く無関係な漢字の羅列に化けます。
素人ながらの推測ですが、Unicodeな文字列をそのままEUCのつもりでDBに書いてるん
じゃないかという気がするんですが(←根拠なし)
0413デフォルトの名無しさん
05/01/20 15:24:32HTMLはEUC_JPで表示してるの?
0414デフォルトの名無しさん
05/01/20 15:58:57画像をランダムに表示するプログラムを作っているのですが、
なかなかうまくいきません。
どなたか教えていただけませんでしょうか。
0415デフォルトの名無しさん
05/01/20 16:00:550416本当の400
05/01/20 16:02:08>>404 >>409は偽者です。
エラーは、Exception in thread "main" java.lang.NoClassDefFoundError: Hello
こんなのです。
javaのプログラムとしては、試験的なものなので、
ただhelloを表示させるものです。
環境変数設定は、マイコンピューターのプロパティでPATH,CLASSPATHを
設定しました。コマンドプロンプトでは、普通に実行できました
0417本当の400
05/01/20 16:09:46javaのプログラム内で、クラスパス指定ってできますか?
0418デフォルトの名無しさん
05/01/20 16:19:16おいおい、そーじゃねーだろ。
おまえさんの作ったHelloすらjavaはどこにあるかわからんから、
java.lang.NoClassDefFoundError (クラス定義がみつかんねー)
を出してるわけだ。
javaのオプションに-classpathがあるから、それ使っておまえさんの作ったHello.classがあるディレクトリを指定してやればいいんだよ
0419デフォルトの名無しさん
05/01/20 16:21:26import java.awt.*;
import java.awt.event.*;
public class ekaki extends Applet implements ActionListener, MouseListener, MouseMotionListener{
int x,y;
Button btn;
public void init(){
btn=new Button("消去");
setLayout(new BorderLayout());
add("South",btn);
btn.addActionListener(this);
addMouseMotionListener(this);
addMouseListener(this);
img=getImage(getDocumentBase(),"1.gif");
addMouseMotionListener(this);
}
public void mouseDragged(MouseEvent e){
Graphics g;
g=getGraphics();
g.drawLine(x,y,e.getX(),e.getY());
x=e.getX();
y=e.getY();
}
0420419
05/01/20 16:22:49public void mousePressed(MouseEvent e){
x=e.getX();
y=e.getY();
}
public void actionPerformed(ActionEvent e){
repaint();
}
Image img;
public void mouseMoved(MouseEvent e){
x=e.getX();
y=e.getY();
showStatus("X: "+x+", Y: "+y);
repaint();
}
public void paint(Graphics g){
if((x==100)&&(y==100)){g.drawImage(img,x+5,y+5,this);}
if((x==200)&&(y==200)){g.drawImage(img,x+5,y+5,this);}
if((x==300)&&(y==300)){g.drawImage(img,x+5,y+5,this);}
if((x==100)&&(y==200)){g.drawImage(img,x+5,y+5,this);}
if((x==200)&&(y==300)){g.drawImage(img,x+5,y+5,this);}
if((x==300)&&(y==100)){g.drawImage(img,x+5,y+5,this);}
if((x==100)&&(y==300)){g.drawImage(img,x+5,y+5,this);}
if((x==200)&&(y==100)){g.drawImage(img,x+5,y+5,this);}
if((x==300)&&(y==200)){g.drawImage(img,x+5,y+5,this);}
else {}
}
0421419
05/01/20 16:27:08public void mouseExited(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseClicked(MouseEvent e){}
}
上記のプログラムで描いた線を消去ボタンで消えるようにして、
あるポイントにいったら画像を表示するようにするにはどのように直せばいいのでしょうか?
0422デフォルトの名無しさん
05/01/20 16:28:44コマンドプロンプトで,
-classpath入力してクラスパスを指定するってことですよね?
0423デフォルトの名無しさん
05/01/20 16:46:04これでも嫁。
http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/java.html
javaコマンドの使い方のマニュアルぐらい読んでから質問しろよヴォケ
0424412
05/01/20 18:14:01あれからもう少し実験しました。
request.setCharacterEncoding("euc-jp");//←(1)
String params = request.getParameter("params");
String sSql = "insert into TEST values (?)";
ps = conn.prepareStatement(sSql);
params = "日本語がちゃんと登録されるか確認わはー";//←追加
ps.setString(1, params);
result = ps.executeUpdate();
これで、DBに日本語が正しく登録される事を確認しました。
という訳で、おそらく「POSTされた文字列がUnicodeとして正しくparamsに
入っていない」のが化ける原因だと思われるのですが、そうなると(1)の記
述がまずいか、根本的に勘違いしているのか・・・
setCharacterEncodingではなく、一旦バイトデータに変換してから再エンコ
ードする方法しかないのでしょうか?
>413
EUCです。ブラウザのメニューで確認しました。
0425デフォルトの名無しさん
05/01/20 18:33:55より以前で、System.out.println(params);で確認したら?
0426412
05/01/20 19:25:32確認しました。やっぱり化けています。正しくUnicodeで入っていないのは
確かみたいです。という訳で、結局教科書どおりの
s = new String(s.getBytes("iso-8859-1"), "EUC_JP");
として再エンコードする事で日本語化けは解消しました。それはそれで
原因と対処方法がわかってよかったのですが、何故 setCharacterEncoding
がちゃんと機能しなかったのかイマイチ納得できない感じです。
書き忘れていましたが、環境は
postgresql 7.4.6 + postgresql-jbdc 7.4.6
apache 1.3.29 pl3
jdk 1.3.1
jakarta-tomcat 4.1.31
です。>412 のソースでsetCharacterEncodingの使い方のまずい点がありま
したら何方かご指摘下さい。
0427デフォルトの名無しさん
05/01/20 19:37:07サイトありませんでしょうか?
Javaソケットプログラミングをやっているのですが、うまい例外処理がいまいち
よくわかりません。
どなたか教えてくださいorz
0428412
05/01/20 19:44:00原因はわからないけど解決しました。
一連の処理はMVCmodel2なんですが、コントローラ内でsetCharacterEncoding
を書いてやれば文字化けしなくなりました。
-- in Controller.class --
doPost(HttpServletRequest request, ・・・) {
request.setCharacterEncoding("EUC_JP"); //<-ここに書けばOK
Model.updateDB(request);
}
--
-- in Model.class --
updateDB(HttpServletRequest req){
req.setCharacterEncoding("EUC_JP"); //<-ここに書いても機能しない
//DB処理
}
なんでなのか理由は判りませんが・・・
って、requestをモデルに丸投げする事自体が多分論外なのかもしれませんが。
0429デフォルトの名無しさん
05/01/20 20:39:02誰かこのC++をCに直してくれませんか?問題は↑
#include <iostream>
#include <vector>
using namespace std;
void print(const vector<int>& v){
for (int i = 0; i < v.size(); ++i) {
cout << v[i] << ' ';
}
cout << endl;
}
int main(){
int n, r;
while (cin >> n >> r, n || r) {
vector<int> card(n);
for (int i = 0; i < n; ++i) { card[i] = n - i; }
for (int i = 0; i < r; ++i) {
vector<int> target(card);
int p, c; cin >> p >> c;
for (int j = 0; j < p - 1; ++j) {
target[c + j] = card[j];
}
for (int j = p - 1; j < p + c - 1; ++j) {
target[j - p + 1] = card[j];
}
swap(card, target);
}
cout << card[0] << endl;
}
}
0430デフォルトの名無しさん
05/01/20 20:49:06誤爆だよね?
0431デフォルトの名無しさん
05/01/20 22:15:00と
int i = Integer.valueOf(args[0]).intValue();
の二つがあるけど、どう違うのですか?僕は同じだと思うんですが・・・
0432デフォルトの名無しさん
05/01/20 22:27:500433デフォルトの名無しさん
05/01/20 23:01:30これはクラスからインスタンスを作るだけで>>390の「クラスを動的に作る」
という目的とは全然違うだろ?
>>390
クラスを動的に作る方法は
1.バイトに対応するバイト列を動的に生成してClassLoader#defineClassする(難易度高)
2.JavassistやBCELなどのライブラリを使う(難易度中)
3.動的にソースファイルを作って動的にコンパイルし、それを読み込む(難易度低)
なんかがある。
0434デフォルトの名無しさん
05/01/20 23:25:18後者は、内部的に引数に対して前者と同じことをやった後、
その結果からIntegerインスタンスをつくって、あらためて
中にある結果を取り出すというまわりくどいことをしている。
詳しくはjava/lang/Integer.javaを見ること。
作ってその場でintValue()を呼ぶようなケースなら前者のほう
がいいのは当然だが、文字列からIntegerオブジェクトを作る
目的ではvalueOfにも存在意義がある。
new Integer(argv[0])でもいいじゃん、という話もあるが、
APIドキュメントによれば、valueOfで返されるIntegerオブ
ジェクトはキャッシュされるので、ラッピングインスタンス
を作りまくるようなケースではvalueOfを使ったほうがいい
らしい。
0435デフォルトの名無しさん
05/01/20 23:33:180436デフォルトの名無しさん
05/01/20 23:35:36invokeじゃダメ?
0437デフォルトの名無しさん
05/01/20 23:40:21ちっとも糞
0438デフォルトの名無しさん
05/01/21 00:30:26javaコマンド使わなきゃ実行できないじゃないですか。
どうにか、.exeとかにならないですかね?
この場合マルチプラットフォームとかは抜きで。
とりあえずexe生成方教えてください。
0439デフォルトの名無しさん
05/01/21 00:34:570440デフォルトの名無しさん
05/01/21 00:38:51いやー、Cマンドクセ……Javaに慣れると辛いね、いろいろと……
とりあえず、bccでコンパイルして、例題通りの入力で>429と同じ出力が出ることのみ確認。
素敵なソースうpろだのup0711に晒したので暇な人はどぞ。
0441デフォルトの名無しさん
05/01/21 00:41:13ダブルクリックで起動したいだけならjarにまとめてMANIFEST.MFを適切に書けばなんとかなるよ。
(JREは要るが)
Cygwinでgcj使えばCygwin環境内で動く(てことは、cygwin絡みのdllがあれば何とかなる?)exeが
作れるかも知らんが、やったことないのでワカンネ
0442デフォルトの名無しさん
05/01/21 00:42:09おカネ払う覚悟があるのなら方法はあるよ
0443デフォルトの名無しさん
05/01/21 00:42:34excelor JETというソフトを使う。
Wクリックで実行できる.jarの形にして
変換すると.exeにしてくれる。
0444デフォルトの名無しさん
05/01/21 00:46:08初心者こそ使い物にならないのをすすめるのはどうだろう
0445デフォルトの名無しさん
05/01/21 00:50:16バッチファイルですね。
どうもありがとうございます
一番楽なのはバッチファイルですね
何とか色々ためしてみます
0446デフォルトの名無しさん
05/01/21 00:57:084.1.31なんてJDK1.4系でしかBuildされてないはずだしLinux+1.3はクラッシュするとか
いろいろと問題あるのはわかるが、あの書き方でかわるのか?
結局出してない部分で不具合だしてるってことかね
0447433
05/01/21 02:46:19invokeとクラスの動的生成がどうつながる?
すでにクラス定義があるところからインスタンスを作る話じゃないぞ?
>>390がLisperなところを見ても実行時に動的にクラス定義を作る話だろうに。
それとも、>>392もそうだがJava(ないしそれに類する静的言語)しか知らないせいで
動的にクラスを作るという意味が理解できないのか?
0448デフォルトの名無しさん
05/01/21 02:57:010449デフォルトの名無しさん
05/01/21 03:01:35読むタイミングでうまくいってないってことは、モデルクラスでsetCharactorEncoding()したとき
よりも前に、どこかでリクエスト・パラメータを読むなり、getReaderでストリームを取ったりし
ちゃってるんじゃないの?
setCharactorEncoding()は、リクエスト・パラメータを読むよりも前に実行しないといけない
から、doPostに移しただけで動くようになったんなら、そのdoPostからモデルに行くまでに
どっかでなんかHttpServletRequestを使った処理が挟まってるんじゃないか?
0450デフォルトの名無しさん
05/01/21 03:05:49でもJSPの例もあるわけだから、>>433の上げた、ソースコードを生成して
コンパイラを起動するのが、クラス生成の頻度が少ないなら一番現実的な解かも。
0451デフォルトの名無しさん
05/01/21 03:07:40思ってる香具師がいるが、そもそもクラスとインスタンスの区別
も付いてないようだしね。
もとの質問が最初から「動的にクラスを定義する」(作るじゃなく)
って書いてあればまだ脊髄反射で答える香具師も出なかったんだろうが。
0452デフォルトの名無しさん
05/01/21 06:36:130453デフォルトの名無しさん
05/01/21 07:00:350454デフォルトの名無しさん
05/01/21 08:57:351.バイトに対応するバイト列を動的に生成してClassLoader#defineClassする(難易度高)
2.JavassistやBCELなどのライブラリを使う(難易度中)
3.動的にソースファイルを作って動的にコンパイルし、それを読み込む(難易度低)
なんかがある。
2と3はなんとなくイメージつくけど、1ってVMの知識無いと無理じゃね?Class clをcl.toString()してbyte変換とかするだけじゃ無理っしょ?
0455デフォルトの名無しさん
05/01/21 09:23:09あるフィールドにフォーカスを当てたいんですけど
どうしたらいいでしょうか?
Field.requestFocusInWindow();でいいんですか?
入れるタイミングがわかりません。
0456デフォルトの名無しさん
05/01/21 09:50:54VMの知識っつーか、class ファイルの知識だね。
あと、Javassist は 3. と同程度、BCEL は 1. と同程度の難易度だな。
他にも Groovy とか pnuts みたいなスクリプト言語を使うって手もあるし。
0457デフォルトの名無しさん
05/01/21 13:03:05j2sdk1.4.2_06でメール配信プログラムを書いています。
(activation.jarとmail.jarを使用して)
セミコロン区切りのメールアドレスを配列にsplitしようと
思っているのですが
コンパイルはできるのですが、実行すると
java.lang.NoSuchMethodError
となってしまいます。
基本的なことが分っていない気がするのですが、ご教授お願いします。
(情報が足りなかったら補足します)
よろしくお願いします・・
0458デフォルトの名無しさん
05/01/21 13:03:13Javaのプロジェクトって5の利益を得るために、10の労力がいる様なのが
多いから、いい加減にしてくれって思う事が度々ある。
工数が減るたって後になれば、実はそうでもなかった。だがGrooby独特の
仕様はJavaにない世界を生み出したって結局完全な別言語に進化するのが
オチだろうよ。
回りの新しい物好きのマニアがやり出すと、結局自分も学ばなきゃいかん
ようになるし、それで幾つものフレームワークやライブラリに時間
潰されたからな。
0459デフォルトの名無しさん
05/01/21 13:24:23どのメソッドが原因でjava.lang.NoSuchMethodErrorだったのか不明確ですが、
前後から察するに、java.lang.String#split(String)でしょうか?
その場合、コンパイル時と実行時で異なるバージョンを使っていると思います。
javac に -verboseオプションをつけてコンパイルした時の結果と
java -versionと実行したときの結果を比べ、
本当に1.4.2を使っているのか確認してください。
実行時だけ1.3、というのがありがちです。Oracle入れたときとか。
0460デフォルトの名無しさん
05/01/21 13:26:39リッチクライアントは必然的にAppletしかない?
最近のアプレットって、ビジネスアプリへの適用に耐えうる?
0461457
05/01/21 13:34:39ありがとうございます!
javac *** -verbose ではj2sdk1.4.2_06で、
java -version は1.3.1_01でした・・
1.3.1_01をインストールした記憶はないんですけど・・
対処方はありますか?
よろしくお願いします。
0462デフォルトの名無しさん
05/01/21 13:41:00実行環境がよくわからんが、実行環境がJAVA_HOMEをただしく認識するように設定する
としか言いようがないな・・・
0463459
05/01/21 13:42:40そこまでわかったのなら、環境変数PATHを調べるなり、
PATHの通ったディレクトリにjava.exeがあるか調べるなり、
自分ですることはあるでしょう。
それから、1.3.1なんてインストールした記憶はないといっていますが、
ソフトによっては自前でJREをインストールし、
あまつさえPATHの先頭に追加してしまう厄介なものも存在します。
>>459でもちょっとだけ触れましたけど、Oracleとか。
これが原因で「○○動かない」という声を良く聞きますね。
>>460
それならJavaWebStartですよ。JavaWebStartで作ったソフトを挙げるスレがどこかにあったような。
0464デフォルトの名無しさん
05/01/21 14:24:04htmlを作成しているのですがチェックを入れた項目をフォームのページの
ラジオボタンに引き継ぐプログラムを教えてください
0465デフォルトの名無しさん
05/01/21 14:25:11それはjavaと何か関係あるのか?
0466デフォルトの名無しさん
05/01/21 14:25:34Windows のシステムディレクトリに 1.3.1_01 の java.exe と javaw.exe があるのではないかと推測。
0467デフォルトの名無しさん
05/01/21 14:35:29なるほど、JWSですか。盲点でした。
チェックしてみます。ありがとう。
0468デフォルトの名無しさん
05/01/21 14:42:26Webstartにもアプリケーションとアプレットがある
まぁ最近のといういい方してるけど、1.2以降は十分実用的だよ
1.3で実用的なアプリにも耐えられ、1.4で描画速度がネックにならなくなったしね
1.4以上対応アプリでMemoryImageSource使ってた人を見たときは殴り倒したくなったけどな
リッチクライアントということで業務用と仮定、となると安定度も重要だろうから1.4.2がベストだろうね
0469とおりすがり
05/01/21 16:20:07>1.4以上対応アプリでMemoryImageSource使ってた人を見たときは殴り倒したくなったけどな
特殊なグラフィックローダとかでもだめ?
0470デフォルトの名無しさん
05/01/21 17:16:46抽象から具象ってことでOK?
public class Param
{
public static void main(String[] args)
{
Method method1 = new Method();
method1.setMessage("ええんか");
method1.messageOut();
}
class Method
{
protected String message;
// コンストラクタ略
public void setMessage(String s)
{
message = s;
}
public void messageOut()
{
System.out.println(message);
}
}//おわり
0471デフォルトの名無しさん
05/01/21 17:25:320472デフォルトの名無しさん
05/01/21 17:41:03後はmainメソッドに書いてるように
method1.setMessage("ええんか");のように
括弧の中に具体的な値を好きなようにかけるんですよね?
0473デフォルトの名無しさん
05/01/21 17:48:18当たり前だ。
固定値なら引数で取る意味ねーよ。
0474デフォルトの名無しさん
05/01/21 19:23:17なんでだめなの?
0475デフォルトの名無しさん
05/01/21 20:29:190476デフォルトの名無しさん
05/01/21 21:09:010477デフォルトの名無しさん
05/01/21 21:24:14ありがとう
そうですよね。ちょっと気になってたもんだから・・・
>>475
即席ですから堪忍してーな
0478デフォルトの名無しさん
05/01/21 21:28:34マジレスするとMethodクラスがあるわけだが・・・ConstructorクラスもFieldクラスも
0479デフォルトの名無しさん
05/01/21 22:38:540480デフォルトの名無しさん
05/01/21 22:47:36使われてるところでは使われてる。
役に立つかどうかは作る人と使う人次第。
0481デフォルトの名無しさん
05/01/21 22:48:390482デフォルトの名無しさん
05/01/21 23:04:401.1は遠くになりにけり。
0483デフォルトの名無しさん
05/01/21 23:19:50それを言っちゃーおしまいよ
俺が知りたいのは一般的な話や>>482のよう話
仕事で使う技術なのかどうか?
アプレットを好き好んで使う人は居るのかどうか?
今、入門書でアプレットの章読んでるんだけどツマンネ
0484デフォルトの名無しさん
05/01/21 23:24:12↓
Webアプリの普及によるServlet/JSPなどのJ2EEプログラミングの時代
↓
リッチクライアント導入においてアプレットという選択肢が登場する時代
0485デフォルトの名無しさん
05/01/22 00:13:55しかし既に市場はFlashが席巻している時代、でもある。
JREよりFlashプラグインの方が導入の敷居は低いし
だが、「Javaでリッチクライアントが作れる」ということでJava使いにとって
(そして、Java使いを擁する開発チームにとって)旨味のある選択肢ではある。
Flash作者と業務PGの集合はほとんど重なってないし、ね。
0486デフォルトの名無しさん
05/01/22 00:17:23アプレットも今の時代はプラグイン構造だから
敷居はFlashと変わらないはずなんだけど、情報が全然
広まらないんだよな。
0487デフォルトの名無しさん
05/01/22 00:40:44BufferedImage>>MemoryImageSourceってことなんですね
0488デフォルトの名無しさん
05/01/22 00:41:380489デフォルトの名無しさん
05/01/22 00:59:59サーバサイドプログラマながらiアプリを作らされる羽目に。orz
0490デフォルトの名無しさん
05/01/22 01:13:55クラスを作ってメソッドを定義して、
インスタンス化するとオブジェクトになる
こんな感じでいいんすか?
えろい人教えてください。
0491デフォルトの名無しさん
05/01/22 01:15:23使える範囲がFlashでは弱い
主にリッチクライアントの土俵は業務系だと思うが、
ここではさすがにJavaとFlashではやれる範囲が違いすぎる
そして不特定多数のところではWEBアプリのままで行くと思われ
動的な部分はFlashで
つまり現状維持
Flash方面しらべればわかるがとにかく人手が足りない
というのは鯖のアプリをJavaや.NETでかくのだが、Flashはまた別言語で習得が難しいのだ
たとえばIDEでの生産性の高さとかいろいろと問題山積み
これがJavaや.netでは同一言語でクライアントと鯖をこなすことができて
教育のコストとかいろいろと恩恵がある
0492デフォルトの名無しさん
05/01/22 01:21:43そういうこと
あとはBufferedImageはたとえばWindowsではDIBによるアクセラレーションがきいたりする
まぁG400とか古めでもその辺とくいなビデオチップは今でもJavaの体感速度早かったりするのさ
ちなみにレスポンスはUMAである855GMEとか結構いいのとPentiumMのほうがPentium4より
Javaの動作速度が速いこともあって不思議とデスクトップよりノートのほうが快適だったりする
0493デフォルトの名無しさん
05/01/22 01:24:56今時のリッチクライアントの選択肢としてのアプレットなら -target 1.1 なんてやらんだろ。
-target 1.1 なんてのは絶滅寸前の趣味のアプレットぐらいでしか使われて無い。
0494デフォルトの名無しさん
05/01/22 03:22:03tomcat5.xで、servletなしでjspとbeanだけで動かすことは
出来ますか?
--web-inf--classes(ここのフォルダはなにもなし)--model(package)-xxx.class(bean)
|
--xxx.jsp
こんな構成でbeanをxxx.jspで
<jsp:useBean id="??" class="model.xxx" />
としてもservletを生成してくれないでコンパイルのエラーがでます。(エラー500)
web.xmlとか設定の問題でしょうか?それともservletなしで、jsp+beanだと
ダメなんでしょうか?
0495デフォルトの名無しさん
05/01/22 03:34:30> tomcat5.xで、servletなしでjspとbeanだけで動かすことは
> 出来ますか?
できる。
>コンパイルのエラーがでます。(エラー500)
そのエラーの内容を書かないと適切な回答は得られないぞ
0496デフォルトの名無しさん
05/01/22 06:23:520497デフォルトの名無しさん
05/01/22 06:40:07無償どす
0499デフォルトの名無しさん
05/01/22 07:16:16Servlet+JSP+Bean+データベースで、実行ボタンをクリックしたら
データベースの一覧がJSPで表示されるようなものを考えます。
その際に、Beanはどのように定義するのがよろしいんでしょうか。
自分がやったのは、
1.UserDataというBeanでidとnameをフィールドに持つ。
2.Servletの部分でデータベースと接続し、
ArrayList objAry = new ArrayList();
while(rs.next()){
UserData userData = new UserData();
userData.setId(rs.getString("id"));
userData.setName(rs.getString("id"));
objAry.add(userData);
}
session.setAttribute("user_list",objAry);
そしてJSPに転送。
3.JSPで表示
というものなのですが、3.のところでどう呼び出したらよいか分からないのが一点。
Strutsなら簡単なのですが、Struts使わないとよくわかりません。
もう一つはArrayListもBeanにするべきかどうかという点。
Beanの定義に簡単なsetter,getter以外のメソッドをぐちゃぐちゃかくはめになりそうで嫌なんですが・・。
どなたかよろしければ教えてください。
情報が足りない、とかあれば随時かきこみます。
0500デフォルトの名無しさん
05/01/22 08:21:13<c:forEach var="row" items="${user_list}">
<c:out value="${row.id}" /> <br>
<c:out value="${row.name}" /> <br>
</c:forEach>
こ
0501デフォルトの名無しさん
05/01/22 10:17:48flash知らなさ杉
0502デフォルトの名無しさん
05/01/22 12:14:38MEも98も1.4.2の動作リストに入ってるし
1.1って遅いんだよ?
0503デフォルトの名無しさん
05/01/22 12:16:19Flashとサーバーサイドと2つとも書ける技術者あまりいませんぜ
動的なコンテンツかける人だけならそれなりにつかまえれるけど、
業務系の画面や考え方となるとね
そもそも開発効率がJavaや.NETとくらべて絶対的に悪すぎ
0504デフォルトの名無しさん
05/01/22 12:31:16> Strutsなら簡単なのですが、Struts使わないとよくわかりません。
何も理解しないでStruts使ってるんだな・・・・
0505デフォルトの名無しさん
05/01/22 13:43:21なぜ固定小数点というデータ型がないの?
と、ここで愚痴を言ってもしかたないんだけどねw
0506デフォルトの名無しさん
05/01/22 13:51:14BigDecimal か BigInteger 使え。
0508デフォルトの名無しさん
05/01/22 14:05:52ユーザではなく開発者ではないのか?
ちゃんと作ればユーザは単にボタンを押していくだけで
プラグインのインストールはできたと思ったが。
0509デフォルトの名無しさん
05/01/22 14:26:35まず、ユーザがインターネット接続環境であることが保証されていない。
それから、これは自分は知らないので教えてもらいたいんだけど、
ネットのないユーザに対して、plug-in も一緒に配布したとして、セキュリティソフトが
あれこれメッセージを出したりしない?
それがあるとユーザがビビってしまって問合せをしてきて、ユーザが使っている
セキュリティソフトの情報をしなきゃいけなくなるんだが。
0510デフォルトの名無しさん
05/01/22 14:27:21最後の行 「情報」→「情報収集」 の間違い。
0511デフォルトの名無しさん
05/01/22 14:59:39おお、神がいた!さんくす。
それで、“BigDecimal”でぐぐってみたらこんなページが
http://msugai.fc2web.com/java/class/BigDecimal.html
求めていた答えがぁぁぁぁぁ。どうも有難う!
0512デフォルトの名無しさん
05/01/22 15:00:32本当にどうも有難うぅぅぅぅ!
0513デフォルトの名無しさん
05/01/22 15:06:55仕組みを使うんだけどな。
0514デフォルトの名無しさん
05/01/22 16:06:13釣られたかな?
strutsには、ActionMappingとActionForwadrdというサーブレットと
JSPを明確に関連つける機能があり、さらに任意のパラメーターも
ワンタッチで設定できるので、相互間のやり取りが簡便になります。
従来みたいに、直接パス名からgetRequestDispacherとかして
さらにデータを渡すのにrequest.setAttributeなんてしなくてもいいし
forward時の例外処理も書かなくていいんです。
これ位常識だと思うのですが・・・
0515デフォルトの名無しさん
05/01/22 16:23:51なんで今までStruts使ってたの?
なんで今回はStruts使わないの?
0516デフォルトの名無しさん
05/01/22 16:43:20>ActionMappingとActionForwadrdというサーブレットと
サーブレットではありません
> 従来みたいに、直接パス名からgetRequestDispacherとかして
従来でもそんなことしません
> さらにデータを渡すのにrequest.setAttributeなんてしなくてもいいし
Struts使ってもそうします
0517デフォルトの名無しさん
05/01/22 16:45:32だからStrutsを使ってない段階でStrutsがやってくれてる事は自分で
やらないといけないに決まってるだろ? それが分からんと言ってるって
ことは、Strutsが何をやってくれるもんなのかもよく分からんまま使って
たってことじゃん。
0518デフォルトの名無しさん
05/01/22 16:47:37何の質問なんだこれ?
0519デフォルトの名無しさん
05/01/22 16:52:55・・・・釣り師なら天才かな
>サーブレットではありません
サーブレットの意味分かってる?
>従来でもそんなことしません
RequestDispacherを生成するのにパス名以外の方法なんてありません。
>Struts使ってもそうします
strutsじゃ、属性をセットする事なくパラメーターとして(つまりクエリ文字列)
として渡せます。それに属性のセットもワンタッチでできます。
0520デフォルトの名無しさん
05/01/22 16:56:30内のクラスだろが。いつからサーブレットになったんだよ。
0521デフォルトの名無しさん
05/01/22 16:56:32パフォーマンスの問題です。
さらに経験上、画面遷移数が30を超えるWebアプリだと
strutsでは収集がつかなくなるので、マイフレームワークで今回
試験的に作成する事にしました。
0522デフォルトの名無しさん
05/01/22 17:02:07strutsの限界(ちょっと大げさですが)を感じたから、今回struts抜きの
マイフレームワークで作成して、で、今までstrutsに依存してた部分に
ついての質問をしただけなのですが・・・
何故これでstrutsを分かってない等と言われねばならないのか疑問を
感じます。まあどうでもいい事なんですがね。
単なる煽り厨だったら恥ずかしいし・・
0523デフォルトの名無しさん
05/01/22 17:05:14あなたがどう思おうと、ActionMappingやActionForwardはサーブレットでは
ありません。サーブレットなのは唯一 ActionServletだけ。
ActionForwardを作る方法も最終的にはパス名しかないな。
結局Servlet APIの上で動いているんだから。ただパス名がプログラム内に
出てこないようにXMLとして外だししているだけで。そのXMLは自分で書くん
だし。ActionMappingの定義書いたことあるんでしょう?
最後のは
String path = "/path/to/you/hoge.jsp?param=value"
ってしてRequestDispacherに渡せばいいだけじゃないのか?
ネタでなければただの馬鹿ってことになるんだが。
0524デフォルトの名無しさん
05/01/22 17:07:27> サーブレットの意味分かってる?
この質問はそのままお返ししましょう。
「直接パス名からgetRequestDispacherとか 」
「パス名を引数に渡してjavax.servlet.http.HttpServletRequestオブジェクトから」ならわかりますが「パス名からgetRequestDispacher」は意味不明です。
> strutsじゃ、属性をセットする事なくパラメーターとして(つまりクエリ文字列)
として渡せます。
Struts使わなくても同じです。Strutsだからできると思っているんですか?
>それに属性のセットもワンタッチでできます。
激しく意味不明。
0525デフォルトの名無しさん
05/01/22 17:09:07Strutsが何をやっているのかよくわかってないで使っているってことだろ
0526デフォルトの名無しさん
05/01/22 17:12:02>strutsでは収集がつかなくなるので、
収集つかなくなるやり方しかしてないんだろうな。
XDocletとか使ったこと無いだろ?
0527デフォルトの名無しさん
05/01/22 17:12:45>>ActionForwardを作る方法も最終的にはパス名しかないな。
ActiomMapping#findFowrawr(String name)
の引数のどこがパス名なんですか?
これで「ネタでなければただの馬鹿」ってもう話になりませんね。
サーブレットについては言葉遊びになってるので、これ以上の不毛な
議論はもういいでしょう。
最後のテーマについてもワンタッチできます。
0528デフォルトの名無しさん
05/01/22 17:13:39StrutsがServletのどの部分を吸収しているのか理解しないまま
「分かってます」「マイフレームワークです」とかいっても、そりゃ
「なにも理解しないでStruts使ってるんだな」と言われても仕方がないと思う。
まず「分かってません」ってところから始めないと、まともなものが
出来ないと思うよ、本気で。
0529デフォルトの名無しさん
05/01/22 17:16:58不可能です。struts-configを別エンティティに分割したりしましたが
結局は、本質的に同じです。
もっと、ビジュアルなマッピング図が必要だと考えてます。
strutsは何より凡用性を重視してますので、それ以上を求めるのは酷だってのは
理解してるんですけどね。
0530デフォルトの名無しさん
05/01/22 17:18:25> ActiomMapping#findFowrawr(String name)
> の引数のどこがパス名なんですか?
本当に何もわかってないで使ってたんだな。
HttpServletRequset#getRerquestDispatcher() の引数に
直接パス名を指定しないで、外部設定ファイルにパスを設定し
それを読み込む、という方法にすれば同じじゃないか。
> これで「ネタでなければただの馬鹿」ってもう話になりませんね。
これはそっくりそのまま返すよ
0531デフォルトの名無しさん
05/01/22 17:20:31これ以上の煽り意見につき合う気はないので、そろそろ
最後にしますが、私がstrutsを分かってないって
明確なソースは何なのか?
まあ、どうでもいいのですけどね。実際に私がWEBアプリを
開発してるのは事実なんですから・・・
0532デフォルトの名無しさん
05/01/22 17:23:26> Strutsなら簡単なのですが、Struts使わないとよくわかりません。
これにつきる
0533デフォルトの名無しさん
05/01/22 17:24:27おまえ、ほんとに>>523読んだのか? findForwardしたらActionForwardが
返ってくるが、ActionForwardにはパス名が必要。だって最後にはServlet API
のforward()を呼ぶんだから。
# ついでにいえば、getNamedDispacher()ってのもあるんだぞ。
だからそれをstruts-config.xmlに<ActionMapping>やらで定義するんだろ。
XMLにパス名を書くだろが。必要なんだからどっかに書くしかないよな。
だれかがXML書いてくれるんでxmlなんて書いたことないのか?
念のためいっとくが、この、具体的なパス名を抽象化してフォワード名として
扱うような機能な、おまえがマイフレームワークで自分で実現しないといけない
機能の一つなんだぞ?
さらにいえば、ActionMappingがServletでないのは言葉遊びでもなんでもなく、
明確な事実だよ。web.xmlに設定するサーブレットはActionServletだけだし、
そもそもActionMappingもActionForwardもHttpServletクラスを継承してない。
当然web.xmlに設定してサーブレットとして呼び出すことも出来ない。
ActionServletが内部で使う一つのクラスに過ぎない。
何言ってんのほんと?
0534デフォルトの名無しさん
05/01/22 17:25:07このスレは十分に明確なソースだと思うが....
0535デフォルトの名無しさん
05/01/22 17:27:00ちゃんと収集がついてるけどねえ。
0536デフォルトの名無しさん
05/01/22 17:35:20そこら辺は人によりけりでしょう。
人によっては、OOP無し書かれた大規模なソースも、上手く構造化
されてると見ますからね。
自分はソフトウェア理論から入りましたので、actiom-mappings内の
羅列には抵抗を覚えます。設計に厳しい面がありますので・・
0537デフォルトの名無しさん
05/01/22 17:36:06だから、XDoclet使えって
0538デフォルトの名無しさん
05/01/22 17:39:20いいんでない?
まあStruts自体に問題ありだとは思うけどね。おれはActionMappingより
特にActionFormの存在意味がほとんどないのがな....
0539デフォルトの名無しさん
05/01/22 17:43:100540デフォルトの名無しさん
05/01/22 17:47:53>>531は正直言って開発者に向いてないと思う。
100あることを100知ってるような発言するくせに、他人の意見についてなんら検証してないでしょ。
自分が正しいことを証明するのは難しいかもしれないけど、他人の意見に間違いがあるなら
それをちゃんと理由付きで説明できないと仕事でやってく人間としては失格だよ。
0541デフォルトの名無しさん
05/01/22 17:48:390542デフォルトの名無しさん
05/01/22 17:50:12531は他人についてのみならず
自分のしたいことや、自分のわかっていること・わかっていないことを
他人に説明する能力も著しく欠けているよ
0543498
05/01/22 17:51:28ありがとうございます。JSTLという存在をおかげさまで知ることができました。
一覧作成もできました。
>>504
はい、Java暦3ヶ月で・・まごうことなき初心者です
Strutsはサンプルとしてコードをみせてもらったことがあるぐらいで、
自分ではほとんど書いたことはありません。
Strutsでここまで議論になっているところをみると、
みなさん使っているんですねー。
0544デフォルトの名無しさん
05/01/22 17:54:45ActionFormの欠点は、大きなファイルのアップロード時にメモリ不足に
なりやすい事ですね。全部読み込んでActionFormインスタンスに
してしまうのですから・・・
データを部分的に順に読み込んで、順次データベースに転送するって
方法が使えないので、そこら辺は仕方なくコールバックタイプの
フォームデータ読み込みBeanを作成しました。
0545デフォルトの名無しさん
05/01/22 19:08:54Object.notify()
がObjectクラスにある必要がよくわからんです。
MutexクラスやRockクラスを用意するより基底クラスで実装するもんなんでしょうか。
0546デフォルトの名無しさん
05/01/22 20:11:03たとえば、
//文字列strをpassを使って暗号化
String encode = EncryptClass.encrypt(str, pass);
//暗号化した文字列encodeをpassを使って復号化
String decode = DecodeClass.decode(encode, pass);
こんな感じで簡単に使用できるクラス・メソッドって
ないでしょうか?暗号の強度などは気にしません。
パッと見てよくわからない文字列になればいいです。
どなたかよろしくお願いします。
0547デフォルトの名無しさん
05/01/22 20:17:07文字列もpassもchar[]かbyte[]にしてxorして16進文字列に変えるとかどう?
それくらいなら自前で作れるでしょ。
0548デフォルトの名無しさん
05/01/22 20:17:100549デフォルトの名無しさん
05/01/22 20:22:34で、もう一回同じ値で xor して元に戻す
0550デフォルトの名無しさん
05/01/22 21:51:29Jakarta Commons CodecでBase64かHexに変換したらいい。
ttp://jakarta.apache.org/commons/codec/
Base64 codec = new Base64();
byte[] encoded = codec.encode( "なんか文字列");
という感じで使えるよ。
0551デフォルトの名無しさん
05/01/22 21:59:48非常に便利であっても、それを素人が使うと
問題が出てくる可能性のある場合、
その芽は予め摘み取っておく。
これが Java の思想。
0553デフォルトの名無しさん
05/01/23 01:26:09webapp
|
+--myApp
|
+-lib
+ bar.jar
|
+subLib
+ foo.jar
こういうディレクトリ構成の場合、bar.jar、foo.jar共にクラスパスを通してやりたいと
思っています。しかしながら、通常Tomcatの場合はlib直下のディレクトリには
クラスパスが通りますが、subLibディレクトリ以下のjarファイルにはクラスパスは
通りません。
みなさん、このような場合は、どのように解決すればよろしいでしょうか。
0554デフォルトの名無しさん
05/01/23 01:27:160555デフォルトの名無しさん
05/01/23 01:38:03技術的な制約ではなくなにか別の理由でサブディレクトリを
作ってはいけないのですよね。その理由をお聞かせください。
0556553
05/01/23 01:44:26そうですね。理由といえば、論理的にライブラリディレクトリを分けておきたいといったところでしょうか。
大規模なwebアプリになってくるとjarファイルだけでも数十になってきたりします。
特にオープンソースのコンポーネントを多数使っている場合に数が多くなってしまいますので
せめてディレクトリを分けることにより、開発者に「このコンポーネントはこのディレクトリ配下の
jarファイルで構成されている」ということを認識してもらいたいからです。
たとえディレクトリに分けてjarを配備してもAppコンテナから見れば並列に扱われればいいので
なんとかして上記のような構成にしたいと思っています。
0557デフォルトの名無しさん
05/01/23 02:05:14どうしたいいのでしょうか
BufferedImageのgetRGBメソッドを使っても
ぜんぜん違う値になってしまいます
以下ソースです
BufferedImage bi = ImageIO.read(new FileInputStream("hoge.jpg"));
int pixel = bi.getRGB(0,0);
System.out.println((pixel & 0xff));
画像がRGB画像の場合では上記のソースで正しくRGBの強度
を得ることができました
0558デフォルトの名無しさん
05/01/23 02:09:47Servlet仕様では/コンテキスト/libではなく
/コンテキスト/WEB-INF/libなのだが。
0560デフォルトの名無しさん
05/01/23 02:17:18import java.awt.event.*;
import javax.swing.*;
public class A extends JFrame implements Runnable, ActionListener {
String[] str = { "1", "2", "3", "4" };
JButton jButton = new JButton("Draw"),jButton2 = new JButton("Stop"),
jButton3 =new JButton("Open");
JComboBox jComboBox = new JComboBox(str);
Image image;
Graphics g, buf;
Thread thread = null;
private boolean flag;
public static void main(String[] args) {
A jFrame = new A();
}
A() {setBounds(0, 0, 400, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBackground(Color.WHITE);
Container con = getContentPane();
con.setBackground(getBackground());
con.setLayout(new FlowLayout());
jButton.addActionListener(this);
jButton2.addActionListener(this);
jButton3.addActionListener(this);
con.add(jComboBox);con.add(jButton);
con.add(jButton2);con.add(jButton3);
setVisible(true);g =getGraphics();
image = createImage(getWidth(),getHeight()
- (getInsets().top + getInsets().bottom
+ jButton.getY() + jButton.getHeight()));
buf = image.getGraphics();
}
0561デフォルトの名無しさん
05/01/23 02:17:59while (flag) {
myPaint();
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
}
private void myPaint() {
buf.setColor(Color.BLUE);
buf.fillOval(50,50,100,100);
g.drawImage(image, 0, getInsets().top + jButton.getY()
+ jButton.getHeight(), this);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jButton) {
if (thread == null) {
flag = true;
Thread thread = new Thread(this);
thread.start();
}
}
if (e.getSource() == jButton2) {
flag = false;thread = null;
}
if(e.getSource()==jButton3){
JOptionPane.showMessageDialog(this,"test");
}
}
}
0562デフォルトの名無しさん
05/01/23 02:19:18上のプログラムでDrawボタンを押した後、コンボボックスをクリックすると
(drawImageで上書きされて?)すぐに消えてしまいます。
消えないようにするためにはどうすればいいですか?
また、しかしながら、Openボタンを押した後ならすぐに消えません。それはなぜですか?
教えてください。
0563デフォルトの名無しさん
05/01/23 02:28:32BufferedImageのピクセルフォーマットが何になってるかとかしらべてみそ
0564557
05/01/23 02:49:38すみません,ピクセルフォーマットの情報は
bi.toString()
のなかにありますか?
いちおうBufferedImage.javaやColorModel.java等の
ソースを見てみましたが,さっぱりわかりませんでした
0565556
05/01/23 03:05:45自ら誘導されて行ってきます。。。
スレ汚し失礼しました。
0566デフォルトの名無しさん
05/01/23 04:55:28bi.getType()
0567デフォルトの名無しさん
05/01/23 05:02:29>ActionMappingとActionForwadrdという/
>サーブレットとJSPを明確に関連つける機能
という具合に切って読むんですよね?なんか、
>ActionMappingとActionForwadrdというサーブレット/
>とJSPを明確に関連つける機能
という感じで話が進んだようですが、微妙に気になる。。。
0568デフォルトの名無しさん
05/01/23 07:43:160569デフォルトの名無しさん
05/01/23 07:59:14public static void main(String arg[]){
int siire_ne1, teika1, kosuu1, goukei;
int siire_ne2=200, teika2, kosuu2=3;
siire_ne1=100; kosuu1=2;
teika1=siire_ne1+10;
teika2=siire_ne2+15;
goukei=teika1*kosuu1+teika2*kosuu2;
System.out.println(goukei);
double zeikomi1, zeikomi2;
zeikomi1=houhou1(teika1); //メソッドの利用
zeikomi2=houhou1(teika2);
System.out.println("1:\t"+zeikomi1); //タブの出力
System.out.println("2:\t"+zeikomi2);
/* ここから2行は、特殊文字の説明です */
System.out.println("1234"+"5678901234567890"+"\n");
System.out.println("1234\t123\t12.");
}
/* ここからはメソッドhouhou1の定義です */
public static int houhou1(int teika){
double waribiki, urine_ne, zei;
waribiki=0.2; zei=0.05;
uri_ne=teika*(1-waribiki);
return(int) (uri_ne*(1+zei));
}
}
23、24行目でシンボルが解決できないそうです。何故なんでしょうか?
0570初心者 ◆Java/isQ.c
05/01/23 08:08:56宣言されていない変数 uri_ne が使われているからだと思いますが。
21行目の urine_ne を uri_ne にすれば良いんじゃないでしょうかね。
0571デフォルトの名無しさん
05/01/23 08:18:490572デフォルトの名無しさん
05/01/23 12:56:57なるほど!
おれも後者で読んでたクチですな。
0573デフォルトの名無しさん
05/01/23 13:13:48大多数は後者で理解してるでしょ。
ていうか書いた本人も後者の意味で書いていると思う。
ActionMappingとActionForwadrdサーブレットじゃないという
レスにも何も返答できてないし。
0574デフォルトの名無しさん
05/01/23 15:43:52最小化、最大化、閉じるボタンは表示したいです。
<a href="" onclick='window.open( "GAMEN.HTML", "maxsize")'>GAMEN</a>の様な感じです。
IEとネスケで開きたいです。
0575デフォルトの名無しさん
05/01/23 15:58:20>>1
> JavaScriptの質問は、ここでは受け付けていません。
> Web製作板をご利用ください。http://pc5.2ch.net/hp/
0576デフォルトの名無しさん
05/01/23 15:59:21>>1の下2行
0577デフォルトの名無しさん
05/01/23 16:01:29>>576
すみませんでした。
吊ってきます。
0578デフォルトの名無しさん
05/01/23 19:00:470580デフォルトの名無しさん
05/01/23 20:54:38ある文字列が整数かどうかを判定する時に、
Integer.parseInt(id);
でエラーがでるか否か以外にシンプルな方法ありますでしょうか。
よろしければ教えてくださいませ。
0581デフォルトの名無しさん
05/01/23 20:57:180582デフォルトの名無しさん
05/01/23 21:16:34バージョン5.0に乗り換えた方がよかですか?
0583デフォルトの名無しさん
05/01/23 21:19:220584デフォルトの名無しさん
05/01/23 21:22:430585デフォルトの名無しさん
05/01/23 21:38:11public class Oya{
// 略
equals(Object o){ // equalsの実装
// 略
}
}
public class Ko extends Oya{
// 略
equals(Object o){
// 略
}
}
という2つのクラスがあり、
あるところで
boolean oyadehikaku(Oya o){
Oya oya = (Oya)getObj(); // getObj()はKoを返すメソッド
return oya.equals(o);
}
といった感じでOyaレベルで比較したいのですが、
getObjで返されるオブジェクトがKoなのでKoのequalsメソッドで
比較してしまいます。
このような場合どのようにしてOya#equalsを利用するのでしょうか?
0586585
05/01/23 21:39:59上の2つのメソッドの前に戻り型のboolean付けるの忘れてました
すいません
0587デフォルトの名無しさん
05/01/23 21:46:480588デフォルトの名無しさん
05/01/23 21:48:54プログラマは性格がねちねちしてるやつ多すぎ
0589デフォルトの名無しさん
05/01/23 21:50:270590デフォルトの名無しさん
05/01/23 22:20:20例えば?
0591デフォルトの名無しさん
05/01/23 22:22:490592デフォルトの名無しさん
05/01/23 22:27:56>>590
0593デフォルトの名無しさん
05/01/23 23:22:45おまえらもスルーしたらいいんじゃない
0594デフォルトの名無しさん
05/01/23 23:53:59{
this.i=i;
this.y=y;
this.o=o;
}
というインスタンスメソッドがあるとします。これを
P3(int i, int y, int o)
{
this(i, y, o)
}
というふうに書いてたら間違いですか?
0595デフォルトの名無しさん
05/01/24 00:05:09一年次からJAVAが必修になっているらしいので、JAVAを初めから勉強したいと思います。
おすすめの本を教えてください。
0596デフォルトの名無しさん
05/01/24 00:05:34無限ループになるのでは?
0597デフォルトの名無しさん
05/01/24 00:05:490598デフォルトの名無しさん
05/01/24 00:09:12高橋麻奈 やさしいJava
0599デフォルトの名無しさん
05/01/24 00:09:57お勧め本スレがどっかにあったはず。
0601595
05/01/24 00:26:59参考になりました。ありがとうございました。
0602デフォルトの名無しさん
05/01/24 01:25:32焦るな。やりたいことを、やりたいだけやっとけ。
0603デフォルトの名無しさん
05/01/24 01:33:11画像の読み込みで同一のクラスで読み込めるものってありますか?
0604デフォルトの名無しさん
05/01/24 02:22:22本もいいけど、JAVAのドキュメントはかなり丁寧に解説してると思う。
たいていの本に書いてある、Hello worldから始まって、OOPが云々・・・
というのもチュートリアルにある。
http://java.sun.com/j2se/1.4/ja/docs/ja/
http://java.sun.com/docs/books/tutorial/index.html
0605デフォルトの名無しさん
05/01/24 02:46:28オブジェクト指向の原理的に無理。
それとは関係ないがそもそもその例では
Ko クラスで equals メソッドをオーバライドしてるので
a.equals(b) が true なのに b.equals(a) が false になるようなことが
起こる可能性があり、非常によくない。
どうしてもやりたかったら static boolean equals(Oya o1, Oya o2)
みたいなメソッドを Oya クラスに追加するのが簡単。
0606デフォルトの名無しさん
05/01/24 04:25:58javaにインスタンスのフィールドの値が変更されたときに呼ばれるリスナーのメソッドってありますか?
0607デフォルトの名無しさん
05/01/24 06:07:25ない
よってむり
Cでオブジェクト指向やるようなもん
0608デフォルトの名無しさん
05/01/24 06:17:33import java.util.*;
public class e12{
public static void main(String arg[]){
String line,s1;
int i,j;
double sum=0.0;
try{
//JDK1.0.対応;1.1の時「推奨されないAPI」の警告メッセージ
// dataInputStream fi =
// new DataInputStream(new FileInputStream("data3.txt"));
//JDK1.1.対応;
BufferedReader fi=
new BufferedReader(new FileReader(data3.txt));
while((line=fi.readLine())!=null){ //最終行か?
StringTokenizer tk=new StringTokenizer(line,",");
j=tk.countTokens();
System.out.println("["+j+"]tokens ->");
for(i=0; i<j; i++){
s1=tk.nextToken(); //トークン抽出
System.out.print("\t"+s1);}
System.out.println();}
fi.close();}
catch(FileNotFoundException e){ //ファイルがない時
System.err.println("FileStreamsTest:"+e);}
catch(IOException e){ //入出力エラーの時
System.err.println("FileStreamsTest:"+e);}
}
}
実行時に読み取るファイルをコマンドラインで指定できるように修正せよ。上で修正したプログラムを存在しないファイル名で指定して実行し、ディスプレイにメッセージを表示させよ。
マジわかりません、教えてください
0609デフォルトの名無しさん
05/01/24 06:19:52再読込みで同じデータが送信されてしまうのを
区別する方法ってありますか?
JSPでじゃんけんプログラムで困っています・・。
0610デフォルトの名無しさん
05/01/24 06:35:44どの部分がわからないのかが不明だから答えようが無い。
>>609
フォームにhiddenでフォーム表示時の時分秒+IPを埋め込む。
JSPのセッション管理で前回の時分秒+IPを保持しておき、
同じ値だったらリロードされたと判断できる。
0611デフォルトの名無しさん
05/01/24 06:38:38但しこの方法だと1秒に1回しか送信できない。
マイクロ秒まで埋め込むことができれば問題ないが。
hiddenで時分秒を埋め込むには、フォームをperlかPHPで表示するか、
JavaScriptのOnLoadかOnSubmitを使う。
0612608
05/01/24 06:46:35修正ってどこ修正するのかもわかりません。
0613デフォルトの名無しさん
05/01/24 06:47:51そのレベルは質問以前の問題だから、入門サイトを隅から隅まで嫁。
0614デフォルトの名無しさん
05/01/24 06:52:02>>611
返事はやっ
ありがとうございます!!なるほどなぁ、やってみます。
0615デフォルトの名無しさん
05/01/24 06:53:35コマンドラインから入力した文字を表示する
public static void main(String[] args) {
System.out.print(srgs[0]);
}
0616デフォルトの名無しさん
05/01/24 06:53:530619デフォルトの名無しさん
05/01/24 11:19:06mysqlのdate型で0000-00-00という値をgetDateやgetStringで取り出そうとするとエラーがでてしまいます。
普通の日付だったらうまく取り出せるんですが…
何かいい方法はないでしょうか?よろしくお願いします。
0620デフォルトの名無しさん
05/01/24 11:42:440月0日って有り得ないだろ。
データを見直せ。
0621デフォルトの名無しさん
05/01/24 12:07:17データを入力するときに日時を指定しなかったり、間違った日時を入力したとき、
デフォルトで0000-00-00という値が入るようになっているんですが、これは間違った使い方なのでしょうか?
mysqlのリファレンスでも0000-00-00という値が入ると書いてあるので問題ないと思っていました。
まだ初心者なので見当違いのことを言っていたらすみません。
できるだけ仕様を変えたくないのでうまく取り出す方法がありましたら教えてください。
0622デフォルトの名無しさん
05/01/24 12:15:030623デフォルトの名無しさん
05/01/24 12:22:080624デフォルトの名無しさん
05/01/24 12:55:35入力が無いならまだしも、間違った日時が入力できるっていうのは駄目だろ。
それは置いといて、もしnullがないのなら日付が有効か無効かを示すための項目を一つ増やせ。
それで無効の時は日付に1990-01-01とかなんでもいいから入れとけ。
0625デフォルトの名無しさん
05/01/24 15:03:14自分で作ったclassファイルを使いたいのですが
どのように置けばよいでしょうか?
とりあえず
\WEB-INF\classes\aaa
の中に入っていて
package aaa;
とJSPの中で書いて呼び出していますが
The server encountered an internal error ()
that prevented it from fulfilling this request.
とエラーが出ます。
tomcatをインストールしたときに
一緒にサンプルも入れたのですが
そちらのWEB-INFにはweb.xmlというファイルが入っていました。
このxmlファイルで登録(?)とかしないと駄目なんでしょうか?
0626デフォルトの名無しさん
05/01/24 15:31:14JSPの書き方が間違ってるんじゃねーの?
0627デフォルトの名無しさん
05/01/24 15:36:34Tomcatではデフォルトパッケージ(パッケージ宣言無し)のクラスは
インポートされないので、クラスはパッケージ宣言付きで実装し、
/WEB-INF/classes/パッケージ名に配置するべし
0628625
05/01/24 16:10:28JSPの書き方を間違えていた模様です。恥ずかしき。
ただちょっと気になったのですが
staticで書いたメソッドは
インスタンスを作らなくても呼び出せる
と本にあったのですが
実際は
作らなかったらエラーで
作ったら正常に動作しました。
そういうものなんでしょうか?
0629デフォルトの名無しさん
05/01/24 16:34:45またJSPの書き方かメソッドの定義の仕方間違ってるんじゃねーの?
0630デフォルトの名無しさん
05/01/24 16:53:54package foo;
class Bar{
public void buz(){}
public static void hoge(){}
}
で、JSPでこう書いたと。
<jsp:useBean id="bar" class="foo.Bar" scope="request"/>
<% bar.buz(); %>
なら上手くいって
<% Bar.hoge(); %>
で怒られるとか。
0632デフォルトの名無しさん
05/01/24 16:59:45> そういうものなんでしょうか?
あなたのコードが間違っている可能性大。
0633デフォルトの名無しさん
05/01/24 19:24:22sjisに変換したいのですが、どうしたらよいのでしょうか?
0634デフォルトの名無しさん
05/01/24 20:37:08つ java.nio.CharSet, java.nio.CharSetDecoder
0635デフォルトの名無しさん
05/01/24 21:25:56class Lock{
public foo(){
synchronized(this){
hoge();
}
}
}
で複数スレッドが
Lock lock = new Lock();
lock.foo();
したときってlockインスタンス別なんだから期待したロックが
かからないんじゃーって思う。
馬鹿にもわかるように解説してくれる方はおりませぬか。.
0636デフォルトの名無しさん
05/01/24 21:42:12例) System.out.println("日本語を出力");
サーバーは、redhat9です。
sshから実行した場合は、問題ありません。
いろいろ調べてみたのですが、どうしても解決できません。
cronでの文字化けを解決するには、どのようにすればよいのでしょうか?
0637デフォルトの名無しさん
05/01/24 22:13:26classが作られディレクトリにパッケージのホルダーを作って
いるのですが、それを使うソース(classと同じディレクトリ
に置いている)をコンパイルすると、
パッケージ xxxxx は存在しません。
import xxxxx.*;
sdk1.3のとき問題なくコンパイルできたのにj2sdk1.4.2_06
だとうまくいきません。
なぜでしょうか?
と、エラーになるのですが。
0638デフォルトの名無しさん
05/01/24 22:15:15Javaの勉強を再開した者です。
classが作られディレクトリにパッケージのホルダーを作って
いるのですが、それを使うソース(classと同じディレクトリ
に置いている)をコンパイルすると、
パッケージ xxxxx は存在しません。
import xxxxx.*;
と、エラーになるのですが。
sdk1.3のとき問題なくコンパイルできたのにj2sdk1.4.2_06
だとうまくいきません。
なぜでしょうか?
0639デフォルトの名無しさん
05/01/24 22:19:26環境変数が設定されてないね。
cronから実行されるスクリプトに
echo $LANG > /var/log/cron.log
とか追記してから、cronに実行させて、
日本語に対応したロケールが設定されているか確認して。
0640デフォルトの名無しさん
05/01/24 22:58:27その例ではまったく意味ない。
複数スレッドで「一個」の Lock オブジェクトを使う場合に意味がある。
例えばこんな感じ。
final Lock lock = new Lock();
for (int i = 0; i < 10; i++) {
new Thread() {
public void run() {
lock.foo();
}
}.start();
}
0641デフォルトの名無しさん
05/01/24 23:17:28こんな表示がでてJARになりません。JARになっても中身がからっぽです。
c:\MyApplet>jar cvfm Sentou.class Mikata.class Teki.class WinLose.class
java.io.IOException: invalid header field
at java.util.jar.Attributes.read(Attributes.java:355)
at java.util.jar.Manifest.read(Manifest.java:162)
at java.util.jar.Manifest.<init>(Manifest.java:52)
at sun.tools.jar.Main.run(Main.java:124)
at sun.tools.jar.Main.main(Main.java:904)
どうしたらいいのですか?
0642デフォルトの名無しさん
05/01/24 23:19:58> jar
と打って出てくる文章を読め。
0643デフォルトの名無しさん
05/01/24 23:19:59System.out.println(java.net.InetAddress.getLocalHost());
}catch(UnknownHostException ex){
//ここでは何をするべきなんでしょうか。
//というかどんな場合にここに来るんでしょうか。
}
0644デフォルトの名無しさん
05/01/24 23:40:20ttp://www.geocities.co.jp/SiliconValley/6064/java_link.html
0645デフォルトの名無しさん
05/01/24 23:49:44組合(いわゆる日教組)から30万円も貰ったんだと嬉しそうに言っていた。
組合のおかげで1年間病気で休んでも給料は普通に出るそうだ。
日教組が反日教育を行っており日本の子供たちにどんどん悪影響を及ぼしているにも関わらず、
日本の馬鹿教師達は、日本の将来を背負ってたつ希望に満ちた学生たちに対して
毎日のように反日教育を繰り返しているのである。
「学生にオススメの新聞は朝日新聞だよ」などと学生たちに吹き込みながら。
日本の教育は今後どうなっていくのだろうか
0646デフォルトの名無しさん
05/01/24 23:57:46JARファイルは作成できました!
が、ダブルクリックでは何も起こりません。どうしたらダブルクリックで起動するようにできますか?
0647デフォルトの名無しさん
05/01/25 00:04:500649デフォルトの名無しさん
05/01/25 00:48:42一応書いておくけど、単なるプロパティ(Getter/Setter)にデフォルトでそういう機能はないけど、
JavaBeans仕様の一部としては、バウンドプロパティというのがある。プロパティの値が変更さ
れると、PropertyChangeListerとして登録されてるリスナにPropertyChangeEventを送るという
仕様がある。
むろんBean作成者が自前で実装するわけだが、さすがにそんなもん実装してられないので、
PropertyChangeSupportというクラスに移譲すれば良きに計らってくれる。
addPropertyChangeListenerもfirePropertyChnageも全部こいつに移譲で幸せになれる。
0650635
05/01/25 00:50:27うぉーサンクス!納得しますた。
java言語仕様にスレッド関連の項目いっぱいあるけど、
そこらへんについて書いてあるところが上手く探せなかった。
本当ありがとう。
0651デフォルトの名無しさん
05/01/25 01:28:04LockインターフェースなるものがJ2SE5にあるので
紛らわしい名前は控えたほうがいいかと
ちなみにこうやって書く
lock.lock(); // block until condition holds
try {
// ... method body
} finally {
lock.unlock()
}
クリティカルセクションとかやってた人にとってはこっちがわかりやすいかな?
パフォーマンスもsynchronizedよりかなり高い
0652デフォルトの名無しさん
05/01/25 04:20:210653デフォルトの名無しさん
05/01/25 04:39:48何故子クラスが親クラスのインポート受け継がないんです?
ご支援ご鞭撻の程宜しくお願い申し上げます。
願わくば、自分のキャパが狭いので簡潔に教えてください。
0654デフォルトの名無しさん
05/01/25 04:44:060655デフォルトの名無しさん
05/01/25 07:13:070656質問です
05/01/25 08:42:40それでUSB接続のゲームパッドを使いたいのですが、ボタン入力を
KeyListenerで取れるかなーと思っていたら、取れませんでした。
Σ(>д<;)ショーック!
[Java ゲームパッド]で物知りなGoogleさんに聞いみたのですが、
分かりやすい答えが返ってきませんでした。
ΣΣ(>д<;)ダブルショーック!
ゲームパッドの入力を取るにはどうしたら良いのでしょうか?
m(>_<;)m ム板の皆さん、教えてください!!!
0657656
05/01/25 08:46:36Connection conn = null;
try {
conn = myDatabase.getConnection();
// 例外が投げられるかもしれない処理…
} catch (Exception e) {
return result;
} finally {
if ( conn != null ) conn.close();
}
// 続きの処理…
0658デフォルトの名無しさん
05/01/25 08:52:12士郎よ、お前は何もわかっておらん!
finallyはtry、catchの中でreturn、throwしてても必ず通る。
catchの後に書いた文などとは格が違うのだ!
0659656
05/01/25 09:20:28えーとね、>>657を実行して例外が投げられるとね、あたかも
Connection conn = null;
conn = myDatabase.getConnection();
// 例外が投げられるかもしれない処理…
if ( conn != null ) conn.close();
return result;
って書いたように実行されるんだよ。でね、例外が投げられないときには、あたかも
Connection conn = null;
conn = myDatabase.getConnection();
// 例外が投げられるかもしれない処理…
if ( conn != null ) conn.close();
// 続きの処理…
って書いたように実行されるの。
必ずやらなきゃいけない後始末の処理を finallyブロック に書くと、
すっごく便利だよね!(>_<)b
0660デフォルトの名無しさん
05/01/25 09:28:20ヒントだけでもお教えいただければ幸いです。
アプレットでするプログラムをアプリケーションで実行させようと試み、以下のように変更いたしました。
import java.applet.Applet;
↑を削除
public class Image2 extends Applet implements Runnable {
↑をpublic class Image4に変更
上記のように変更したところ、エラーがたくさん出てきました。
もしかしてアプレットで使えてもアプリケーションでは使用できないような記述があるのでは、と考えましたがさっぱりわかりません。
よろしければご教授願います。
0661660
05/01/25 09:29:57public class Image2 extends Applet implements Runnable {
ではなく、
public class Image4 extends Applet implements Runnable {
です。
0662デフォルトの名無しさん
05/01/25 09:51:58まずextends Appletという時点で違うだろ
0663660
05/01/25 10:00:11そのプログラムはサイトから参照したものなので、よくわからないまま使ってました・・・
アプリケーションで実行するためにはどうしたらいいでしょうか?
0664デフォルトの名無しさん
05/01/25 10:33:28ttp://www.hellohiro.com/swing.htm
ここでも見て初めから勉強し直せ
0665デフォルトの名無しさん
05/01/25 11:28:13public static void main(String[] args) {
Image2 apl = new Image2();
apl.init();
JFrame frm = new JFrame();
frm.getContentPane().add(apl);
frm.setSize(600, 480);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setVisible(true);
}
このコードをアプレットクラスImage2内に含めればOK。
で、普通に実行する。
0666デフォルトの名無しさん
05/01/25 11:37:220667660
05/01/25 11:54:22ありがとうございます。
参考にさせていただきます。
>>665
含めてみましたが、その文にもエラーが出てしまいました・・・
使用ソフトはeclipse3.0です
0668デフォルトの名無しさん
05/01/25 11:56:160669デフォルトの名無しさん
05/01/25 12:02:28Mavenをプロジェクトで使ってる人って居る?
何か既存のプロジェクトにMavenを使おうとしたんだけど
難しくて良く分からん・・・。
0670デフォルトの名無しさん
05/01/25 12:05:21いる
0671660
05/01/25 12:58:47Syntax error on tokens, InterfaceHeader expected instead
Syntax error on token "init", Identifier expected after this token
Syntax error on token "getContentPane", Identifier expected after this token
このようなエラーが出てきます。
0672デフォルトの名無しさん
05/01/25 13:31:04おおっ、すげぇ。
どうやって使い方マスターしたんですか?やっぱapacheのサイトを熟読?
もし参考サイトとかあったら教えてくれぃ。
0673655
05/01/25 14:12:35>>658
ありがと!
catchの中でプログラムが終了して困る場合に有効なわけですね。
finallyは敗戦処理野郎と。
んでもcatchの中って、
catch (Exception ex) { ex.printStackTrace ();}
とか、
catch (SQLException ex) {
System.err.println("SQL State : "+ ex.getSQLState());
System.err.println("ErrorCode : "+ ex.getErrorCode());
}
ぐらいしか今の所書いたことないなくて・・
あんまりありがたみが・・。
0674デフォルトの名無しさん
05/01/25 14:49:48例えばtry〜catchの間でDBに対する何らかの処理を行っていて、その処理が
正常終了出来ずにExceptionが発生した場合でも、finallyにDB接続のクローズ処理を
書いておけば、間違いなくクローズされるようになる。
多分こんな感じ。
0675デフォルトの名無しさん
05/01/25 16:59:130676sasa
05/01/25 17:21:57?教えてください。
0677デフォルトの名無しさん
05/01/25 17:27:06すいません。言われるとおりDB接続の例外、finally、クローズ処理を
描いてみたのですが・・・
Connection con = ds.getConnection();
try {
Statement st = con.createStatement(・・・
} catch (Exception ex) {
} finally {
try {
con.close();
} catch (Exception ex2) {
try {
con.close();
} catch (Exception ex3) {
(ここにさらに入れ子になる・・・)
}
}
}
って無限入れ子ループに陥ってしまいました。どうすれば完全確実に
Connectionをクローズできるのでしょうか?
0678sasa
05/01/25 17:28:02?教えてください。
0679デフォルトの名無しさん
05/01/25 17:29:47JPanelをボーダーレイアウトにして、JLabelを配置する。JLabelに画像をセットする。
0680デフォルトの名無しさん
05/01/25 17:40:080681デフォルトの名無しさん
05/01/25 17:52:44おまいはアホか。
一旦クローズで失敗したら、あきらめろ。
例外をログにでも吐いて抜け出せ。
0682sasa
05/01/25 17:58:03何度もすいません。
0683sasa
05/01/25 18:14:26何度もすいません。
0684sasa
05/01/25 18:23:37Jlabelのどこに画像をセットすればよいのですか?
ほんとにすいません。
0686デフォルトの名無しさん
05/01/25 19:44:50APIマニュアルくらい読んだのかなぁ・・・・
0687デフォルトの名無しさん
05/01/25 19:45:290688デフォルトの名無しさん
05/01/25 19:49:57このクラスを継承したクラスから、先の静的メンバにアクセスするのは良くないのでしょうか。
Eclipseに怒られるのですが。
0689デフォルトの名無しさん
05/01/25 20:01:080690688
05/01/25 20:17:23Aクラスがpublic staticなメソッドaを持っていて、BはAを継承するとき、
B.aにアクセスしています。
これが警告を受けるんです。
0691デフォルトの名無しさん
05/01/25 20:32:50継承では、staticなメンバは引き継がれない。
0692デフォルトの名無しさん
05/01/25 20:38:26こんなのはできるで、
class tesuto333{
public static final int v = 99;
tesuto333(){
}}
class tesuto3333 extends tesuto333{
public static void main(String args[]){
System.out.println(new tesuto3333().v);
}
tesuto3333(){
}}
0693デフォルトの名無しさん
05/01/25 21:00:03継承する時にアクセスなんてできるわけないだろう。
エラーの読み間違いじゃない?
0694デフォルトの名無しさん
05/01/25 21:18:58馬鹿
氏ね
>>690
作法の一つだと思ってくれ。
コンパイル時のオプションがデフォルトだと注意される。
オプションで警告でないように出来るよ
0695デフォルトの名無しさん
05/01/25 21:43:23そもそもstaticはクラスに属しているものだから。
名前が同じstaticフィールドをそれぞれ変更してみればわかる
0696デフォルトの名無しさん
05/01/25 21:45:37こんなもんでしょうか。設計失敗してんじゃねぇか?って思う。
0697デフォルトの名無しさん
05/01/25 21:49:41日付処理(計算)関係のクラスも少ないし
0698デフォルトの名無しさん
05/01/25 22:09:47>なんだか拡張子が[.jar]っていうのが実行に戸惑ってしまいそうなので、
>拡張子を[.exe]にファイル名を変えてみたりコンパイルの際に出来る
>ファイル名の指定を「guisample.exe」にしてみたりしたのですが、
>有効なwin32アプリケーションではないらしくて実行できませんでした。
ワラタ
0699デフォルトの名無しさん
05/01/25 22:19:31staticフィールドが継承されると勘違いする奴が増えるんだ
0700sasa
05/01/25 22:21:37どうか助けてください。
0701デフォルトの名無しさん
05/01/25 22:34:15あせってるのは分かるがいい加減ウザイよ。
0702デフォルトの名無しさん
05/01/25 22:34:370703デフォルトの名無しさん
05/01/25 22:38:52ttp://www.javadrive.jp/tutorial/jlabel/index3.html
0704デフォルトの名無しさん
05/01/25 22:51:470705DNS未登録さん
05/01/25 22:56:210706デフォルトの名無しさん
05/01/25 23:19:40という文字列の、アルファベットとスペースを消し、
数値間に「,」(カンマ)を入れた
14.1421,-2.4362,3.1415
という文字列の作り方が分かりません。
見当として、replaceとdeleteの使用を試みましたが
上手くいきませんでした。
アドバイス願います。
0707デフォルトの名無しさん
05/01/25 23:21:56staticメソッドにsynchronized修飾子をつけなければいけない時ってどういうときなんでしょう?
今までメモリ上の同じ場所にアクセスしているから、
スレッドを使うときはsynchronizedにしないといけないのかと思ってましたが、
CoreのMathクラスとか、Jakarta Commons Lang の StringUtilクラスとかは
synchronized指定をしてないですよね。
staticメソッドから他の共有するもの(たとえばファイルとか)がある場合のみ
synchronizedにすればいいのか、
いまいち、どういったときにsynchronizedをつければよいのかがわかりません。
法則みたいなのがあれば教えていただけませんか?
0708デフォルトの名無しさん
05/01/25 23:26:06OSはXPSP2 VERは4.127
C直下にstrというフォルダを作ってそこに入れました。そしてserver.xmlに
<!-- School Lesson Context -->
<Context path="/str" docBase="C:\str"
crossContext="true" debug="0" reloadable="true">
</Context>
に編集しました。
そしたら
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: com/sun/tools/javac/Main (Unsupported major.minor version 49.0)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
at javax.servlet.http.HttpServlet.service(HttpServlet.java以下略
というエラーが出ました。どうしてでしょうか?アドバイスお願いします
0709デフォルトの名無しさん
05/01/25 23:30:48>staticメソッドから他の共有するもの(たとえばファイルとか)がある場合のみ
>synchronizedにすればいいのか、
そのとおり。
0710デフォルトの名無しさん
05/01/25 23:33:31同じ場所にアクセスしてる場合でも、
- そこに格納されてる値を読む
- その値から何か新しい値を計算する。
- 新しい値を書き込む
って一連の操作をアトミックにする必要がなければ、synchronizedはいらないよ。
単純な例をあげると、どのスレッドも読むだけの場合はsynchronizedはいらない。
あと、synchronizedにしなきゃいけない場合でも、あんまりstaticメソッドにはつけないなあ。
staticメソッドにsynchronizedつけると、そのクラスオブジェクトがロックされちゃうから色々不便なこともある。
0711デフォルトの名無しさん
05/01/25 23:38:51String s = "A is 14.1421 B is -2.4362 C is 3.1415";
String 答え = s.replaceAll("[^1-9.]+", ",");
0712デフォルトの名無しさん
05/01/25 23:47:22マルチスレッドの場合読むだけでもsynchronized必要なんだが・・・
0713688
05/01/25 23:47:49staticメソッドは継承出来ないんですね。
ということはコンパイラが吸収しているわけだから、
逆コンパイルするとクラス名が変わっているのかな?
0715デフォルトの名無しさん
05/01/25 23:53:16スレッドによるローカルコピーの問題は値を読むだけなら発生しないんじゃないの?
0716710
05/01/25 23:53:510717デフォルトの名無しさん
05/01/25 23:54:15どんな場合に?
0718デフォルトの名無しさん
05/01/25 23:54:290719デフォルトの名無しさん
05/01/25 23:55:140720デフォルトの名無しさん
05/01/25 23:56:30> スレッドを使うときはsynchronizedにしないといけないのかと思ってましたが、
> CoreのMathクラスとか、Jakarta Commons Lang の StringUtilクラスとかは
ローカル変数しか使っていないメソッドも synchronized 不要。
0721poponach
05/01/25 23:59:56ある程度の基本はマスターしたのですが、
趣味 〜→ プ ロ( グ ラ マ ) へのシフトに苦労しています。
どうすれば、開発現場で使えるという風に見なされるので
しょうか?Eclips3で勉強中です。
0722デフォルトの名無しさん
05/01/26 00:01:19まずはeclipseなしである程度書けるようになれ。
0723デフォルトの名無しさん
05/01/26 00:02:090724デフォルトの名無しさん
05/01/26 00:09:27変なクセをなくして誰が見ても無難と思えるコーディングできるようにしる
趣味で勉強してるヤシはやたらと独自なコード書いちゃったり、
既存コードを改変しちゃったり、で迷惑なときがある
0725デフォルトの名無しさん
05/01/26 00:09:41・・ていうハッタリはダメ?
0726デフォルトの名無しさん
05/01/26 00:17:55ぶっちゃけ無理っす。実務経験がなければ何を知ってても開発現場
で使えるという風には見なされません。
今の現場は1に実務経験、2に新卒、3〜4がなくて、5に職歴だから
何が使えればどうなるってもんじゃない。
学生ならとにかくがむしゃらに入社する事だけを考える。
既に社会人なら派遣に登録してみる。今時は実務経験がないと派遣
でも仕事が取れないと聞いてるけど、取れたらめっけもんのつもりで
とにかくどんな形であれ実務経験を手に入れるのが大切。
0728706
05/01/26 00:35:08A is 14.1421 B is -2.4362 C is 3.1415 → 14.1421,-2.4362,3.1415
で、>>711さんから s.replaceAll("[^1-9.]+", ","); を使うアドバイスを
頂きましたが、JDKが1.3なのでこのメソッドは使えません。
他の仕事の関係上バージョンアップができないので、別の方法を教えて下さい。
0729710
05/01/26 00:41:44一応Cでマルチスレッドプログラミングはバリバリしてましたから。
Javaだとsynchronizedが(Cで言うところの)volatileも兼ねてるんだよね。
最初、何故Javaだと、synchornizedでアクセスしてる変数にvolatileが付いてなくて
大丈夫なのか、すごく悩んだ記憶がある。
0730デフォルトの名無しさん
05/01/26 00:55:09だったら真面目にパーズすればいいでないの?
あるいは、↓みたいにjava.util.StringTokenizerでがんばるとかw
stk = new StringTokenizer("A is 14.1421 B is -2.4362 C is 3.1415",
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ");
StringBuffer sb = new StringBuffer();
while (true) {
if (stk.hasMoreTokens()) {
sb.append(stk.nextToken());
if (stk.hasMoreTokens()) {
sb.append(',');
} else {
break;
}
}
System.out.pritln(sb);
0731デフォルトの名無しさん
05/01/26 01:11:45ところで、実務経験と職歴って何が違うの?
0732デフォルトの名無しさん
05/01/26 01:58:50職歴は捏造し、実務経験は水増しするもの。
ってのは笑えない冗談として、
職歴……役割で見た履歴。PGやってたとかPMやってたとか
実務経験……具体的な技術、言語の経験履歴。Struts使ったことありまつとかiアプリ作りますたとか
0733デフォルトの名無しさん
05/01/26 03:02:04eclips でペイントプログラム作ったことがあります。
実務経験はありません。」 <- 実社会じゃ汚物以下
0734デフォルトの名無しさん
05/01/26 03:22:460736デフォルトの名無しさん
05/01/26 04:58:52>>721
0737デフォルトの名無しさん
05/01/26 07:32:59半角スペースでスプリットして配列に入れて、英字はスキップして数値だけ連結する。
0738デフォルトの名無しさん
05/01/26 07:35:18>>737に補足。スプリットはindexOfとsubstringでできる。
0739デフォルトの名無しさん
05/01/26 08:16:36String s = str;
char x = '!';
while(x <= '~') {
s = s.replace(x, ' ');
x++;
if(x == '+') x = ':';
}
String y = "";
String z = "";
int i = 0;
while(i < s.length()) {
if(s.substring(i,i+1).compareTo(" ") != 0) {
z += s.substring(i,i+1);
y = ",";
}
else {
z += y;
y = "";
}
i++;
}
System.out.println(str);
System.out.println(z);
0740デフォルトの名無しさん
05/01/26 08:32:360741デフォルトの名無しさん
05/01/26 10:19:24昔はコボラー
今はJava厨
0742デフォルトの名無しさん
05/01/26 11:15:30String s = "...some string...";
char[] chars = new char[s.length()];
s.getChars(0, s.length(), chars, 0);
このやり方でStringの文字をChar配列に変換したのですが、日本語で実行
するとjava.lang.ArrayIndexOutOFBoundsExceptionてゆうエラーがでてうまく行きません、
このやり方では、日本語は使えないのでしょうか?
0743デフォルトの名無しさん
05/01/26 11:37:280744デフォルトの名無しさん
05/01/26 11:37:50String str = "ぬるぽ";
char[] arrayChar = str.toCharArray();
こうしない
0745デフォルトの名無しさん
05/01/26 17:02:330748デフォルトの名無しさん
05/01/26 18:03:14"ガッ".toCharArray();
0749デフォルトの名無しさん
05/01/26 18:30:52いちいち初期化用のクラスメソッドを書いて
アプリケーション起動時に呼び出していたのですが、
最近、static ファクトリー なる存在を知りました。
Java 5.0 のドキュメントには EnumMap の初期化に使われていましたが、
他のクラスフィールドにも応用でき、大変便利です。
これって java のいつのバージョンから入っていたものなのですか?
0750デフォルトの名無しさん
05/01/26 18:41:290751デフォルトの名無しさん
05/01/26 18:57:21御返答ありがとうごさいます。
こんなに基本的で便利なことを
手持ちの入門書4冊には書いてありませんでした。
0752デフォルトの名無しさん
05/01/26 19:11:191: IEブラウザ破壊スクリプト (20)
2: VB.NET質問スレ (Part9) (117)
3: 【初心者】Java質問・相談スレッド60【大歓迎】 (751)
4: すれ立てるまでもない質問はここで 第64刷 (92)
という、行先頭にスペース&行末で改行の文章があったとき、これを1行に詰めて
1: IEブラウザ破壊スクリプト (20) 2: VB.NET質問スレ (Part9) (117) 3: 【初心者】・・・
の形にする方法を教えて下さい。JDKのバージョンは1.3です。
0753752
05/01/26 19:14:01表示上スペースが消えていますが、対象テキストではスペースが入っています。
0754デフォルトの名無しさん
05/01/26 19:34:11回るにはどうすればよいでしょうか?
0755デフォルトの名無しさん
05/01/26 19:37:56解説ページ見つけれないorz
0756名無し ◆774/GPwwww
05/01/26 19:42:24|д・)つ ttp://hamasyou.com/archives/Programming/javaeffectiveiessoaeeanoca.php
0758デフォルトの名無しさん
05/01/26 20:00:070759デフォルトの名無しさん
05/01/26 20:01:250760デフォルトの名無しさん
05/01/26 20:25:46の「1」を切り出して、int型にする方法を教えてください。
0761名無し ◆774/GPwwww
05/01/26 20:45:58|д・)つ int i = (new Integer(str.substring(str.indexOf("1"),str.indexOf("1")+1))).intValue();
0762デフォルトの名無しさん
05/01/26 20:57:340763デフォルトの名無しさん
05/01/26 21:00:450764デフォルトの名無しさん
05/01/26 21:17:01ヒントになりました。
ありがとうございました。
0765デフォルトの名無しさん
05/01/26 21:21:170766デフォルトの名無しさん
05/01/26 21:36:29使わない方がいいとか言う話を聞いた事があるよ。
0767デフォルトの名無しさん
05/01/26 22:05:24聞いたことないけど
0768656
05/01/26 22:44:490769デフォルトの名無しさん
05/01/26 22:44:59http://www-6.ibm.com/jp/developerworks/java/020726/j_j-dcl.html
「volatileを使ってみますか?」のところに
>多くのJVMでは、順序の一貫性について、volatile が正しく実装されません。
と書いてあって、以下それについて実験してる。
0770デフォルトの名無しさん
05/01/26 22:45:54クラスの説明とか見てると時々でてくるのですが。教えていてでけますか?
0771デフォルトの名無しさん
05/01/27 00:30:470772デフォルトの名無しさん
05/01/27 00:34:560773デフォルトの名無しさん
05/01/27 00:37:33うそつき
Cなら確かに実装の違いがあるが
0774デフォルトの名無しさん
05/01/27 00:51:210775デフォルトの名無しさん
05/01/27 01:04:39>>769 の話なんだけど。
何かずれてた?
0776デフォルトの名無しさん
05/01/27 01:06:33一番大事な「順序の一貫性」って部分とるなよ
同期化についてはどちらもおなじ
0777デフォルトの名無しさん
05/01/27 01:51:08知らなんだ。
Cのvolatileってそこまで保証してたっけ?
でも、gccでvolatile asmとか書くと保証してくれたがw
0778デフォルトの名無しさん
05/01/27 02:08:370779デフォルトの名無しさん
05/01/27 02:28:57名前が自由につけられるコンストラクタというのを
コードで教えてくれませぬか。
static{
...
}
って名前ないよなぁ。
0780デフォルトの名無しさん
05/01/27 02:37:59飛んじゃうやつ。どっかに便利な整形CGIない?
0781デフォルトの名無しさん
05/01/27 02:40:420782デフォルトの名無しさん
05/01/27 02:52:09757で言ってるのは静的初期化ブロックの話ではないよ。
例えばHogeクラスの場合。
Hoge()、Hoge(int)、Hoge(String)、、、
コンストラクタは引数をいろいろ変えてオーバロードしても名前はHogeしかない。
しかも同じ引数の並びで別のコンストラクタは当然定義できない。
でもHogeインスタンスを返すstaticメソッドだったら名前は自由に付けられる。
static Hoge hoge()、static Hoge hogeInt(int)、static Hoge hogeString(String)、、、
名前が自由につけられるから同じ引数の並びであっても問題ない。
static Hoge hogeInt1(int)、static Hoge hogeInt2(int)、、、
たいていはコンストラクタではフィールドの設定くらいしかしないけど
複雑な初期化がしたい、あるいはいろいろな方法で初期化したいという場合は役に立つ。
0784デフォルトの名無しさん
05/01/27 04:28:46それなら>>739をちょっと改造すればできる。
0785752
05/01/27 04:32:591: IEブラウザ破壊スクリプト (20)
2: VB.NET質問スレ (Part9) (117)
3: 【初心者】Java質問・相談スレッド60【大歓迎】 (751)
4: すれ立てるまでもない質問はここで 第64刷 (92)
という、行先頭にスペース&行末で改行の文章があったとき、これを1行にまとめて
1: IEブラウザ破壊スクリプト (20) 2: VB.NET質問スレ (Part9) (117) 3: 【初心者】・・・
の形にする方法を教えて下さい。JDKのバージョンは、1.3 → 1.4に上げました。
0787デフォルトの名無しさん
05/01/27 04:51:05普通に改行コードをスペースか空文字に置換するんじゃだめなのか?
0788デフォルトの名無しさん
05/01/27 05:15:27オレもオモタ
文字列Aから一文字ずつ文字列Bへコピーしていって、
その際改行コードが見つかったら代わりに空白文字をコピーすればいいんじゃね?
0789752&785
05/01/27 05:58:19目的のテキストをSample.txtとして
File txt = new File("Sample.txt");
BufferedReader br = new BufferedReader(new FileReader(txt));
br = br.replace('\n' , ' ');
System.out.println("文 = " + br );
と、replace()を使って試してみましたが、下記のエラーが出ました
Trim3_1.java:17: シンボルを解釈処理できません。
シンボル: メソッド replace (char,char)
位置 : java.io.BufferedReader の クラス
br = br.replace('\n' , ' ');
^
※ioはimportしています
0790デフォルトの名無しさん
05/01/27 06:01:31落ち着け
BufferedReaderにreplaceなんてメソッドないぞ
0791デフォルトの名無しさん
05/01/27 06:05:06Stringクラスにはreplace(char, char)メソッドは存在するけど、BufferedReaderクラスには存在しないよ
replaceメソッドを使いたいならプログラムを変えるしかないよ
0792789
05/01/27 06:37:50File txt = new File("Sample.txt");
BufferedReader br = new BufferedReader(new FileReader(txt));
String st = br.toString();
st = st.replace('\n' , ' ');
StringBuffer sb = new StringBuffer(st);
System.out.println("文 = " + sb );
と、toString()でString型に変換したところ、コンパイルは成功しましたが
文 = java.io.BufferedReader@42719c
と表示されました。アドバイスを願います。
0793デフォルトの名無しさん
05/01/27 07:05:43toStringメソッドの使い方間違ってるょ
java.io.BufferedReader@42719c はオブジェクトbrのJVM上のメモリアドレスが文字列で表示されてるだけ
って、まぁここら辺はいいとして、
BufferedReaderオブジェクトからStringオブジェクトへの変換は、readLine()かread()メソッドを使うよろし
// readLine()の場合
String st;
String copy;
while((st = br.readLine()) != null) {
copy += br.readLine(); // これOKなのかちょっと不安、少なくともパフォーマンスは悪い
}
// read()メソッドを使う場合
StringBuffere sb = new StringBuffere();
while(br.read() != -1) {
sb.append(br.read());
}
String st = sb.toString(); // このtoString()はOK.なぜならStringBuffereクラスはの内部は文字列表現だから
※BufferedReaderクラスはバイトであり、文字列表現ではない。
このように内部が文字列表現でないクラスの場合、そのオブジェクトが配置されているJVM上のメモリアドレスが示される
0794デフォルトの名無しさん
05/01/27 10:45:02例えばApplet等で大戦略のようなユニット型シミュレーションを作るとしたら、
ユニットのアニメーションは
1.一つのスレッドですべてのハンドルを登録して管理する方法を執る
2.ユニットのクラスごとにスレッドを走らせてアニメーションする
どちらが良いかね。
俺は前者で行こうと思ってるんだけど、後者はアニメーションの速度を柔軟に
調節できたりする面もあるし、判断に迷ってて。
助言よろ。
0795デフォルトの名無しさん
05/01/27 11:44:19チューンアップするなら 1 を
びっくりするほどのパフォーマンスが出てるときに、
開発者に仕組みを尋ねるとたいてい 1。
そこに独自のノウハウを突っ込んであるケースが多い。
でもね、俺は 2 を勧めるよ。
1 は同業他社に差を付ける為のプロ仕事だと思う。
0796デフォルトの名無しさん
05/01/27 11:49:190797デフォルトの名無しさん
05/01/27 11:50:31プログラムのウィンドウ内だけなら簡単に変更できる確認はできましたが・・・
0798デフォルトの名無しさん
05/01/27 11:59:580799デフォルトの名無しさん
05/01/27 12:00:10BufferedReader.toSringが文字列表現を返すかどうかは
内部表現とはなんら関係ない。BufferedReaderはtoString()を
オーバーライドしていないのでObject$toString()が呼ばれる。
で、Object#toString()が返すのはVM上のメモリアドレスなんていう
不思議アイテムではなく、オブジェクトのハッシュコードを
16進表現したもの。ただそれだけ。
あとStringBuffer#toString()が文字列表現を返すのも
APIの仕様上バッファの中身に相当する文字列を
返すって決められてるからであって、内部が文字列かどうか
には関係が無い。
0800デフォルトの名無しさん
05/01/27 12:12:082は論外
0801デフォルトの名無しさん
05/01/27 12:43:06アニメーションをする場合の話ですよね?
ユニットごとに別のスレッドで処理をするのも論外ですか?
0802デフォルトの名無しさん
05/01/27 12:49:20そしてそのインターフェースを管理クラスがプライオリティ順に呼ぶ
マルチスレッドにする利点はないよ
どうせ垂直同期やらタイマー管理やらにしろフレーム単位で結果出すだけだから
スレッドでやったら描画順位どうするんだ?
08031/2
05/01/27 13:02:26import java.awt.*;
import java.awt.event.*;
public class WindowEvent {
public static void main(String[] args) {
//アプリケーションウィンドウの生成
Frame win = new Frame("窓作り");
win.setBounds(10,10,400,300);
win.show();//ウィンドウを表示
win.addWindowListener(new WindowListener(){
//WindowListenerの実装(匿名内部クラス)//////////////////////
public void windowOpened(WindowEvent e){
System.out.println(e.paramString());
}
public void windowClosing(WindowEvent e){
System.out.println(e.paramString());
e.getWindow().dispose();
}
public void windowClosed(WindowEvent e){
System.out.println(e.paramString());
}
08042/3
05/01/27 13:03:16System.out.println(e.paramString());
}
public void windowDeiconified(WindowEvent e){
System.out.println(e.paramString());
}
public void windowActivated(WindowEvent e){
System.out.println(e.paramString());
}
public void windowDeactivated(WindowEvent e){
System.out.println(e.paramString());
}
////////////////////////////////////////////////////////////
});
}
}
08053/3
05/01/27 13:06:29上のプログラムを実行したいのですが、下から3行目の
「});」の部分の「;」をつければたくさんエラーが出て、消せば「}」の部分にエラーが出ます。
出てきたエラーは以下のとおりです。
黷ス抽象メソッド WindowListener.windowOpened(WindowEvent) をインプリメントする必要があります。
クラスは継承された抽象メソッド WindowListener.windowActivated(WindowEvent) をインプリメントする必要があります。
クラスは継承された抽象メソッド WindowListener.windowDeiconified(WindowEvent) をインプリメントする必要があります。
メソッド paramString() は型 WindowEvent で未定義です。
メソッド paramString() は型 WindowEvent で未定義です。
メソッド getWindow() は型 WindowEvent で未定義です。
メソッド paramString() は型 WindowEvent で未定義です。
メソッド paramString() は型 WindowEvent で未定義です。
メソッド paramString() は型 WindowEvent で未定義です。
メソッド paramString() は型 WindowEvent で未定義です。
メソッド paramString() は型 WindowEvent で未定義です。
at WindowEvent.main(WindowEvent.java:12)
Exception in thread "main"
何故エラーが出るのかわかりません。
よろしければお教えください。
0806デフォルトの名無しさん
05/01/27 13:06:390807デフォルトの名無しさん
05/01/27 13:10:02ごめん、間違い?
0808794
05/01/27 13:30:34描画順位については、そのオブジェクトが指している画像リソースを一定時間毎に
差し替えて(インデックスをインクリするだけでも良いや)
メインスレッドで
unitobj.getImage
とかで全てのユニットのImageを取って来て描画する、と。
いやぁ、3コマのアニメーションと5コマのアニメーション等のようにコマ数(セル数?)
の違うモノを混在させて表示するにはどうしたら良いかと思って、2を考えたんだYO。
フレームのカウンタで計算しろ、というのが面倒だなと思ってさ。
0809デフォルトの名無しさん
05/01/27 13:41:18文法的には問題なさそうだが、
public class WindowEventというクラス名が悪い。
あなたの作ったクラス名がWindowEventであるために、
WindowListener の java.awt.event.WindowEvent を引数に取るべき
メソッドが、未定義のままになっている。
また、java.awt.event.WindowEvent.paramString() などのメソッドも
当然あなたの作ったWindowEventクラスにはないので、未定義と見なさ
れている。
クラス名を適当に変えるか(外から呼び出すpublicクラスだから
ファイル名ごと変える)、どうしてもWindowEventという名前の
クラスとして作りたいなら、WindowListenerを実装する方の引
数のWindowEventを、java.awt.event.WindowEventとFQCNで書く。
0810デフォルトの名無しさん
05/01/27 14:07:47ツールバーをコンテナに追加したいのですが、
その際、BorderLayoutで配置させる必要があると調べました。
しかし、コンテナのsetLayoutをnullにしてあるので、
BorderLayoutでの配置ができません。
この場合、どうしたらよいのでしょうか?
宿題スレでは、
BorderLayoutのCENTERの部分のレイアウトをNULLにする
といわれたのですが、もう少し詳しく知りたいと思っています。
0811803
05/01/27 14:07:50ありがとうございました。
しかし、クラス名・ファイル名共に全く関係なさそうな「Kuma」という名前に変更してみましたが
エラーはなくなりませんでした・・・
未定義の部分が消えないんです。
別のインポート宣言をする必要がありますか?
0812bus
05/01/27 14:21:13日本語の入力をするとエラーが出てしまいます。教えてもらったとおりに
やっては見たもののできません。
stext = ttextbox.getText();
char[] text = stext.toCharArray();
このようにしました。どうすればよいのか教えてください
0813デフォルトの名無しさん
05/01/27 14:23:020814デフォルトの名無しさん
05/01/27 14:25:41NullPointerExceptionじゃあるまいな
0815デフォルトの名無しさん
05/01/27 14:29:03Gats
0816デフォルトの名無しさん
05/01/27 14:57:15ツールバーをaddしたいコンテナ container (getContentPane()の返値とか)に、
container.setLayout(new BorderLayout());
する。(いまsetLayout(null)してるハズ)
で、
JPanel panel = new JPanel();
panel.setLayout(null);
container.add(panel, BorderLayout.CENTER);
して、今コンテナに直接addしている諸々の部品はpanel.addで
panelに載せていく。
ツールバーは
container.add(toolBar, BorderLayout.NORTH);
で。
>>811
こっちではpublic class Kumaにして、問題なく動いてるけど……
Visual J++ 1.0とかだと動かんとは思うが……
0817bus
05/01/27 14:57:51stext = ttextbox.getText();
char[] text = stext.toCharArray();
のようにしたら日本語を入力するとやはりエラーが出てしまいます。
どのようにしたらうまくいくのでしょうか
0818デフォルトの名無しさん
05/01/27 15:00:52フレーム数でのカウントが面倒とかいってるうちはゲーム作れないと思うぞ
それにオブジェクト数が200こだったらスレッド200個作るのか?
行き当たりばったりで作るよりもなれてないならまずは設計書を書くようにしよう
0819デフォルトの名無しさん
05/01/27 15:02:42ハハハ、こやつめ!
0820デフォルトの名無しさん
05/01/27 16:08:22昨日からJavaを始める事になったんで、俺はJavaで開発してるんだ〜
って意気込みを感じれるような奴。ど〜もC++抜けないんで
気持ちを朝一から入れ替えたいの。
0821sage
05/01/27 16:17:170822デフォルトの名無しさん
05/01/27 16:20:48ありがとうございます。
コンテナに直接追加することばかり考えていて、
パネルを中間に使うのを見落としていました。目からうろこでした。
これからコード書き換えます。ありがとうございました。
0823デフォルトの名無しさん
05/01/27 16:21:33ホットコーヒーはいかがですか?
0824デフォルトの名無しさん
05/01/27 16:34:570825810
05/01/27 16:42:17今、コードの書き換えが終わりました。成功しました。
どうもありがとうございました。
0826デフォルトの名無しさん
05/01/27 16:49:370827794
05/01/27 18:10:58全く以ってその通り。
いやあ、色々テストがてら簡単なゲーム作っててさ。
まだ言語仕様勉強中の身なわけさ。
多重継承が無いのがちょいと辛い……。
0828デフォルトの名無しさん
05/01/27 19:00:53多重継承が必要な場面ってほとんどないけどなぁ
インターフェースってわかるか?
0829デフォルトの名無しさん
05/01/27 19:06:37うまくいきません。直線移動だけならばPositionInterpolatorを使えば
できるのですが、直線に移動するだけに終わってしまいます。
なんとか右に3移動した後上に5移動する・・といった
簡単なものでよいので作りたいのですが、
方法などご存知なかた居られましたら是非ご教授くださいませ。
0830デフォルトの名無しさん
05/01/27 19:49:23すべてのエージェントが同じ行動をしてしまうという現象が起こっていて、
原因がわかりません。簡単に書くと、次のようなプログラムになります。
→次へ
0831830
05/01/27 19:50:15public class CAgent {
private Random m_rn = new Random();
private int m_rand;
private int m_change;
public int m_value;
private int m_action;
public void setAgentState(int num) {
m_value = 100 * num;
m_change = 0;
}
public void setAction(int i) {
m_rand = m_rn.nextInt(3);
m_action = m_rand;
System.out.println("agentID : " + i + "\t" + "action : " + m_action);
switch(m_rand) {
case 0 : m_change = 0; break;
case 1 : m_change = 1; break;
case 2 : m_change = -1; break;
}
}
public void takeAction() {
m_value += m_change;
}
}
0832830
05/01/27 19:50:46public class Test2 {
private static final int NUM_AGENT = 100;
private static final int NUM_STEP = 10;
public static void main(String[] args) {
CAgent[] agent = new CAgent[NUM_AGENT];
for(int i=0;i<NUM_AGENT;i++) {
agent[i] = new CAgent();
agent[i].setAgentState(i+1);
}
for(int step=0;step<NUM_STEP;step++) {
System.out.println("step : " + step);
for(int j=0;j<NUM_AGENT;j++) {
agent[j].setAction(j);
agent[j].takeAction();
}
}
}
}
0833830
05/01/27 19:52:01ステップごとにそれぞれのエージェントは行動をランダムに選択(setActionメソッド)し、
値を更新(takeActionメソッド)するというものです。
しかし、このプログラムを実行結果は、
step : 1
agentID : 0action : 1
agentID : 1action : 1
(省略)
agentID : 99action : 1
step : 2
agentID : 0action : 0
agentID : 1action : 0
(省略)
agentID : 99action : 0
ステップごとにはランダムに選択されるのですが、
それぞれのステップではすべてのエージェントが同じ行動になってしまっています。
自分では原因が分からないので、どなたか教えてください。
それぞれのステップでエージェントが違った行動をとるには、どうすればいいのでしょうか…?
0834デフォルトの名無しさん
05/01/27 20:02:31おお!何々、そうなのか。どうやらオレはとんだ勘違いをしていたようだ・・・
StringBuffer#toString()はオーバーライドしたメソッドってことなんだね
いや、>>792さんスマソ、間違ってました
ところでハッシュコードって何だ?バイトコードとは別のもの?何に使うの?
0835デフォルトの名無しさん
05/01/27 20:03:39m_rn = new Random(System.currentTimeMillis());
try {
Thread.sleep(1);
} catch (InterruptedException e) {
}
}
このコンストラクタを入れてくだふぁーい
0836デフォルトの名無しさん
05/01/27 20:04:12特定しますた
0837デフォルトの名無しさん
05/01/27 20:05:080838デフォルトの名無しさん
05/01/27 20:15:10m_rand = m_rn.nextInt(3);
0839デフォルトの名無しさん
05/01/27 20:34:29C++みたいな多重継承が必要な場面は多くないけど
RubyのモジュールみたいなMixinあればいいなと
思うこともちょっとある。
別クラスに委譲すればいいだけの話なんだけど
委譲ってコード書くのが少しめんどう。
0840デフォルトの名無しさん
05/01/27 20:39:14ネタだよな?と思ったがメール欄はsageか。
Object#hashCode();
0841デフォルトの名無しさん
05/01/27 21:07:18JAVAのプログラムで呼んでいます。その待機状態になるときの、一行目に表示
されるものをbr.readLine();(read()もためしました)ですぐに取得したいのですが,
どうやってもコマンドが終了したあとにしか取得できません。
[test @test test]コマンド
testtesttest ← コマンド実行と同時に表示される
実行が終わるまで空白
testtesttestを実行が終わる前にどうにか取得したいと思っています。
困りはてているので、もし何か手がありましたらご教授いただけるとうれしいです。
0842デフォルトの名無しさん
05/01/27 21:49:49本家から最新版3.0.1はダウンロードできたんだけど、日本語化に必要な
NLpack-eclipse-SDK-3.0.x-win32.zip ってのがさっぱり見当たらない。
日本語化を解説してるサイトの説明にはみんな普通に載ってるんだが、消えてしまったんだろうか?
0843デフォルトの名無しさん
05/01/27 21:56:060845デフォルトの名無しさん
05/01/27 22:30:00広めて下さいorz
0846デフォルトの名無しさん
05/01/27 22:38:50sizeof()するのってシリアライズしてデータ量測定
してオーバーヘッド分マイナス する、として
オーバーヘッドの計算式どっかにないカニ。
0847792
05/01/27 22:40:52>>793,799 さんありがとうございました。
実際にコードを組んで、複数行のテキストSampleEV_3d.txt
SampleEV -40.73947 -39.38199
-19.25768 -17.72609 -17.31405
End
を読み取りみましたが、
C:\j2sdk1.4.0_01\java_tests>java Trim3_4b
EV = 9711210186454855575545575149571045575055564555555457455551525310110-1
というエラーになりました。原因が分かりません。
実際のコードは http://haiiro.info/up2/file/3531.txt
に、うpしています。
ご指摘願います。
0848デフォルトの名無しさん
05/01/27 22:41:47とりあえずこれ使え
http://eclipsewiki.net/eclipse/index.php?Maven
されどまだまだ問題点がありありでバージョン違いのJARの依存関係が
まだまだ駄目すぎる。
これではPerl CPAN, *BSDのPorts, Linuxのyumにも劣る自動アップデート機能だ。
そこでMaven2に期待している。
こやつのブログによると大幅に書き直されるらしい。
http://blog.goo.ne.jp/ikkoan/e/bfe6fda9790199a2b0c15dbbb6c3ea24
0849デフォルトの名無しさん
05/01/27 22:47:230850830-833
05/01/27 23:15:04解決しました!ありがとです。
乱数のシードの問題だったんですね…
0851デフォルトの名無しさん
05/01/27 23:24:30http://www.aluha.com/~javaKingdom/javaSample/readFile.html
0852デフォルトの名無しさん
05/01/27 23:29:18シリアライズしたのは実際のサイズとは全然関係ないよ。それなら以下のほうがいい。
一度GCしてから空きメモリ量を測定する。
10000個ほど測定したいクラスのインスタンスを作る。
もう一度GCしてから空きメモリ量を測定する。
空きメモリ量の差分を10000で割る。
フィールドに別オブジェクトを持ってるクラスだと多少ややこしいけど
Object 一個だと 8 バイトほどなのがわかる。
0853デフォルトの名無しさん
05/01/28 00:21:09Double.parseDouble(num);
とすると、parseDouble は int 型に適用できないと言われてしまいました。
他に int > double と変換する方法はあるのでしょうか?
0854デフォルトの名無しさん
05/01/28 00:23:03(double)xxx
0855デフォルトの名無しさん
05/01/28 00:29:38なるほど、C と同じように double(xxx) でうまくいかなかったのでちょっとハマってしまいました^^;
助かりました、ありがとうございました^^
0856デフォルトの名無しさん
05/01/28 00:43:410857デフォルトの名無しさん
05/01/28 00:46:240858794
05/01/28 00:51:32インタフェースだと、変数を継承出来ないでしょ?
0859デフォルトの名無しさん
05/01/28 01:11:17そういうのはゲッターセッターメソッド作るわけだが
0860デフォルトの名無しさん
05/01/28 03:29:040861847
05/01/28 05:12:32これは2行のTxtを2行のまま表示するコードですね。
コードを改造しましたが、動作しませんでした、
0862デフォルトの名無しさん
05/01/28 05:22:49SampleEV -40.73947 -39.38199
-19.25768 -17.72609 -17.31405
End
などという、複数行のTextを一行にするにはどうすればいいでしょうか?
JDKバージョンは1.4です。なお最終的には一行にした後に、数字以外を消し、
数値間にカンマを入れて、
-40.73947,-39.38199,-19.25768,-17.72609,-17.31405
という形にします。
0863デフォルトの名無しさん
05/01/28 06:45:42こんな俺が答えていいのかわからないけど
StringTokenizerと正規表現使えばいいんじゃ・・・
0864862
05/01/28 09:08:06ついさっき、改行問題(1番の課題)は append()を使って後段の行
を前の行に追加する、という手法で解消しました。
どうも、お騒がせしました。
0865デフォルトの名無しさん
05/01/28 09:12:12この場合パイプで処理をしたらどうなるでしょうか。
0866デフォルトの名無しさん
05/01/28 09:52:030867デフォルトの名無しさん
05/01/28 09:53:370869866
05/01/28 10:03:40フレームレスウィンドウで画像のみを表示することは可能でしょうか?
ヒントだけでもいいのでお教え願えれば幸いです。
0870ふぁsf
05/01/28 10:18:33どうすればよいでしょう?
0871794
05/01/28 11:03:15例えば任意の描画クラスと任意のコントロールクラスがあったとする。
あるコントロールにイベントが発生したときに、それと対になったグラフィックス
にある特定のアクションを起こさせたいとする。
そして、そのアクションは、基本的に共通動作だが、コントロールごとに実装がやや違うとする。
多重継承あると、楽だろ?
setActionClass((ActionClass)ac);
こんなバインド(リンク?)をしなくても済むわけだし。
いや、「こういう方法でやればいい」ってんじゃなくて、「多重継承があったらなぁ」
と思う場面が偶に有るという話だ。
俺はC畑出身だからJAVAのデストラクタが無いのとか、いまいち『気持ち悪い』感じが
まだ抜けてないから、まだ慣れてないだけなのかとも思うが。
スレ違いな話になってきてるみたいでゴメム。
0872デフォルトの名無しさん
05/01/28 12:18:03コメントを文字列として認識できるXMLパーサってありますか?
0873デフォルトの名無しさん
05/01/28 12:45:02コンポーネントに任せる方法
・JWindowのLayoutをBorderLayoutに
・JLabelをCENTERにadd
・JLabelにsetIconでImageIconを設定
自分で描画する方法
・JWindowでpaintメソッドをオーバーライドし、
Graphics#drawImageで、画像を描画
ちなみに1.4以降ならば、JWindowの代わりにJFrameつかって、
setUndecorated(true)とすることで、タイトルバーは消せる。
0874デフォルトの名無しさん
05/01/28 12:52:550875デフォルトの名無しさん
05/01/28 12:55:23>そして、そのアクションは、基本的に共通動作だが、コントロールごとに実装がやや違うとする。
それってインターフェースで共通化するんじゃないの?
List list = new Vector();
List list = new ArrayList();
のように
0876デフォルトの名無しさん
05/01/28 13:08:17いや違うよ。俺が言ってるのは
描画機能とアクション機能の二つを備えたオブジェクトを多種作成するって
事なんだよ。
で、描画、アクションともに全オブジェクトに共通する基本動作があるから
二つの基本クラスを継承するのは不可欠だって事なんだよ。
インターフェースで共通化したら、基本メソッドまでコピペしなきゃ
いけなくなるじゃん。
自分のようにビジュアルアクション系で複雑なプログラムを組む者には
多重継承がないのはマジでつらい。
JavaにしろC♯にしろ単一継承にしたのは問題の先送り、解決の放棄と
しか思えない。だから何時までもソフトウェアの生産性が上がらないんだな。
最近のOOPじゃ、継承よりも委譲によるクラス拡張を重視してるが
これはクラス機能間の構造をさらにややこしくしてしまう。
結局、委譲重視に走ったのは多重継承を放棄したが故の副産物と
言わざる得ない。単一継承言語が主流となってしまったOOPの未来は
暗いな。
0877デフォルトの名無しさん
05/01/28 13:12:42すいません。
Javaソースコードのコメントです。
// や /* */ で定義される。
0878デフォルトの名無しさん
05/01/28 13:13:280879デフォルトの名無しさん
05/01/28 13:14:05基本メソッドをコピペって・・・
0880デフォルトの名無しさん
05/01/28 13:50:59継承に構造を持たせるの
まぁオレの論文の事なんだけど
0881デフォルトの名無しさん
05/01/28 14:19:500882デフォルトの名無しさん
05/01/28 14:34:430883デフォルトの名無しさん
05/01/28 15:07:07そのとおりです。
<!- -> を内を、文字列として認識できるXMLパーサってありますか?
0884デフォルトの名無しさん
05/01/28 15:42:36<!-- -->
に訂正
0885デフォルトの名無しさん
05/01/28 15:47:10そもそもその文字列に意味があるのならコメントにすなとかおもっちまうが
0886デフォルトの名無しさん
05/01/28 15:59:310887デフォルトの名無しさん
05/01/28 16:01:41誰に対して言ってるんだろう
0888デフォルトの名無しさん
05/01/28 16:42:360889デフォルトの名無しさん
05/01/28 16:50:02演算子オーバロードはない
0890デフォルトの名無しさん
05/01/28 16:54:130891デフォルトの名無しさん
05/01/28 17:04:57inputのvalueの値を変数に入れたいのですが
下記のような事ではだめですか?
<input name="box1" type="text" value="あいうえお"/>
<c:set var="tmpset">
<c:out value="${box1.value}"/>
</c:set>
0892デフォルトの名無しさん
05/01/28 17:06:53サンクス。
なんかトータルで見るとC++の方が使いやすい気がするなぁ…
0893デフォルトの名無しさん
05/01/28 17:09:11あります。
0894デフォルトの名無しさん
05/01/28 17:10:50やってみればわかると思います
0895デフォルトの名無しさん
05/01/28 17:16:20GlobalClassみたいなのを作って、その中でstatic finalして、それを各クラスでimportするのでしょうか?
0896デフォルトの名無しさん
05/01/28 17:17:39「static final」は定数か…間違いました。
0897デフォルトの名無しさん
05/01/28 17:41:29それがいいかも。
static importすればそのまま使えるし。
でもスコープはできるだけ狭い方がいいと思います・・。
0899デフォルトの名無しさん
05/01/28 17:46:230900名無しさん
05/01/28 18:36:49どこかにおすすめのページありませんか?英語でも大丈夫です!
0901デフォルトの名無しさん
05/01/28 18:55:48<c:set var="tmpset" value="${param.box1}" />
としませう
0902デフォルトの名無しさん
05/01/28 19:13:37理解できてないとだめ。for Javaを勉強するのはそれから。
つーか、SDKわかってればfor Javaなんて勉強するまでもない。
0903デフォルトの名無しさん
05/01/28 20:27:50int型のBOOL型を作りたいんだけど、どうやって作ればいいのでしょうか。
0904デフォルトの名無しさん
05/01/28 20:36:15よくわからん癖に独自の型を作ろうとするのはヤメレ。素直に
boolean hogeflag=true;
とかやっとけ。
念のため言っておくが、Java の boolean 型は C でよく使うような
#define BOOL int
#define TRUE 1
#define FALSE 0
みたいなインチキブーリアンじゃないぞ。
0905デフォルトの名無しさん
05/01/28 20:38:39>念のため言っておくが、Java の boolean 型は C でよく使うような
では、それに期待してboolean使うことにします。
ありがとうございました。
0906904
05/01/28 20:46:49「もしかして全くのド素人じゃなかったら失礼かも」とか思って念のため
書いておいてヨカタw
補足すると、boolean 型の変数には true/false しか代入できない。
数値との比較をしようとするとエラーになる。
C++の BOOL よりはずっと素直(とおいらは思った)。
0907905
05/01/28 20:52:18なるほど、参考になります。
でもその素直さが自分には受け入れられないかもしれません。
booleanで演算(boolean*intとか)できないと痛いので、その辺を色々試してみる事にします。
0908デフォルトの名無しさん
05/01/28 20:54:400909デフォルトの名無しさん
05/01/28 20:57:490910デフォルトの名無しさん
05/01/28 21:01:23でもC++のboolも簡単にintに成り下がるんだよね。
0911デフォルトの名無しさん
05/01/28 21:02:040912デフォルトの名無しさん
05/01/28 21:06:24雑談なら板違いなのでマ板へどうぞw
http://pc5.2ch.net/prog/
# 試験ガンガレ
0913905
05/01/28 21:13:07新しい原始型(?)を作るにはどうすればいいのでしょうか?
0914デフォルトの名無しさん
05/01/28 21:33:23郷に入っては郷に従え
Javaの型や表記にも馴染んでみてくれ。
なんで推奨されないかが後々解ってくるよ。
'Write once, Run anywhare' の意味が解ってくるよ。
0915905
05/01/28 21:39:460916デフォルトの名無しさん
05/01/28 22:19:59hoge = true;
(hoge)?1:0;
こうだろ?
0917デフォルトの名無しさん
05/01/28 22:23:060918デフォルトの名無しさん
05/01/28 23:40:58nullを0にキャストできんことには文句を言わない不思議。
0919デフォルトの名無しさん
05/01/28 23:41:05コントロールクラスでイベントが発生したら、画像用オブジェクトの特定の
メソッドを呼ぶようにしたAbstractクラスを作ったらいいだけじゃん。
コントロールクラスのコンストラクタで勝手に画像オブジェクトをnewして
所有するようにしておけば問題ないだろ。画像のクラスは内部クラスとしておく。
コントロールクラスの動作を変えたいならコントロールクラスを継承して
イベント処理用メソッドをオーバーライドする。画像側の動作を変えたい場合も
やっぱりコントロールクラスを継承して、内部クラスとして画像クラスを継承した
クラスを定義して、コンストラクタでその継承画像クラスをnewして所有するように
変えるだけ。
だいたいコントロールクラスと画像クラスを分けてる段階で、コントロールクラスの
コンストラクタに任意の画像クラスを渡せるようにした方がよっぽど素直な実装だ
と思うけどね。コントロールクラスの継承クラスをつくらなくても画像クラス差し替え放題だし。
0920デフォルトの名無しさん
05/01/29 00:11:31池沼には触れるな
0921デフォルトの名無しさん
05/01/29 00:25:43UNIXや最新技術に興味のある人や
プログラマー・SEになりたい人・業界に興味のある人あつまれ!
http://off3.2ch.net/test/read.cgi/offevent/1105369044/
0922デフォルトの名無しさん
05/01/29 00:26:240923デフォルトの名無しさん
05/01/29 00:28:580924デフォルトの名無しさん
05/01/29 00:30:20readme.txt
0925デフォルトの名無しさん
05/01/29 01:18:49Javaで例えばHogeクラスとFugaクラスを多重継承させるように扱いたい場合は
・Hoge、Fugaをインタフェースにして
・もともとのHoge、Fugaの実装をHogeImpl implements Hoge、FugaImpl implements Fugaにしてから
class HogeFuga implements Hoge, Fuga {
private Hoge hoge = new HogeImpl(); // Hogeインタフェースのメソッドはhogeに全部委譲
private Fuga fuga = new FugaImpl(); // Fugaインタフェースのメソッドはfugaに全部委譲
...
}
のようにするのが常套手段。委譲メソッドを書くのがめんどくさいが。
しかし「インタフェースにすると実装をコピペしなきゃいかん」とか思ってるようじゃアホすぎるぞ。
0926デフォルトの名無しさん
05/01/29 01:34:280927デフォルトの名無しさん
05/01/29 01:38:330928デフォルトの名無しさん
05/01/29 01:53:22argumentsの略だし。
もしくは「引数」だな。
0929デフォルトの名無しさん
05/01/29 01:53:47内部クラスを取り囲んでいる(enclosing)外側のクラスのこと。
0930デフォルトの名無しさん
05/01/29 02:17:24[�@] image=Toolkit.getDefaultToolkit().getImage("hoge.jpg");
[�A] image=Toolkit.getImage("hoge.jpg");
[�A]の方だとgetImageがstaticでないので無理なのはわかるのですが[�@]だと大丈夫
getDefaultToolkit()の戻り値はToolkit型だからメモリ確保されて出来るようになるんですかね?
あと、getImageって抽象メソッドなのに何でそのまま使えるの?
以上二つ、ご教授お願いします
0931デフォルトの名無しさん
05/01/29 02:22:210932デフォルトの名無しさん
05/01/29 02:42:39Toolkitクラスのインスタンスを作ってるように誤解してるっぽいが違うぞ。
「何らかのToolkitのサブクラス」のインスタンスが戻ってくるだけだ。
>あと、getImageって抽象メソッドなのに何でそのまま使えるの?
戻ってきた「何らかのToolkitのサブクラス」ではちゃんと実装されているから。
0933デフォルトの名無しさん
05/01/29 02:44:46プラットフォーム固有のWindowsToolkitとかMacOSToolkit(名前は適当)
とかいったToolkitのサブクラスのインスタンスを返しています。
こいつらにはgetImageの実装があるわけです。
0934デフォルトの名無しさん
05/01/29 03:52:36正確には enclosing instance のことでは?
内部メンバクラスはそれを字句的に直接取り囲むクラスのインスタンスがなければ生成できません.
例えば
class Outer { public class Inner { public class InnerMost { } } }
のクラス Outer.Inner.InnerMost を生成するには,
class Test {
public static main(String[] args) {
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
Outer.Inner.InnerMost im = inner.new InnerMost();
}
}
としなければならい.以下のように継承しておくと,変な構文が隠蔽されていいかも,って誰も使わんよこんな機能.
class C extends Outer.Inner.InnerMost {
public C() { ((new Outer()).new Inner()).super(); }
}
0935デフォルトの名無しさん
05/01/29 04:36:27class Outer { private Inner inner; public Outer(Inner inner) { this.inner = inner; }}
class Inner { private InnerMost im; public Inner(InnerMost im) { this.im = im; }}
class InnerMost {}
で
InnerMost im = new InnerMost();
Inner inner = new Inner(im);
Outer outer = new Outer(inner);
とするのと同じだからな。
>以下のように継承しておくと,変な構文が隠蔽されていいかも
それじゃ他からnew Outer()、new Inner()したインスタンスにアクセスできないだろ。
0936デフォルトの名無しさん
05/01/29 05:07:01逆.外から中のインスタンスへの参照は無い.
* Outer にとって Inner は Inner という名で参照できるクラス Outer.Inner にすぎない.
* Inner にとって Outer は Outer.this という隠れたフィールドで参照されているインスタンス.
class Outer { }
class Inner { private Outer outer; public Inner(Outer outer) { this.outer = outer; }}
class InnerMost { private Inner inner; public InnerMost(Inner inner) { this.inner = inner; }}
Outer outer = new Outer();
Inner inner = new Inner(outer);
InnerMost im = new InnerMost(inner);
>>以下のように継承しておくと,変な構文が隠蔽されていいかも
>それじゃ他からnew Outer()、new Inner()したインスタンスにアクセスできないだろ。
メンバクラスの最適の用途は Adapter パターン(外部インタフェースに現存のクラス適合させるためのラッパー)だから,
アクセスできなくてもかまわないケースはあると思うけど.
まあいずれにしてもメンバクラスを囲むクラス以外から弄るなんて無いな.
class Outer {
private class Inner implements ISomeInterface {
// Outer のフィールド,メソッドにはフリーアクセス
}
public ISomeInterface getAdapter() { return new Inner(); }
}
普通はこんな感じ.
0937デフォルトの名無しさん
05/01/29 14:09:08ところってご存じありませんか?K-means法とか
無ければ自分で実装するのですが、既に誰かが作って公開してるのなら
車輪を再発明するのは馬鹿馬鹿しいので…
0938930
05/01/29 14:22:03有難うございます
ソースの定義だけ見ると戻り値は普通のツールキットだと思ってました
デフォルトのツールキット=プラットフォーム固有のツールキット=ツールキットクラスのサブクラス
そしてそれには抽象メソッドが実装されている、この考えてOKですかね?
public static Toolkit getDefaultToolkit(){・・・}
デフォルトのツールキットを返します。
"awt.toolkit" という名前のシステムプロパティがある場合、そのプロパティは、
Toolkit のサブクラスであるクラスの名前として扱われます。
戻り値:
デフォルトのツールキット
0939デフォルトの名無しさん
05/01/29 15:07:44ボタンを押したらpdfファイルが表示される画面を作りたいのですが、方法が分かりません。
試しに以下のように書いたのですが、うまくいきません。
OutputStream out = response.getOutputStream();
FileInputStream in = new FileInputStream("C:/sample.pdf");
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=sample.pdf");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
out.close();
in.close();
ちなみにpdfではなくjpgファイルだとうまく表示されました。
どのようにしたらいいのでしょうか?
ご教授お願いします。
0940初心者です。
05/01/29 17:13:12JSPの勉強をしているのですがなぜか
私の購入した【EclipseではじめるJavaプログラミング入門】
のP271において
JSPソース上に
<%=new java.util.GregorianCalender().getTime() %>
と入力すれば正常に 例:Thu May 13 15:01:05 JST:2004
といった具合に表示されるハズなのですが
>The server encountered an internal error () that prevented it from fulfilling this request.
と表示されてしまいます。一体なぜなのでしょうか?
誰か詳しい人教えて下さい。お願い致します。
0941デフォルトの名無しさん
05/01/29 17:17:57response.setHeader("Content-Disposition", "attachment; filename=sample.pdf");
を
response.setHeader("Content-Disposition", "inline; filename=sample.pdf");
にする。
あと、ストリームへの書き込みはバッファ使え。
0942デフォルトの名無しさん
05/01/29 17:19:25その行じゃない部分が違っている可能性は?
また、他のJSPは実行可能か?そのソースじゃなくて環境の問題は無いのか?
0943初心者です。
05/01/29 17:20:02JSP????: /mysql_1_f.jsp ???14?????????????
?????????????????:
[javac] Compiling 1 source file
C:\eclipse\workspace\mysql_1\work\org\apache\jsp\mysql_005f1_005ff_jsp.java:56: ?????????????
????: ??? GregorianCalender
?? : util ? ?????
out.print(new java.util.GregorianCalender().getTime() );
^
??? 1 ?
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:127)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:351)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:415)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:458)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:553)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:291)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
こんな意味不明のエラーが表示されます。
なぜか全然検討が付かないです(´Д⊂ モウダメポ 。
0944初心者です。
05/01/29 17:22:08一応、
<%=new java.util.GregorianCalender().getTime() %>
を抜いてhtml文を書き込む文には問題無く表示されるのですが
なぜか<%= *** %>を付けるとおかしくなってしまいます。
0945デフォルトの名無しさん
05/01/29 17:51:48あります。英語の情報源も対象に含めて検索してみよう。
0947デフォルトの名無しさん
05/01/29 19:58:21うろ覚えで申し訳ないけど
CalendarクラスのgetTime()メソッドは昔はprotectedで最近publicになった経緯があったような気がします。
古いJDK使ってない?
0948デフォルトの名無しさん
05/01/29 19:59:28なんかこんなエラーでした。
警告: リリース 1.4 では assert はキーワードなので識別子として使うことはできません。
だれか知ってる方、納得いくように説明して。
0949947
05/01/29 20:14:22で。エラーの原因分かった。
GregorianCalend"e"r
じゃなくて
GregorianCalend"a"r
0950デフォルトの名無しさん
05/01/29 20:44:43予期せぬエラーとかあんまりないでしょ?
0951デフォルトの名無しさん
05/01/29 21:47:11そうすれば上位のプログラムがエラー処理できるから。
0952デフォルトの名無しさん
05/01/29 21:49:11それ以外は投げまくる
0953デフォルトの名無しさん
05/01/29 22:18:27get,post両方から呼ばれる可能性がある場合、書籍ではdoPostからdoGetをそのまま呼び出したりしているのが多いです。
こういった方法を使うとシンプルでわかりやすいのですがこれで後々に問題が起きるようなことはないのでしょうか?
0954デフォルトの名無しさん
05/01/29 22:28:39ソ・ー・ス! ソ・ー・ス!
0955デフォルトの名無しさん
05/01/29 22:41:53どいういう問題が起きることを想定している?
何が不安なのかさっぱりわからん
0956デフォルトの名無しさん
05/01/29 22:49:400957デフォルトの名無しさん
05/01/29 23:56:54-source 1.4 つけれ
ttp://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/javadoc/whatsnew-1.4.html
0958デフォルトの名無しさん
05/01/29 23:58:55正規表現を使わない置換をするのに良い方法はないでしょうか?
0959デフォルトの名無しさん
05/01/30 00:04:51言いたいことがよく分からんが。。
string.replaceAll("abc","def");
ってこと?
0960デフォルトの名無しさん
05/01/30 00:09:54個人的には投げまくった例外をどこで受け止めるかがうまく
切り分けられないんですが、なんか指標ってあるんですかね?
たとえばDBアクセス、データ取得、bean、データ加工、業務、表示みたいにMVCを
もうちょっと細かくパッケージングしたときとか、DBの例外をどこで誰が受け止めるか
とかよく悩む。モデリングはうまく行っているけれども処理ロジックの切り分けができてないからだ
ってよく言われるんですがね。その通りだと頭でわかってても・・・。
0961デフォルトの名無しさん
05/01/30 00:15:44ファイル、ネットワーク、データベース等は
予期せぬ(プログラム側では防げない)エラーだと思うけど。
0963958
05/01/30 00:17:28レスありがとうございます。
abcの部分に正規表現が使ってあっても、正規表現の機能を使わず
単純に指定された文字列を置き換えたいんです。
例えば、
"[abc]".replaceAll("[abc]","def")
の結果を、
[defdefdef]
ではなく、
def
にしたいんです。
0964958
05/01/30 00:22:19my name is [name]
と書いたテンプレートを作っておいて、"[name]" を "Yamada"に置き換えたいんです。
これをreplaceAll("[name]","Yamada") としてしまうと、期待する結果にならないので。
置換対象の文字列を、正規表現になってしまうような形にしなければ良いのでしょうが、
他に良い書き方が思いつきません。
もしこういうケースで、一般的に使われる書き方があれば教えて下さい。
0965デフォルトの名無しさん
05/01/30 00:24:38"[ABC]".replaceAll("\\[ABC\\]","def")
JavaDocちゃんと読め。
0966デフォルトの名無しさん
05/01/30 00:28:45[]はメタ文字だぞ?それやるならこうだろう。
"[abc]".replaceAll("\[abc\]","def")
0967デフォルトの名無しさん
05/01/30 00:38:280968958
05/01/30 00:40:53>>966
ありがとうございます。
たしかにそうなのですが、\\[ABC\\]の部分を[ABC]と入力して置換出来るようにしたいんです。
つまり、置換文字列を指定する人が、正規表現を知らなくても使えるように、
単純な文字列の置換機能にしたいんです。
そういう考え方が間違ってるのかも知れませんが。。。
0969デフォルトの名無しさん
05/01/30 00:45:02正規表現の特殊文字を先に置き換えるか、自分で実装するか。
0970958
05/01/30 00:47:13例えば、{ } ( ) だとやはり正規表現で使われるようですし、
#ABC#にしてしまうと開始と終了が同じ記号なのでイマイチな気がします。
0971デフォルトの名無しさん
05/01/30 00:53:51Java1.5の新メソッドに、String#replace(CharSequence c1, CharSequence c2)
がありますが・・・
0972958
05/01/30 01:03:31>>971
Java1.4では、自分で作るしかないようですね。
Java1.5も見てみます。
他のレスをくれた方もありがとうございました。
0973デフォルトの名無しさん
05/01/30 01:06:03もとの文字列=my name is [***]の*以外が固定の文字列なら、
Tokenizerで"["までパースしてってのは駄目かな。
Tokenizerじゃないにしろ、一気にやろうとしないで、最初に[]の中身を取り出すようにしたらいいと思う。
0975940
05/01/30 01:16:11そうなのですか?知りませんでした。
今のJDKは参考書に付属のCDからのコピーを使用して
いる為古いかもしれません。(´A`|||)
Calend a r が原因の様でした。申し訳ありません。
そしてありがとうございました(o^o^o)¥
0976デフォルトの名無しさん
05/01/30 03:22:28SunのサイトでJ2SE 1.4の日本語版ドキュメントをダウンロードしようと思ったら、
英語版のファイルしか見つかりませんでした。
どなたか、ありかを教えてくださいませ。
0977デフォルトの名無しさん
05/01/30 03:36:37これでしょうか。
http://java.sun.com/j2se/1.4.2/ja/download.html
0978デフォルトの名無しさん
05/01/30 03:38:34ttp://java.sun.com/j2se/1.4.2/ja/download.html
0979デフォルトの名無しさん
05/01/30 03:39:46寝る.
0980デフォルトの名無しさん
05/01/30 04:26:08なんかの言語にあったんだよな。
0981デフォルトの名無しさん
05/01/30 04:27:330982デフォルトの名無しさん
05/01/30 05:11:11http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/regex/Pattern.html#quote(java.lang.String)
ただし @since 1.5
0983デフォルトの名無しさん
05/01/30 06:53:35{
public static void main(String args[])
{
System.out.println("10進数の10は"+10+"です。");
}
}
学習で上記の文をコンパイルしたのですが
C:\javac sample.java
C:\>java sample6
Exception in thread "main" java.lang.NoClassDefFoundError: sample6 (wr
Sample6)
at java.lang.ClassLoader.defineClass1(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)
このようなエラーが出てしまいます・・・なにか間違っているのでしょうか・?
0984976
05/01/30 07:19:10おはようございます
いやいや、そのページにはもう何度となく飛んだんですよ。
でも、そこの「日本語版 J2SE 1.4.0 ドキュメント Download」というのを押しても、
ダウンロードできるファイルが英語版のドキュメントしかないんです。
がんばって英文を読んでみても、言語を指定できるような項目はなさそうだし、
これは俺の探し方が悪いのか、それとももとから存在しないのかと疑問に思って質問しました。
いっそのこと、HP巡回ソフトで必要な部分だけもらってくべきでしょうか?
0985デフォルトの名無しさん
05/01/30 09:28:45"LICENCE AGREEMENT"の次のページに
(j2sdk-1_4_0-doc-ja.zip, 33.13 MB)
というリンクない?
0986mysql
05/01/30 11:02:38どうやら関係無いのでしょうか?
テーブルを作成(大文字)し
小文字でinsert文を使用しても何ら問題無く動きます。。
0987958
05/01/30 12:05:47そうですね。こんな感じなら、コードは短くて済みそうです。
preReplace("[abc]").replaceAll(preReplace("[abc]"),"def")
public static String preReplace(String s) {
return s.replaceAll("\\[","#FROM").replaceAll("\\]","#TO");
}
ありがとうございます。
0988デフォルトの名無しさん
05/01/30 12:16:11自分で気付ける範囲でしょうがー
0989デフォルトの名無しさん
05/01/30 12:32:15ファイル名を Sample6.java にする。(sample6.java ではNG)
0991デフォルトの名無しさん
05/01/30 12:41:15【初心者】Java質問・相談スレッド61【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1107056382/l50
0992デフォルトの名無しさん
05/01/30 12:51:38Sunに文句言うか、あきらめて
http://java.sun.com/j2se/1.5.0/ja/download.html
これ使う
0993デフォルトの名無しさん
05/01/30 13:16:22>>985
ファイルはあるんだって。
0994デフォルトの名無しさん
05/01/30 13:23:38ファイルはあるけどリンクが間違ってる。
英語のページに飛ばされたあと、もう一度そこから選ぶと出てくる。
0995デフォルトの名無しさん
05/01/30 13:48:19Windows版MySQLはテーブル名の大文字小文字も区別しない
(というか全部小文字に揃えられてしまう)。
しかしLinux版MySQLはテーブル名の大文字小文字を区別するので注意。
どっちもSQLは大文字小文字を区別しないけど(selectでもSELECTでもいいという意味で)。
0997986
05/01/30 15:43:58丁寧にどうもありがとうございます(^-^)¥
そうだったんですか。何かおかしぃーなぁーと思っていました。
自分の今持っているSQLの本は因みにACCESS(SQL)様
の本を見て今勉強しています。
ありがとうございましたo(^o^)o
0998デフォルトの名無しさん
05/01/30 16:41:310999デフォルトの名無しさん
05/01/30 16:42:101000デフォルトの名無しさん
05/01/30 16:44:19http://pc5.2ch.net/test/read.cgi/tech/1107056382/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。