トップページ⇒tech
1001コメント348KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2008/02/08(金) 19:48:24
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc10.2ch.net/hp/

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
【初心者】Java質問・相談スレッド111【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1200151522/

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝のう存じます。

次スレは>>980あたりで。
06526482008/02/23(土) 04:16:48
作ったプログラムのどうも動作が遅くて、スレッドダンプをみてみたらほとんどのスレッドが
コンストラクタ
java.lang.AbstractStringBuilder.AbstractStringBuilder(int capacity)内の
value = new char[capacity];
↑のところでブロックしてたので、非同期でnewは呼べないのかなと思ったんですが
ひょっとするとcapacityが大きいときだけ同期呼び出しだったりします?
06536482008/02/23(土) 04:18:31
>>651
つまり非同期には呼ばれないってことですね。
0654デフォルトの名無しさん2008/02/23(土) 04:40:17
hou
0655デフォルトの名無しさん2008/02/23(土) 04:46:29
>>652
ヒープに配列を生成する過程でロックされてそうだ。
仮に非同期に実行できたとしても体感時間は変わらないと思う。

仮にヒープの拡張に時間が掛かってるなら、
最初からヒープを必要な分大きくしておけば少しは早くなる。

あとは初期にやたら時間が掛かるなら、確保するサイズを小さくして、
最大確保を遅延させるのはどうか。
確保するたびに前のゴミが出るのと時間が掛かるけど。
0656デフォルトの名無しさん2008/02/23(土) 09:57:09
>>652
確保するサイズが大きいとスレッドごとのプールから取れなくなるから同期が必要になる
というかそんな大きなStringBuilderをそんな頻繁に確保するってことがまずい気がする
GC起きまくってないか?一度 -verbose:gc で見てみ
確保したのを使いまわすと改善するんじゃないかな
0657お2008/02/23(土) 11:14:43
j2dk1.4.2を使っているのですが、
javacが使えず、環境変数の設定をすると、一度できたんですが、
2回目からできなくなりました。
しかも変数の設定を変えていたので元のがどんなのだったかがわかりません…。
環境変数の、Pathを教えて下さい。
0658デフォルトの名無しさん2008/02/23(土) 11:16:24
>>657
>>1
0659お2008/02/23(土) 11:29:59
読んでもよくわかりません。どなたかー
0660デフォルトの名無しさん2008/02/23(土) 11:51:13
>>659
本当に読んだか?具体的にどの手順がわからないんだ
http://java.sun.com/javase/ja/6/webnotes/install/jdk/install-windows.html#path
0661デフォルトの名無しさん2008/02/23(土) 14:00:48
>>655
>>656
なるほど!スレッドごとのプールから取れなくなるからってことですか。
このStringBuffer自体はデバッグのための文字列だったのでここの部分を取り払ったら
ロック争奪がなくなってスムーズに動きました。
ありがとうございました!
0662デフォルトの名無しさん2008/02/23(土) 14:05:43
>>647
>>650
いろいろありがとうございます
Intのうち一つはflagで3種類の値しかとらないのでboolean2つで頑張って
もう一つのIntをshort型にするとだいぶ減りそうな気がしました。
後で実装してみようと思います
boolean2つのところはBitSet?を使えばいいのですかね。。
後でjavadoc読んでみます。
0663デフォルトの名無しさん2008/02/23(土) 16:05:39
下記の構造でメインクラスtestから、VelocityのgetTemplateをコールしたところ、エラーが出ました。
test.jar
+-dir1
 +-test.class
 +-templ.properties

これで、
> java -jar test.jar
と実行すると
ResourceManager : unable to find resource 'templ.properties' in any resource loader.
というエラーが出ています。

test.jarのおかれているディレクトリにtempl.propertiesがあるか?を探しているようで、
test.jarの中を探していないみたいです。
Main-Class:はdir1.testと指定してあるのでmainはコールできてます。

なにか指定し忘れてることあるんでしょうか。。。お願いします。
0664デフォルトの名無しさん2008/02/23(土) 16:25:09
BufferedImageのディープコピーの仕方を教えてください
0665デフォルトの名無しさん2008/02/23(土) 16:30:43
もう1回BufferedImageを作れ
0666デフォルトの名無しさん2008/02/23(土) 17:04:50
Javaの初心者にExceptionのことを教えたいのですが、
J2SEのクラスの、Exceptionをthrowするメソッドで、
一番基本的で分かりやすいものって何だと思いますか?
コンストラクタじゃない普通のメソッドでお願いします。
0667デフォルトの名無しさん2008/02/23(土) 17:11:09
ぬるぽ
0668デフォルトの名無しさん2008/02/23(土) 17:11:27
NumberFormatException
0669デフォルトの名無しさん2008/02/23(土) 17:19:51
いや、Exception自体じゃなく、
Exceptionをスローするメソッドです。
例えば、FileOutputStream#write(byte[] b)とか。
0670デフォルトの名無しさん2008/02/23(土) 17:24:40
>>666
// Exception 自体は throw も catch もするな。を教える
実行時例外なら、Integer.parseInt(String) で NumberFormat
普通のヤツは意図的に起こすだけなら ClassNotFound とか IO とか

NumberFormat は良い例ではないのよね。
実行時例外の割りに、catchされるように組み込まれてるし。

まあ、別に無理に教える必要は無いんじゃないかな
それよりも知らないメソッドは API doc で調べるように仕込むべし。
0671デフォルトの名無しさん2008/02/23(土) 17:38:36
ありがとうございます。
実行時例外じゃなくて、
IOExceptionとか、メソッド呼び出すと絶対try catchしないといけないヤツです。
0672デフォルトの名無しさん2008/02/23(土) 17:42:38
new FileInputStream
ファイルがなければFileNotFoundExceptionを投げる
0673デフォルトの名無しさん2008/02/23(土) 17:45:47
って、コンストラクタはだめなのか
じゃあ Socket#connect
接続できなければ IOException
0674デフォルトの名無しさん2008/02/23(土) 17:55:35
コンストラクタでないわかりやすいもの・・・
ImageIO#read(File) とか?
0675デフォルトの名無しさん2008/02/23(土) 18:50:51
Stream系のIOExceptionじゃね?
try-catch-finally と合わせて覚えるのがセオリーかと
0676デフォルトの名無しさん2008/02/23(土) 19:40:42
みなさんありがとうございます。
finnalyも合わせて、Stream系で説明してみようと思います。
0677デフォルトの名無しさん2008/02/23(土) 20:55:38
IOException もいいが ParserConfigurationException も捨てがたい
0678デフォルトの名無しさん2008/02/23(土) 23:54:30
学校でちょっとプログラムに興味あって色々自分で勉強してみたんですがJavaって簡単過ぎてつまらないんですがこんなので仕事になるんでうか?
HTMLも簡単だったし仕事では何やってるんですか?
0679デフォルトの名無しさん2008/02/23(土) 23:58:40
オナヌー
0680デフォルトの名無しさん2008/02/24(日) 00:00:51
>>678
ひとつだけいえることはつまらないと思う人は
これを仕事にしてはいけませんよ。
0681デフォルトの名無しさん2008/02/24(日) 00:01:05
簡単か難しいかと、仕事になるかならないかは、関係ないからな
なにせ「単純労働」っていう言葉もあるくらいだ
0682デフォルトの名無しさん2008/02/24(日) 00:01:06
言語は簡単でいいんだよ
0683デフォルトの名無しさん2008/02/24(日) 00:40:01
27歳になってJAVAで開発チームに入る事になりました。
今までの業務開発経験は、COBOL3年あとはVBAぐらいですかね・・。
4年程前にSUNJAVA1.4の資格は取得したんで基礎的な事は大丈夫と思います。
実際に業務で役に立つ為に、他にどんな勉強しておけばいいですかね?
とりあえずTOMCATとMYSQL入れて、なんか作ってみようかなと思ってますが、
業務レベルでは全く無意味なんでしょうね・・
0684デフォルトの名無しさん2008/02/24(日) 00:52:48
tomcatとmysqlが何で無意味なの?普通に業務レベルで使うのに。
とりあえずeclipseで簡単なwebアプリでも作ってみたら?
06856832008/02/24(日) 01:06:18
やっぱ業務でも使うんですね。
いや、簡単な事やっても業務レベルでは通じないかなぁと。
でも基本的な事分かってると大分入りやすいですよね。
適当にDB構築してWEBアプリ作ってみます。
0686デフォルトの名無しさん2008/02/24(日) 01:32:01
適当にDB構築できちゃうレベルなら心配無用だと思うけど…
0687デフォルトの名無しさん2008/02/24(日) 08:34:52
class calcException extends Exception {
}

public class sample53 {
public static void main(String[] args) {
try {
calc(2,2);
}catch (calcException e) {
System.out.println("calcExceptionが"+"throwされました");
}
}

static void calc (int i,int j) throws calcException {
if(i == j) {
calcException ce = new
calcException();
throw ce;
}
System.out.println(i*j);
}
}
これなんですけど、
if(i == j) {
calcException ce = new
calcException();
throw ce;
この部分でどういう処理を行っているのですか?
0688デフォルトの名無しさん2008/02/24(日) 08:50:07
普通に例外なげてるんじゃね
0689デフォルトの名無しさん2008/02/24(日) 09:23:16
throw ceってなんですか?
もしiとJの値が同じなら、オブジェクトを作成して、その後はなんですか?
0690デフォルトの名無しさん2008/02/24(日) 09:30:37
だから例外投げてるんだよ
0691デフォルトの名無しさん2008/02/24(日) 10:10:44
たびたび申し訳ないが、
static void calc (int i,int j) throws calcException
この部分はこの式は例外を投げる式ですよってこと?
0692デフォルトの名無しさん2008/02/24(日) 10:14:30
このメソッドはcalcExceptionを投げ得ますよってこと。
0693お2008/02/24(日) 10:27:48
>>660
[追加します]とありますが全部変えてしまいました。全部どう記述するのか聞きたいです。
0694デフォルトの名無しさん2008/02/24(日) 10:33:26
>>693
つ ttp://okwave.jp/qa2940675.html
0695デフォルトの名無しさん2008/02/24(日) 11:13:00
>>692ありがとうございました><
0696お2008/02/24(日) 11:30:48
wbemの場所ってわからないことないですか?
0697お2008/02/24(日) 11:36:33
設定方法わかりませーん
0698デフォルトの名無しさん2008/02/24(日) 11:57:29
�@F8押す→3秒待機→F8押す
�Bこの処理を500回ループした後
�AF7押す→1秒待機→F8押す→1秒待機
�C処理�Aを30回繰り返し�@に戻る

こういうプログラムはjavaだったら可能でしょうか?
ゲームに使うのでVBみたいにF8押したことにしますってのではなくて
実際に押すことが重要なんです
0699デフォルトの名無しさん2008/02/24(日) 12:09:13
>>698
>>96
VB が何をやってるのか知らんが、
人がキーを押したときと同じような結果をシミュレートすることは可能。
// 自動演奏みたいにキーボードが動く……誰かそういうヤツを作ってください。
0700デフォルトの名無しさん2008/02/24(日) 12:16:39
VBではSENDKEYなるメソッドがあり
それを使うとたとえば

F8押した時、1+1の処理をするというプロシージャがあった場合

SENDKEYによって1+1を呼び出すことはできますが
実際にF8を押すという動作がウィンドウズ内で行われている
というわけではないようです
(押した時のようにキーをへこませるといわけではありません。念のため)

ようするに、キーを押した後の処理ではなく、キーそのものを押したことを
キーを押さずにウィンドウズに認識させたい
0701お2008/02/24(日) 12:22:46
設定方法わかりませーん
0702デフォルトの名無しさん2008/02/24(日) 12:25:25
>>700
なるほど。イベントのトリガーとして登録させてるようなものですかね。
ということで、96 を実行することで少しは感動してもらえそうな予感。
0703デフォルトの名無しさん2008/02/24(日) 12:31:18
どうやらjavaなら可能なようですね

勉強します
0704112008/02/24(日) 12:31:27
画面A,B,Cとあり画面CのB画面終了ボタンを押すとB画面のみ終了させたいと考えてますが
さっぱりわかりません。どなたかご教授願います。
/*ソースここから*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Gamen extends JFrame implements ActionListener{
private JButton b1 = new JButton("B画面表示");
private JButton b2 = new JButton("終了");
private JButton b3 = new JButton("C画面表示");
private JButton b4 = new JButton("B画面終了");
public void GamenA() {
getContentPane().setLayout(new FlowLayout());
getContentPane().add(b1);
getContentPane().add(b2);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("A画面");
setSize(200, 100);
setVisible(true);
b1.addActionListener(this);
b2.addActionListener(this);}
public void GamenB() {
getContentPane().setLayout(new FlowLayout());
getContentPane().add(b3);
getContentPane().add(b2);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("B画面");
setSize(200, 100);
setVisible(true);
b3.addActionListener(this);
b2.addActionListener(this);} //続きます
07057042008/02/24(日) 12:33:21
すみません>>704は11さんとは無関係です。 続き
public void GamenC() {
getContentPane().setLayout(new FlowLayout());
getContentPane().add(b4);
getContentPane().add(b2);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("C画面");
setSize(200, 100);
setVisible(true);
b4.addActionListener(this);
b2.addActionListener(this);}
public void actionPerformed(ActionEvent e){
if(e.getSource() == b1){
Gamen bb = new Gamen();
bb.GamenB();
}else if(e.getSource() == b2){
System.exit(0);
}else if(e.getSource() == b3){
Gamen cc = new Gamen();
cc.GamenC();
}else if(e.getSource() == b4){
//B画面終了ボタンを押してBのみ画面を終了させたい。
}
}
public static void main(String[] args) {
Gamen aa = new Gamen();
aa.GamenA();
}
}
/*ソースここまで*/
よろしくお願いします。
0706デフォルトの名無しさん2008/02/24(日) 12:34:45
>>698
Javaはある程度のことしかできないし、そういうものであれば既存のソフトで腐るほどありますよ。
自分でやりたいなら何らかのスクリプトを使うことをおすすめしておきます。
0707デフォルトの名無しさん2008/02/24(日) 12:43:52
一つ一つのフレームは、その他のフレームのインスタンスを持ってないから現状では無理。
閉じさせるフレームのインスタンスを持たせて、それでactionPerformedでdisposeしてやれば実現できるけど・・・継承とかそこらへんの意味を見直した方がいいと思うよ。
07087052008/02/24(日) 12:53:30
>>707様
ありがとうございました。
勉強しなおしてきます。
07096382008/02/24(日) 13:30:03
>>639
業務なのでスタックとレースはちょっと貼れません・・・


実際に発生している問題は

パターン1
setStringでパラメータを19個設定
検索ヒット件数が10件以下
→問題なし

パターン2
setStringでパラメータを19個設定
検索ヒット件数が11件以上
→ResultSetでlastや、11件目のnextで例外発生
 スタックとレースに配列の範囲外を指定(詳細19)というエラーが出力される。
 ※パラメータを15や11にした場合も同様に(詳細15)のように出力される。

パターン1と2で使用しているSQLは全く同一。
パターン1と2の違いはパラメータの1つの日付の範囲を数ヶ月広げているだけ。

パラメータを全て直接SQLに埋め込んだ場合、データが件数分正しく取得できます。

パラメータに上限とかあるのでしょうか?
SQLはそれなりに大きいです。100行程度。
0710お2008/02/24(日) 14:16:01
設定方法わかりませーん
0711デフォルトの名無しさん2008/02/24(日) 14:16:23
>>709
Oracle なら、詳細19とか詳細15とかマニュアル嫁
それの何処に配列が出てくるのか謎
0712デフォルトの名無しさん2008/02/24(日) 14:18:34
問題ない部分だけの抜粋でもいいからスタックトレース貼ったらどうか。
例外は本当にOJDBCで出てるのか?
07136382008/02/24(日) 14:29:54
ResultSetやPreparedStatementをデバッガで除くと、
設定したパラメータが正しい内容で格納されているのは確認しています。

出力される例外はArrayIndexOutOfBoundsExceptionです。
ここでパラメータの数が「詳細 パラメータ数」と表示されます。


>>711
まず、SQLExceptionじゃないです。
上記通り、19とか15はパラメータの総数が出力されます。
謎ですが。


>>712
そもそも業務で外部接続できないので貼れません・・・
例外は、ResultSetのnextが11回目に呼び出されたタイミングで発生します。
ResultSetの処理の中でArrayIndexOutOfBoundsExceptionで死亡します・・・
0714デフォルトの名無しさん2008/02/24(日) 17:02:57
test
0715ちんこ ◆GbXlaaQNk. 2008/02/24(日) 17:05:15
固定長*可変長の配列を作りたいです。
(i方向が固定でj方向が可変、初期は空)
import java.util.*;

public class Test2{
public static void main(String[] args){
ArrayList<Integer>[] a = new ArrayList<Integer>[10];
for(int i=0; i<a.length; i++){
a[i] = new ArrayList<Integer>();
}
a[0].add(3);
System.out.println(a[0]);
}

}

こう書きましたがエラーが出ます。
どこがおかしいのでしょうか?
0716ちんこ ◆GbXlaaQNk. 2008/02/24(日) 17:05:45
age
0717デフォルトの名無しさん2008/02/24(日) 17:07:30
固定長のちんこなんて要りません
0718デフォルトの名無しさん2008/02/24(日) 17:09:04
1〜nの整数の順列をすべて表示するプログラムを書いてみたのですが
もっと簡単にやる方法とかここはこうしたらいいとかあったらアドバイスお願いします

import java.util.*;
class PermutationTest {
public static void main(String[] args) {
Permutation perm1 = new Permutation(4);
perm1.PrintPermutation();
return;
}
}

class Permutation {
private int N;
private int[] ans;
Permutation(int N){
this.N = N;
this.ans = new int[N];
}
void PrintPermutation() {
int[] a = new int[N];
for (int i = 0; i < N; i++) {
a[i] = i+1;
}
this.subPrintPerm(a,0);
}

続く
0719ちんこ ◆GbXlaaQNk. 2008/02/24(日) 17:09:27
まぁまぁそういわず。
なんでエラーが出るのかさっぱり分からなくてね。
0720デフォルトの名無しさん2008/02/24(日) 17:09:46
>>718の続き

private void subPrintPerm(int[] a, int idx) { // 配列a[]から1つ取り出して残りで再帰呼び出し
if (a.length == 1) {
ans[idx] = a[0];
ansを表示;
return;
}
for (int i = 0; i < a.length; i++) {
int[] b = new int[a.length-1];
ans[idx] = a[i];
int j=0;
while (j < b.length) {
if (j < i) {
b[j] = a[j];
} else {
b[j] = a[j+1];
}
j++;
}
this.subPrintPerm(b,idx+1);
}
}
}
0721デフォルトの名無しさん2008/02/24(日) 17:10:15
>>715
>>574-576
0722ちんこ ◆GbXlaaQNk. 2008/02/24(日) 17:16:06
>>721
既出でしたね。
でもそのレスを読んでも分かったよな分からんようなです。
具体的にどうすればいいか示してもらえませんか?
0723デフォルトの名無しさん2008/02/24(日) 17:46:20
今まで書いたソースを消してクソして寝ろ
そして二度とブラウザを開かない
0724ちんこ ◆GbXlaaQNk. 2008/02/24(日) 17:47:03
>>723
分からないんだろ?そういえばいいのにw
0725ちんこ ◆GbXlaaQNk. 2008/02/24(日) 17:58:50
どう考えてもおれのコードと>>574のコードは問題点が違います。
おれが書いた>>715のコードはどこがミスがあるのか
指摘出来る人はいませんか?
0726デフォルトの名無しさん2008/02/24(日) 18:17:40
>715
ジェネリックスを使用したList<E>の配列は作れない、言語仕様的に。
したがって、int[][]のように2次元配列にするか、List<List<Integer>>のようにListにListを入れるべし
0727デフォルトの名無しさん2008/02/24(日) 18:21:32
ArrayList入れたいのかInteger入れたいのかはっきりしろ。
0728デフォルトの名無しさん2008/02/24(日) 18:23:55
可変長のちんこ入れたいです。
0729デフォルトの名無しさん2008/02/24(日) 18:49:14
ArrayList<Integer>[] a = new ArrayList[10];
でいいんじゃね?
0730ちんこ ◆GbXlaaQNk. 2008/02/24(日) 18:54:02
現在作成中の
ダイクストラ法による最短経路探索プログラムです。
http://www.uploda.org/uporg1268729.zip.html
うpしました。
これでListを使えると便利なので使いたいと思ったのですが、
具体的に今findShortestPath @ MainPanel
というのを実装しています。
ここで、toArray周辺でエラーが出て、どういう事だかさっぱり分かりません。

エラーの原因が分かる人は教えてください。
0731デフォルトの名無しさん2008/02/24(日) 19:06:16
730 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
0732ちんこ ◆GbXlaaQNk. 2008/02/24(日) 19:08:57
さっぱり分からない。
0733デフォルトの名無しさん2008/02/24(日) 19:34:33
カレントディレクトリを移動してからEXEを実行したいのですが、下のように書いてもhoge.exeが実行されません。
どう書けばよろしいでしょうか?

Runtime.getRuntime().exce(new String[]{"cmd.exe","/C","cd C:\hoge","hoge.exe"})

hoge.exeが自分のルートにファイルを出力する為、カレントディレクトリを移動しなければならず
この処理を含む実行ファイルをhoge.exeのフォルダに置くのは避けたいです。
0734デフォルトの名無しさん2008/02/24(日) 19:37:52
ProcssBuilder にカレントディレクトリ指定できるものがあったとオモ
0735デフォルトの名無しさん2008/02/24(日) 20:04:50
JMenuBarの中にメニューを2つ追加し、それぞれのメニューの中に
同じ名前のJMenuItem、同じActionListenerをセットした場合、
それぞれのMenuItemが選択された際の処理を変えることは可能でしょうか

ネットや書籍を調べてみたところ、JMenuItemが選択されたイベントが発生した場合、
そのイベントの名前をgetActionCommandで取得し、条件分岐を行っていましたが
同じ名前のItemが存在する場合の条件分岐方法を見付けることができませんでした

諦めてそれぞれのItemに別々のActionListenerクラスをセットするしかないのでしょうか
0736デフォルトの名無しさん2008/02/24(日) 20:07:51
getSourceとJMenuItemを==で比較するという手もある
0737デフォルトの名無しさん2008/02/24(日) 20:21:18
同じ名前のJMenuItemってのが設計おかしくねえか?
見た目が同じだとしても場所とか違う識別子にはなるだろ
0738デフォルトの名無しさん2008/02/24(日) 20:22:28
マルチキャストソケットを利用した、簡易チャットルームの
ようなものを作成しているのですが、現在接続中のユーザーを
表示させる部分がうまくいきません。

IPで表示させるのですが、取得の方法が悪いのでしょうか?
ユーザー表示部分だけなので、宿題スレでなくこちらで質問させて
いただきました。よろしくおねがいします。

http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/217.java
0739デフォルトの名無しさん2008/02/24(日) 20:30:45
うまくいかないでは解らん。
例外が発生するのか、処理がそこを通らないのか、ちゃんと情報を出せ。

あと、直リンできねーぞ
0740デフォルトの名無しさん2008/02/24(日) 20:50:37
>>734
レスありがとうございます。
できればRuntime.getRuntime().execでやりたいと思うのですが、無理でしょうか?
やはりjdk1.5ならProcssBuilderを使った方が良いのかな・・・。
0741デフォルトの名無しさん2008/02/24(日) 21:02:36
>>739
失礼しました。

特にエラーが出て処理が停止するというこはなく、
表示ボタンを押してもnullが返ってくるため
ユーザーのIPが上手く取得できていないのでは
ないかと思っています。

ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/main.htm
の217番にUPしてあります。
0742デフォルトの名無しさん2008/02/24(日) 21:09:58
>741
System.out.println( "ユーザー表示ボタンが押されました" );
って行は通っているのでOK?
あとメッセージの表示は問題ない?
System.out.println( "アドレスを新規登録しました" );
って行は通ってないのか?
0743デフォルトの名無しさん2008/02/24(日) 21:24:27
tomcat5.5
eclipse
を使用してwebアプリを作ろうと思っています。

一つのプロジェクトで複数のTomcatを動かそうと思っています。
この場合、ルートディレクトリが複数で
ソースの出力先フォルダ一つしか設定できません。

ということは片方のルートディレクトリにしか
サーブレットのクラスは置けないため、
片方のtomcatからしかソースを参照できません。

こういった場合どうすればよいでしょうか。
0744デフォルトの名無しさん2008/02/24(日) 21:38:05
早速見ていただきありがとうございます。

>>742
>System.out.println( "ユーザー表示ボタンが押されました" );
の部分はシステムコンソールに表示されているため
通っているものと思われます。また、メッセージも
""で囲まれている部分はきちんと表示されています。

>System.out.println( "アドレスを新規登録しました" );
この行もシステムコンソールでは表示されているので
通っていると思うのですが・・。
0745デフォルトの名無しさん2008/02/24(日) 21:39:48
すまんがだれか、>>743をエスパーしてくれ。
何となく解る気もするが、
なんで、エクスポートしたwarファイルをもう一つのTomcatに置くのではダメなのかが解らない。
0746デフォルトの名無しさん2008/02/24(日) 21:43:33
>>743
何のためにそれをするのか知らないがeclispeはtomcatのラウンチャーじゃない
tomcatは別途立てて、そこにDeployするべき
あとeclipseの1プロジェクトで複数のWebアプリケーションを動作させようというのも間違い
プロジェクトを分けなさない
0747デフォルトの名無しさん2008/02/24(日) 21:50:47
>744
"現在の接続ユーザーは " + userlist + "\n"
の部分だが、JTextAreaにまったく反映されないのか?
中身だけが空なのか、どっちだ?
0748デフォルトの名無しさん2008/02/24(日) 21:53:00
JDK 6 Update 4が落とせないんですが何が問題なんでしょうか。

エラーは承認することができないという内容で、いくつかの環境で試しましたが同様です。
0749デフォルトの名無しさん2008/02/24(日) 21:53:30
>747
userlistの中身がからで
現在の接続ユーザーはnullです という表示になっています。
0750デフォルトの名無しさん2008/02/24(日) 21:56:26
>>749
Chatroom#userlistに何も代入していない
0751デフォルトの名無しさん2008/02/24(日) 22:02:11
>750
回答ありがとうございます。

userlist.add(clientAddr);

上記の文でアドレスが代入されるものと思っていたのですが、
この文の書き方では代入されていないということでしょうか?
■ このスレッドは過去ログ倉庫に格納されています