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

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

レス数が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質問・相談スレッド58【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1102420209/

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */

また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/
0002デフォルトの名無しさんNGNG
2さま
0003デフォルトの名無しさんNGNG
4様上陸ドゾー↓
0004デフォルトの名無しさんNGNG
    ,,r 、,r'"⌒`゙゙ヽ、     +
   /  "~ ヽ、    `ゝ    +
. ./ ,r彡"   、ノ彡' ヽミ`\   +
 r、r.r 、 ソ/ノ     ヽ `ゝ   + 
 _ ,|_,|  ノ   ⌒    ⌒ヾ|ミヾ   + 
 ノ ノノノノ--<-●>-,(-●>ミ ミ    + 素敵な微笑とともに4様上陸!
 ノ ノノノノ   ""    )  " ミ    +
ノ .彡| |     トーー/| | ミ   
   ∧ | \  ..ヾ____/  ..|
   |ノ \  \  "⌒  ノ\
   ヽ 《   ..~ ー--/   /
0005デフォルトの名無しさんNGNG
Smithマダー
0006デフォルトの名無しさんNGNG
      /!/{  / ヾ--r
   _  /     ̄    <_
 _>`´    >>4 __<_
  >    r‐'" ̄ ̄ ノ ̄ ̄`ヽ、―ニ 二
/ ,    |  `ヽ/ ´`ヽ _  三,:三ー二
 ̄/    |   ノヽ--/ ̄ ,    ` ̄ ̄ ̄
 / /⌒ヽ,|  ミ }  ...|  /!
 レ l d     _}`ー‐し'ゝL _
  | ヽ、_,   _,:ヘr--‐‐'´}    ;ー------
  |/|  \   ノ`ヾ:::-‐'ーr‐'"==-
    ヽ/l/|` ー------r‐'"    ̄ ̄
      |└-- 、__/`\-:、   
     __,ゝ,,_____/ \_」 \
0007デフォルトの名無しさんNGNG
Smith! Smith! Smith!
0008デフォルトの名無しさんNGNG
JavaTMプログラムのTMってどういう意味ですか?
あと、TMって上半分に打ち込むにはどうしたらいいですか?
IME使ってます
0009デフォルトの名無しさんNGNG
JNIのDefineClass関数を使った人いますか?
任意に作成したオリジナルのクラスをバイト配列からクラスオブジェクトを生成したり、
インスタンスを戻り値に返したりとか。
どこの板でも「使う意味ない」とか、「Javaで出来るんだからJNIでも出来るはず」
などはぐらかされてばかりなんです。
正しい実装方法知ってる人いますか?
出来ればソースレベルで説明できて、実際に試したことある人が
ありがたいです。

というか、↑の質問に暗号ってどこに書いてある?
あと試してもいないのにと思っているが、
試してだめだって、atmarkitにも記載されてある。
もっち良心的にになろうよ。あげあしとるのもほどほどに。
0010デフォルトの名無しさんNGNG
staticメソッドにするか、オブジェクトにするかをどうやって判断すればいいのでしょうか。
例えばDiceというクラスを作った場合、
staticメソッドでshake(int facet)を呼んで値を取得することもできますし、
Dice(int facet)コンストラクタを使ってオブジェクトを生成したのち、
dice.shake()として値を取得することも出来ます。

どっちが良いのでしょうか・・・?
0011初心者 ◆Java/isQ.c NGNG
>>8
TM は trademark のこと。日本語で言うと商標とか。
上半分に打ち込む方法はソフトウェアごとにそれぞれ。
いずれも Java に関する質問では無いような気がします。
0012デフォルトの名無しさんNGNG
>>8
>JavaTMプログラムのTMってどういう意味ですか?
Trademark; 商標

>あと、TMって上半分に打ち込むにはどうしたらいいですか?
&trade; ™
0013デフォルトの名無しさんNGNG
>>11-12
有難うございます

>™ ™
ごめんなさい、意味が解らないです
コピペしたら変わってるし(´・ω・`)
ソフトによって変わるというのはこの事だと思うのですが
どうしたらいいんですか?
OpenJane使ってます
これが解ったら去ります
0014デフォルトの名無しさんNGNG
>>13
「商標」については国語辞書引けば普通に見つかるので調べて。
ウェブで上付の「TM」を表示したいならアンパサンドtradeセミコロンを入力しろということ。
「実体参照」というものだが、これは国語辞書では出てこないのでGoogleで調べて。


ところでJ2SE5.0を利用できる開発環境って何になるでしょうか。
Eclipseは未対応ですが、他環境ではどうなのでしょう?
0015デフォルトの名無しさんNGNG
Google 検索: 特殊文字
http://www.google.com/search?hl=ja&lr=lang_ja&ie=sjis&q=%93%C1%8E%EA%95%B6%8E%9A
0016デフォルトの名無しさんNGNG
>>13
どっちかっつうとこの世から去って
0017デフォルトの名無しさんNGNG
>>10
その例なら、現実のDiceを考えればfacetはDiceの属性なんだから、Dice(int facet)コンストラクタが正解。

staticで用意するにしてもあくまでそれはユーティリティメソッドであって
内部で return new Dice(facet).shake(); するだけ。

・・・shakeってのが激しく気持ち悪いが
001813NGNG
>>14-15
有難うございます
投稿した後、また変換されてるのを見て
自分でも気づきました
迷惑かけてスイマセンでした
0019デフォルトの名無しさんNGNG
>>14
Eclipse3.1 M4
002010NGNG
>>17
ありがとうございます。よくわかりました。

確かにshakeは一考の余地がありそうですね。
rollか、shootあたりが良さそうです。
0021デフォルトの名無しさんNGNG
import java.util.Random;
public class Test
{
public static void main( String[] args )
{
Random random = new Random();
int[] array = new int[5000000];
for( int i = 0 ; i < array.length ; i ++ )
array[i] = random.nextInt();

int loop = 10;
int[] buf = new int[ array.length ];
System.out.println("array copy");
long start;
for( int i = 0 ; i < loop ; i ++ )
{
start = System.currentTimeMillis();
System.arraycopy( array , 0 , buf , 0 , array.length );
System.out.println( System.currentTimeMillis() - start );
}

System.out.println( "assignment copy" );

for( int i = 0 ; i < loop ; i ++ )
{
start = System.currentTimeMillis();
for( int j = 0 ; j < array.length ; j ++ )
buf[j] = array[j];
System.out.println( System.currentTimeMillis() - start );
}
}
}
0022デフォルトの名無しさんNGNG
>>21で
array copy
220
220
160
170
270
220
170
270
170
220
assignment copy
320
330
330
330
280
380
280
380
270
330
になった。
微妙にarraycopyつかったほうが早いな
0023デフォルトの名無しさんNGNG
>>14
JBuilderの新しい奴も5.0対応してる
0024デフォルトの名無しさんNGNG
>>14
Netbeans 4.0
0025デフォルトの名無しさんNGNG
>>21,22
まあ配列アクセス時の(内部的な)添字チェックのせいだろうな。
0026デフォルトの名無しさんNGNG
いきなり躓きました、助けてください
エラーメッセージのs"Hello World"は最初に作ったソースのsです
その時エラーが出て(以下のエラー)見直しても解らなかったのでもう一度sを変更し
ソースを書き直して(以下のソース)コンパイルしてみたのですが
エラーメッセージも変わりませんでした。
ソースじゃなくて何か違う問題があるのかな
アドバイスください

//ソース
public class Smp1{
public static void main(String args[]){
String s="My First java.";
System.out.println("文字列sの値は"+s+"です");
}
}

//エラーメッセージ
検出値 : java.lang.String
期待値 : String
String s = "Hello World";
^
エラー 1 個
0027デフォルトの名無しさんNGNG
>>26
普通にコンパイル通るよ、なんか環境壊れてない?
002826NGNG
>>27
そうですよね
エラーメッセージすら変わらない時点で
何かがおかしいと思ってたんだけどその何かがわからん
環境変数もしっかりやったし何故だろうか
もう一度ダウンロードからし直すかな('A`)
0029デフォルトの名無しさんNGNG
え?
0030デフォルトの名無しさんNGNG
>>26
パスの通っているどこかにStringという名前のクラスがあるんだと思います。
とりあえずそれを消しましょう。
0031デフォルトの名無しさんNGNG
つい先ほどJDL1.3から1.5にインストールしなおしたのですが
1.5にしてからアプレットを作るとIEで表示されなくなりました左下にload class not foundとでる
(1.3でコンパイルしたときは表示されました)
アプレットビューワーを使うと表示できました

そのためHTML CONVERTERをインストールして使用してみたのですが
左上に変なマークがでてそれが消えるとアプレットがインストールする部分がなくなってしまいました
簡単に言うとHTMLの背景一色になってしまいます

これ何が悪いのでしょうか?
どうしたらアプレットを表示できるようになるか分かる方いたらお願いします
0032デフォルトの名無しさんNGNG
JDL
003331NGNG
JDLじゃないですJDKです
タイプミスすみません
0034初心者 ◆Java/isQ.c NGNG
>>26
String を java.lang.String に書き換えてみては?
もし String という名前のクラスを自作したことがあれば、
java.lang.String でなく、そちらを参照している可能性が。
0035初心者 ◆Java/isQ.c NGNG
>>30
PATH ではなく CLASSPATH ですよね?
CLASSPATHに含まれる String クラスを消さなくても、
>>29 の対応で良いかと思いますが、いかがでしょう?
0036デフォルトの名無しさんNGNG
>>31
1.3でもターゲットかえないとダメだよ
たまたま動いていたに過ぎない

たぶん5.0で問題でたということはStringBuilderまわりかな
003731NGNG
StringBuilderってどこのことだかちょっと分からないのですが

import java.applet.Applet;
import java.awt.*;
public class applet extends Applet
{
public void paint(Graphics g)
{
g.drawString("Hello from Java!",60,100);
}
}
ソースです
0038デフォルトの名無しさんNGNG
>>26
開発環境を教えてください。
JBuilderなどのIDEの前バージョンを使ってると、IDEのコンパイラと
JDK1.5の環境の不整合が出るケースがあり
"xxx" + text + "xxxx" の様な文字列連結式を使うとエラーが出ます。
0039デフォルトの名無しさんNGNG
>>35
全てのjava.lang.Stringを完全限定名で指定しなければならなくなりますよ。
せめてパッケージに入れるべきでは。
0040デフォルトの名無しさんNGNG
String A="0123456789";
String B="ABCDEFGHIJ";
main(){
start();
System.out.print(B);
}
run() {
System.out.print(A);
}


これ実行したら

>>012345AB678C9

たまにこんなふうに出力されるでしょうがどうやって対処できますか?
0041デフォルトの名無しさんNGNG
>>40
System.out.print(B); のまえに、スタートしたスレッドに対してjoin()を呼び出す。
0042デフォルトの名無しさんNGNG
>>31
javac -target 1.1 HelloApplet.java

1.4ではデフォルトターゲットが1.2に、1.5ではデフォルトターゲットが1.5に
変わったから-targetオプションなしではMS-JVM(1.1.4)環境で動くクラスファイルが生成されない。
0043デフォルトの名無しさんNGNG
printlnは同期化されてるだろ
0044デフォルトの名無しさんNGNG
>>39
ご回答ありがとうございます。納得しました。

自分の場合、言語の処理系を開発していた際、その中で String や Integer など、
java.lang パッケージ内のクラスと名前が被るクラスを作る機会があったため、
その後、java.lang.String などと完全限定名で指定する癖がついていました。

このため、特に面倒には感じなかったのですが、
普通に考えると、完全限定名の使用は面倒かもしれませんね。
0045初心者 ◆Java/isQ.c NGNG
>>44
名前を入れ忘れました。orz
0046デフォルトの名無しさんNGNG
お願いしまふ。以下はデータベースを利用するためのユーティリティクラスで、
JNDIを利用してコネクションを取得するのだが、sqlもアクセスも使わずテキストファイルを
書き込んだり読み込んだりするかたちにしたい。
import java.util.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
public final class DBUtil {
private static DBUtil obj = null;
private Connection con = null;
private Statement stmt = null;
//このクラスのインスタンスを取得するための唯一のメソッド
//ServletContextを渡し、この中でコンテキストパラメータを取得する
public static synchronized DBUtil createInstance()
throws Exception {
if(obj == null) {
obj = new DBUtil();
}
return obj;
}
//このコンストラクタはprivateであるので、外部からは利用することができない
private DBUtil() throws Exception {
Context ctx = new InitialContext();
0047デフォルトの名無しさんNGNG
>>46続き
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/yasaishop");
con = ds.getConnection();
stmt = con.createStatement();
}
//新規ユーザを登録するメソッド
public synchronized boolean addUser(User user) throws Exception {
//登録しようとしているIDが存在するかチェック
String sql = "SELECT * FROM USER WHERE user_id='";
sql += user.getId() + "';";
ResultSet rs = stmt.executeQuery(sql);
if(rs.next()) {
rs.close();
return false;
}
rs.close();
//新規ユーザを登録する
sql = "INSERT INTO USER VALUES('";
sql += user.getMail() +"','"+user.getId()+"','";
stmt.execute(sql);
return true;
//仮登録したユーザを削除する
sql = "DELETE FROM PROVISIONAL_USER WHERE user_id='";
sql += user.getId() + "';";
stmt.execute(sql);
return true;
}

}
0048>>46NGNG
テキストファイルに
userid1;usermail1;
userid2;usermail1;
 ・
   ・
   ・
という形で書いていけたらいいと思うのだが…
よろしくお願いします
0049デフォルトの名無しさんNGNG
>>46スレ違いで死た
いってきまふ…
失礼しました。
005031NGNG
>>42
なんとなく言いたいことは分かりました。
しかしjavac -target 1.1 applet.java
見たいにDOSでやりますと

javac: ターゲットリリース 1.1がデフォルトのソースリリース1.5と競合しています
とでてうまくコンパイルできないのですが・・
0051デフォルトの名無しさんNGNG
正規表現なんですが、
<TAG bar="foo" aho="hoge">ごにょごにょ</TAG>
みたいな文字列から、barとahoの値とタグで囲まれた部分を取ってくるのって
Pattern p = Pattern.compile("<TAG bar=\"(.*)\" aho=\"(.*)\">(.*)</TAG>");
でどこが間違ってます?
Macherのgroup(1)の中身が
foo" aho="hoge">ごにょごにょ</TAG>
となってしまって、二個目の\"を見てくれてないみたいなのです
0052デフォルトの名無しさんNGNG
>>51
XML文書のパースしたいのなら、XMLパーサ使った方が簡単だと思う。
0053デフォルトの名無しさんNGNG
>>50
それなら javac -target 1.1 -source 1.1 HelloApplet.java
0054デフォルトの名無しさんNGNG
>>51
.には"も含まれるから。
せめて
Pattern p = Pattern.compile("<TAG bar=\"([^"])\"\\s+aho=\"([^"]*)\">([^<]*)</TAG>");
ぐらいしとけ
005531NGNG
>>53
javac -target 1.1 -source 1.1 HelloApplet.java
だと1.1は向こうなソースバージョンです。って出てしまったので
javac -target 1.1 -source 1.2 HelloApplet.java
にしてみたらうまくできました
いろいろありがとうございました
0056デフォルトの名無しさんNGNG
JAVAでデスクトップアプリケーションを作りたいと思っています。

Win32ネイティブのデスクトップアプリケーションの場合、
アプリケーションのユーザー設定を、iniファイルやWindows Registryに
記録するのが一般的だと思いますが、JAVAのデスクトップアプリケー
ションの場合、一般的にはどのような方法で設定を記録するのでしょうか?
0057デフォルトの名無しさんNGNG
>>56
アプリならご自由に、としかいえんが
それは人それぞれの考え方だし

Linux等へ持っていくことを考えればXMLかなんかのファイルで最初から扱ったほうが楽だろうね

Preferencesはそれなりに使いやすいし、プラットフォームを変えるためのロード命令とか
準備はされているんだけれども・・・
0058デフォルトの名無しさんNGNG
質問です。
空文字かどうかを判定するのに
equals("")を使うのとlength()==0を使うのって
どっちがいいんですか?好みの問題ですか?
0059デフォルトの名無しさんNGNG
>>52,54
XMLパーサ弄ってます
なんかよく分かんないっすね
0060デフォルトの名無しさんNGNG
>>57
とりあえず、Preferencesを使ってみようと思います。
回答ありがとう。
0061デフォルトの名無しさんNGNG
>>58
String str が空文字列かを調べるとき
str が null になることがないなら str.equals("") でも str.length()==0 でも
(さらには "".equals(str) でも) 好みの問題。

str が null になることがあるなら "".equals(str) 一択。
0062デフォルトの名無しさんNGNG
>>58
length()==0が一番良い。

>str が null になることがあるなら "".equals(str) 一択。

これは、「strがnullでない」かつ「strの内容が""である」ことを示すだけだから
ほとんど役に立たない。
0063デフォルトの名無しさんNGNG
>>62
length() < 1 だろ。
0064デフォルトの名無しさんNGNG
>>62
strがnullだとstr.length()でぬるぽ。
それがいやだから"".equals(str)なんだと思うが
0065デフォルトの名無しさんNGNG
すいません。
java.sql.*で
スキーマが分かっていて
その全テーブル名を取得したのですが、
どうすればいいのですか?

0066デフォルトの名無しさんNGNG
show tables
0067デフォルトの名無しさんNGNG
SQLとかdb依存じゃなく、javaで
0068デフォルトの名無しさんNGNG
>>65
DBに依存しないのは無理。
0069デフォルトの名無しさんNGNG
>>65
使用するJDBCドライバが対応しているのなら、
DatabaseMetaData#getTables(String,String,String,String[])
でできる。

JDBCドライバの実装に依存するが、一応これがJDBC標準の方法。
0070デフォルトの名無しさんNGNG
ボタンがクリックされるごとに現在の日付と時刻を画面の中央に表示するアプレットを作成せよ。

上記の問題でプログラムソースをお願いします。
0071デフォルトの名無しさんNGNG
>>70
スレ違い。
ttp://pc5.2ch.net/test/read.cgi/tech/1100565043

自力でやりたいのなら、java.util.Date、java.applet.Applet、
java.awt.Button、java.awt.Labelあたりを調べるといい。
0072デフォルトの名無しさんNGNG
ありがとうございます。テーブル取得できました。
すみませんが、もうひとつ教えてほしいのですが、

カラムのデータ型とかLENGTHを取得したいのですが
どうすればいいでしょうか?
0073デフォルトの名無しさんNGNG
ResultSetMetaDataでも調べておけ。
とれるのはあくまでJavaの型であってDB依存部分はとれないだろうがな。
0074デフォルトの名無しさんNGNG
classのファイルからjavaのファイルに戻すことはできるんですか?
できるならやり方を教えてください
いろいろなプログラムを見て勉強したいんですが
class(完成したもの)しかない場合が多いのでお願いします
0075初心者 ◆Java/isQ.c NGNG
>>74
ttp://www.cipher.is.tsukuba.ac.jp/~kana/research/java_reverse/decompiler.htm
0076デフォルトの名無しさんNGNG
>>64
"".equals(str)の後にstrがnullかどうかのチェックはしないのか?
するんだったらここでnullチェックをしない意味が無い。
しないんだったら常にNullPointerExceptionの可能性がある。
strがnullになり得ないのならstr.length()==0で十分。

結局同じこと
0077デフォルトの名無しさんNGNG
>>76
equalsにnull渡してもぬるぽしねーよ。
0078デフォルトの名無しさんNGNG
Eclipse3.01にTomcatプラグインの3.0乗せて
Tomcat5.0動かそうとしてるんですが、どうにも動かないんです。
こういうときってどこで聞けば良いんでしょう?
OSはWinXP SDKは、1.42_06です
0079デフォルトの名無しさんNGNG
>>76
こんばんは、Smith君
0080デフォルトの名無しさんNGNG
TOMCAT_HOME
0081デフォルトの名無しさんNGNG
Smith君にはまいるよ。
0082デフォルトの名無しさんNGNG
Vector v = new Vector(1);
v.add("Hello");
v.add("Hello2");
v.add("Hello2");
System.out.println(v.capacity());

コレ出力したら4になりました!!
最初からなにか入ってるんですか?
0083デフォルトの名無しさんNGNG
>80
Tom君が5.0ならCATALINA_HOMEじゃないの?
0084デフォルトの名無しさんNGNG
>>82
要素数を知りたいなら、size()。
capacity の仕組みを知りたいなら、Javadoc 読め。
008510NGNG
>>17氏の助言に従ってDiceクラスを使ってみました。
ついでにstaticメソッドでDiceを振ることもできるようにしてみたのだけど、
これがどうも芳しくなかったりします。
シードをミリ秒時刻で初期化しているため、サブミリ秒オーダーで
乱数が生成されると同じ値が連続してしまう。
シードを設定せずにRandomオブジェクトを作れば
毎回違う値が出るんですが、
これって何を種にしてるんでしょう? JavaDocの説明を読んでもよくわからない・・・
0086デフォルトの名無しさんNGNG
>>85
シードを設定をループの外へ
008710=85NGNG
>>86
コンストラクタでシードを初期化している。
↓
staticメソッド(サイコロを振る)はコンストラクタを呼ぶ
↓
staticメソッドを高速で呼ぶと同じ数値が並ぶ

というオチなのです。
結局、staticメソッドは高速で呼ばないようにするか、
そもそも用意しないでオブジェクトを作らせるか、
というふうにすべきなのでしょうね。
0088デフォルトの名無しさんNGNG
>>87
すべてを知るGodクラスを作って、すべてのDiceは単一のGodへの参照を持つ形にする。
実際の値を生成するのはGod

public class God {
 public Dice createDice(int facet) {
  return new Dice(this, facet);
 }
}
008988NGNG
>>87
参照を持つのが嫌ならseed値を与えるだけのクラスとかもアリだし、
Diceだけで完結させるなら
class Dice {
&nbps;private static int getNextSeed(){...}
}
とかもあり。
0090デフォルトの名無しさんNGNG
俺スパルキア軍ね
0091デフォルトの名無しさんNGNG
>>77
よく読め。equals()の後の話
0092デフォルトの名無しさんNGNG
>>76
>だから str.length() < 1 だって言ってるだろ
このトンヌラ
0093デフォルトの名無しさんNGNG
>>85
1.4と1.5でRandomコンストラクタのアルゴリズムが変わってる。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Random.html#Random()
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/Random.html#Random()

1.5では同じミリ秒内に複数Randomを作っても違うシード値を割り当てるようだ。
試してないけど。
多分private staticでRandomかintか持ってるんじゃないかな。
0094デフォルトの名無しさんNGNG
J2SE SDKがダウンロードできないのは僕だけですか
0095デフォルトの名無しさんNGNG
Yes.
0096デフォルトの名無しさんNGNG
J2SE5.0 Update1 (1.5.0_01)
http://java.sun.com/j2se/1.5.0/ja/download.html
0097デフォルトの名無しさんNGNG
Eclipse 3 + Java5の組み合わせで使われている方いますか?
安定感とかどうでしょう?

すでに、使われている方いかがでしょうか?
0098デフォルトの名無しさんNGNG
自分で試せばいいじゃない
0099デフォルトの名無しさんNGNG
>>92

>このトンヌラ

ワラタ
0100デフォルトの名無しさんNGNG
マルチモニタのためのAPIってJ2SEにゃついてないんすかね

何台ついてるかとか、解像度はどうかとか、別のモニタにもっていくとか
0101デフォルトの名無しさんNGNG
マルチモニタの質問だからってマルチポストしなくてもいいじゃない
0102デフォルトの名無しさんNGNG
独習javaを一応終わらせたのですが
次に読むおすすめ本は何でしょうか?
0103デフォルトの名無しさんNGNG
>>102

もう本はいいんじゃない?

どういうコードを書くのが生産的か考えるのに、アジャイルソフトウェア開発についての本を読むのはいいかもしれん。
0104デフォルトの名無しさんNGNG
>>100
AGPと旧PCIビデオカード二枚差しだったら
java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()
で GraphicsDevice が二つ出てくるね。

一枚のビデオカードでマルチモニタしてるとどーなるのかは知らん。
MatroxとNVidiaで挙動が違ったりするかもしれないし、同じかもしれない。
0105デフォルトの名無しさんNGNG
>103

アジャイルソフトウェア開発ですか検索して調べてみます

いま独習javaの本紹介のところを見たら応用本として独習JSPって本があるのですが
どうでしょうか
自分はJSPという単語は持ち合わせておらず
辞書検索しても日本社会党がでてくるだけです
0106デフォルトの名無しさんNGNG
>>105

JSPなんて、大手の派遣会社にでも行ってJSP使わせてくれる仕事くれといえば
やらせてもらえるとこ行けるから、そこでカネもらいながらがんばれ。
010731NGNG
すいませんIEでJavaをアプレットを起動させたいのですが
-target1.1だとTimerクラスがサポートされていないみたいで困っています

何か方法はないものでしょうか?
お願いします
0108デフォルトの名無しさんNGNG
>>107
JRE1.4でも入れておけ
0109デフォルトの名無しさんNGNG
>>107
なら動くように1.4とかででつくればいいじゃない
011031NGNG
>108
JREは自分のPCには入っているのですが入ってない人にも見れるようにしたいのですが・・

HTML CONVERTERというものを使ってみたのですが
初めアプレットが表示される領域が出た後
DLが終わったと思われるとそのアプレットが表示される領域がなくなるという現象になっているんですけど
何が悪いんでしょうか
0111デフォルトの名無しさんNGNG
>>110
じゃあ1.1対応で作るしかないじゃない
011231NGNG
うー・・・どうにかならないですかね・・
<!--"CONVERTED_APPLET"-->
<!-- HTML CONVERTER -->
<OBJECT classid="clsid:E19F9331-3110-11d4-991C-005004D3B3DB"
WIDTH = 500 HEIGHT = 300 codebase="http://java.sun.com/products/plugin/1.3.0_02/jinstall-130_02-win32.cab#Version=1,3,0,2">
<PARAM NAME = CODE VALUE = type.class >
<PARAM NAME="type" VALUE="application/x-java-applet;jpi-version=1.3.0_02">
<PARAM NAME="scriptable" VALUE="false">
<COMMENT>
<EMBED type="application/x-java-applet;jpi-version=1.3.0_02" CODE = type.class WIDTH = 500 HEIGHT = 300 scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3.0_02/plugin-install.html"><NOEMBED>
</NOEMBED>
</EMBED>
</COMMENT>
</OBJECT>
<!--
<APPLET CODE = type.class WIDTH = 500 HEIGHT = 300>
</APPLET>
-->
<!--"END_CONVERTED_APPLET"-->
こういうふうに変換されて表示するときは左上に赤と青と緑のぽちぽちがでてきて
それが消えるっていう感じなんですが・・・

HTML CONVERTERの使い方が間違ってるとかないですかね?
それとも、もともとHTML CONVERTERを使ってもTIMERクラスはIEではできないんでしょうか?
0113デフォルトの名無しさんNGNG
>>112 自分で書いた動作の怪しいコードじゃなくて、SDKのデモについてる
Clockとか簡単で確実なコードとhtmlつかってまずhtmlconverterの使い方
を確認してみたら?
011431NGNG
>>112
よく分かりませんけど簡単なアプレットではできたので
PC再起動してもう一回やったらできました。
HTML CONVERTERすごいですね
ありがとうございます
0115デフォルトの名無しさんNGNG
>>110
JREがないところでアプレットはうごきませんがな
XPsp1a以降MSのVMもないんだし
0116デフォルトの名無しさんNGNG
C:\dirにあるabc.txtのファイル名をxyz.txtに変更したいんですが、
以下のようなコードではうまく行きません。どこが違うのでしょうか。
existsメソッドで元のファイルは存在することを確認できているので、
パス名が違うということはないはずなんですが。

File old_file = new File("C:\\dir\\abc.txt");
File new_file = new File("C:\\dir\\xyz.txt");
old_file.renameTo(new_file)
0117デフォルトの名無しさんNGNG
>>116
普通にできるけど?
強いて上げるなら、3行目の最後に;が付いてないくらいか
0118デフォルトの名無しさんNGNG
>>116
「うまく行きません」としか書かないでどうなるのかを書かないのはよくない。
ファイル名が変更できないだけなのか、例外が起こるのか、等。
エラーや例外が発生するのならそのメッセージもそのままコピペしろ。
0119116NGNG
>>117
最後のセミコロンがないのは、ただの書き忘れです。

old_file.renameTo(new_file)の結果を出力すると、何故かfalseを
返しているんですよね。old_file.exists()の結果はちゃんとtrueを
返しているのに。どこが違うのかさっぱり分からない。
0120116NGNG
>>118
例外は一切発生しません。ファイル名が変更できないんです。
あとは>>119の通りです。
0121デフォルトの名無しさんNGNG
パーミッションとかいうオチだったりして。
0122デフォルトの名無しさんNGNG
>>116
ファイルの書き込み、変更権限がないだけじゃねーの
0123デフォルトの名無しさんNGNG
システムドライブのルートはデフォでアクセスできないからな
0124デフォルトの名無しさんNGNG
XMLのエレメントからAttrのデータを取得して、そのデータをコンストラクタのパラメータに使ってオブジェクトを作っています。
エレメントは複数あり、ループで生成したオブジェクトをArrayListに代入していきたいのですが、
その際全く同じ内容のものは代入したくありません。
そこでこのようにしてみました。

for(int i=0; i<nodeList.getLength(); i++){
 Element elem = (Element)nodeList.item(i);
 MyObj myObj = new MyObj(
  elem.getAttribute("attr1"),
  elem.getAttribute("attr2") );
 if(!myArrayList.contains(myObj))
  myArrayList.add(myObj);
}

この例で言うと、attr1とattr2の両方が同じものが既にmyArrayListに追加されているなら、
もう追加したくないのです。

しかし、これを実行すると(!myArrayList.contains(myObj))の評価が
必ずtrueとなり、全てのオブジェクトがmyArrayListに追加されてしまいます。

どうすればよかとですか?
0125デフォルトの名無しさんNGNG
>>124
MyObjクラスのequalsメソッドを実装しろ
0126デフォルトの名無しさんNGNG
Set
0127デフォルトの名無しさんNGNG
>>124
なんかあぶなっかしいから、
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/List.html#contains(java.lang.Object)
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Object.html#equals(java.lang.Object)
の二つも必ず読んでおくようにね。
0128デフォルトの名無しさんNGNG
>>91
実にアホだなあ。
もともとの質問では「空文字列と等しいかどうか調べる」としか言ってないのに
勝手に自分で都合のいいように解釈して
鬼の首でもとったかのようにぎゃーぎゃー言って。
0129デフォルトの名無しさんNGNG
>>124
それがしたいなら、ArrayListよりはSetのどれかを使った方がいいね。Setは
同じオブジェクトを入れられないコレクションだと思いねえ。Listがいいなら、LinkedHashSetだろうか。

ただ、>>125が言っているように、どちらにせよequalsをきちんと定義することが必要。
「同じもの」というのは「equalsがtrueを返すもの」という意味なんで、MyObj#equalsを
君の望む「同じ」という概念にあわせて実装する必要がある。

ちなみに仮にMyObjがObjectのサブクラスで、equalsを独自に実装していない場合の
動作は「同じインスタンスならtrue」なので、違うインスタンスである限りかならずfalseに
なる。なのでいくらでも追加できる。
0130デフォルトの名無しさんNGNG
TEST
0131デフォルトの名無しさんNGNG
動的にクラスパスを変更する処理を行いたいのですが
C:\classpathにHello.classファイルを置いてjavaプログラム中で

System.setProperty("java.class.path", "C:\\classpath;");
Class.forName("Hello");

としてHelloクラスをロードしようとするとjava.lang.ClassNotFoundExceptionを吐かれてしまいます
getPropertyで確かめるとクラスパスの値は確かに変更されてるようです
Hello.classは普通に-cpオプションでC:\classpathを指定すると起動出来ます

クラスパスを動的に変更することは不可能なのでしょうか?
環境はWindowsXPHomeでj2sdkは1.4.2_05です
0132デフォルトの名無しさんNGNG
>>131
確か起動後に設定しなおしてもクラスの読み込みには反映されない。
クラスパスをいじるんでなくクラスローダを何とかするがよい。
0133デフォルトの名無しさんNGNG
クラスAAAに別のクラス型のメンバー変数を持たせて、AAAのコンストラクターに
このメンバー変数のクラス名を引数として渡して動的に異なるクラス型の変数を
生成させるにはどのようなコーディングをすればよいでしょうか?
(このようなことをググるためのキーワードだけでも教えていただければ助かります)
0134デフォルトの名無しさんNGNG
Class Class#forName(String) Class#newInstance() Reflection reflect リフレクション
0135デフォルトの名無しさんNGNG
コマンドラインって、どういうこと?ですか?
0136デフォルトの名無しさんNGNG
Windows だと MS-DOSプロンプトとかコマンドプロンプトとか。
とりあえず Java の質問じゃないので他所行って勉強してください。
0137デフォルトの名無しさんNGNG
class In
{
public static void main(String args [])
{
int i = Integer.valueOf(args[0]).intValue();
if((i%2)==0)System.out.println("偶数");
if((i%2)==1)System.out.println("奇数");
if((i%2)==-1)System.out.println("奇数");
}
}


をやると、

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at In.main(In.java:5)

が、出ます。どこがまずいのでしょうか?
0138デフォルトの名無しさんNGNG
引数付けて起動してないから

あるいは、引数の数をチェックしてないから
0139デフォルトの名無しさんNGNG
>>138
i = 10;
とかですか?
0140デフォルトの名無しさんNGNG
>>139
C:\Documents and Settings\username>java In 10
とか
0141デフォルトの名無しさんNGNG
Java 入門 | コマンドライン引数と配列
http://msugai.fc2web.com/java/array.html
0142デフォルトの名無しさんNGNG
(args[0])に、何も入ってないということですね?

class Multiply {
public static void main(String[] args) {
double a = Double.parseDouble(args[0]);
double b = 1.05;
System.out.println(a * b);
}
}

これの(args[0])には、どうやって値を入れてるのかを教えてもらえますか?
このソースには、代入式がないようですが・・・
0143デフォルトの名無しさんNGNG
>>142
EclipseとかNetbeansとかつかってない?
それだと最初はわからんかもなあ。
0144デフォルトの名無しさんNGNG
>>141のサイトと、僕の本に>>142こうやって書いてありました。
0145デフォルトの名無しさんNGNG
>>142
args[0] は存在しない。

財布に何も入ってないのと財布が無いのとはちょっと違う。
0146デフォルトの名無しさんNGNG
class In
{
public static void main(String [] args)
{
System.out.println(args[0]);
}
}

これをコンパイルして、
javac In.java

java In Hellow

とやると、次の行にHellowと出ますが。
そういうことだったのでしょうか?
0147デフォルトの名無しさんNGNG
もしかして: Hello
0148デフォルトの名無しさんNGNG
>>147そうHello
0149デフォルトの名無しさんNGNG
>>144
そのサイトの、配列説明のところの実行例は間違ってるね。
コマンドライン説明のところの実行例はあってるみたいだけど。

java In じゃなくて、java In 引数 とすると、引数が配列に入る。
0150133NGNG
>>134
おぉー。リフレクションて言うんですか。早速調べて勉強します。
ありがとうございます。
0151124NGNG
レスしてくれた方々ありがとうございました。
教えて頂いたことを調べてすこし変更し、このようにしました。

for(int i=0; i<nodeList.getLength(); i++){
 Element elem = (Element)nodeList.item(i);
 myHashSet.add(
  new MyObj(
   elem.getAttribute("attr1"),
   elem.getAttribute("attr2") )
  )
 );
}

このクラスの変更と言えば、ご指摘頂いたように
ArrayListをHashSetに変更した点です。
(Setの中でも今回はHashSetが一番向いていると思うのでこれにしました)

そして、MyObjにequalsメソッドを実装しました。
public boolean equals(MyObj myObj){
 if( p1 == o.getP1() && p2 == o.getP2() )
  return true;
 else
  return false;
}

これで実行してみたのですが、相変わらず全てのMyObjがmyHashSetに追加されてしまいます。
Setがaddする時に、どのように重複データか判定するのか、Setインターフェイスのドキュメントを読んでみると
>つまり、セット内に、(o==null ? e==null : o.equals(e)) に該当する要素 e がなかった場合は、指定された要素 o をセットに追加
とあるのですが、上のコードで言うMyObj#equalsをreturn true;だけにしても結果は同じで、
デバッグで確認しても、MyObj#equalsは呼ばれていません。

自分の考えの間違えをご指摘頂けませんでしょうか?
0152デフォルトの名無しさんNGNG
>>150
リフレクションはツールが使うならいいが
アプリが使うなら設計ミスだと思ったほうがいい
0153デフォルトの名無しさんNGNG
それにつけても、Java2D/AWTってマジおそかですよ
30fps, 640x480でTImerTaskでjava.awt.Canvasのpaintループ回したらCPU100%張り付きっぱなしっすよ

なんかイイ方法ないわけ?
0154デフォルトの名無しさんNGNG
>>151
equals()の引数の型が違うためにオーバライドできていません。
そのために、相変わらずObject#equals(Object)が呼び出されてしまいます。

equalsの引数の型をObjectに変えて以下のように修正すれば正しく動くでしょう。
public boolean equals(Object obj){
 MyObj myObj = (MyObj)obj;
 if(...){
0155124NGNG
>>154
ご指摘ありがとうございます。
教えて頂いたとおりにオーバライドしてみたのですが、
相変わらずMyObj#equalsは呼ばれていません。
Object#equalsも呼ばれていないようなので、他にも間違いが
あったようです。
いろいろ調べていたら、hashCodeを実装しないといけないのかな
と考えています。
(hashCodeの概念が全くわかっていないので今勉強中です)

ちなみに>>151のequalsメソッドは記述ミスです。
oじゃなくてmyObjですね。
0156デフォルトの名無しさんNGNG
wiki逝ってない?
0157デフォルトの名無しさんNGNG
あー、equalsを実装したらhashCode()も実装しないといけない。たしかに。
equalsがtrueならhashCode()は同じ値を返さないといけない。

ただ、Object#equals()も呼ばれてないなんてことがあるのかな?
0158124NGNG
>>157
HashMapクラス内にこのようなところがありました
if (e.hash == hash && eq(k, e.key)) {

HashMap#eqはreturn x == y || x.equals(y);という内容です。
先にハッシュのチェックをして等価でなければその後は処理しないために
Object#equalsが呼ばれていないようですね。
0159デフォルトの名無しさんNGNG
>>158に補足すると、HashSet#add(Object)はHashMap#put(Object,Object)に処理を委譲しているので、
この文脈で上記のコードが実行される。
0160153NGNG
ダブルバッファするのにComponent.createVolatileImageからComponent.createImageに変えたら
少しマシになった
なんだこれ
0161デフォルトの名無しさんNGNG
>>153
なにをやってそうなったかかいてもらわんと
重い描画と軽い描画があるし
コードによって速度は大幅に変わるよ

Java2DのWindowsでの実装はGDIでDIBやらDDBやらDirectXなわけだが
アクセラレーションがきく描画とそうでないものとあるわけで
0162デフォルトの名無しさんNGNG
>>160
ダブルバッファの仕組みとかわかってないとどうしようもないな
Imageの確保の命令を理解していないとね

Windowsおせーとかいいつつアクセラレーションの聞かないGDI+を
使ってゲーム作ろうとしているのと似ている

検索すればいろいろ出てくるだろう
0163デフォルトの名無しさんNGNG
>>162
それ位知ってるって。
理解してないなどと思ってるのはアンタだけ。
あまり頓珍漢な事言わんでくれ。
0164デフォルトの名無しさんNGNG
>>153
三流メーカ提供の腐ったビデオドライバ(アクセラレータ使用)よりも
超一流のエンジニアが書いた転送ルーチン(アクセラレータ未使用)の方が
速い事もある。

これ、画像扱う奴の常識。
0165153(not 163) ◆iKwMOjCT4s NGNG
>>164
そうか、ウチで使ってるビデオドライバはヘボで鈍いシロモノで、
ビデオメモリわ使わないJavaの画像転送ルーチンのほうが速かったわけか
0166デフォルトの名無しさんNGNG
>>132
レスありがとうございます
クラスローダを自作することでなんとかクラスのロードまでは出来るようになりました
0167124NGNG
hashCode()を実装することで問題なく動きました。
教えて頂いた方々本当にありがとうございました。
0168デフォルトの名無しさんNGNG
>>163
これが釣りってやつか・・・

>>165
さらにいうと
VolatileImageはVRAMから確保
BufferedImageはDIBやDDBでの確保

基本的にメモリからビデオへの転送はバスがネックになるから
ビデオ内での転送じゃないと遅い

これはJavaに限らずDirectXでも同じことね

ただし、描画先がVolatileImageで描画元(スプライト)がBufferedImageで
ピクセルフォーマットがVolatileImageとBufferedImageが同じ場合に
DirectXによるアクセラレーションがきく

ピクセルフォーマットを同じにしたい場合はコンパチブルイメージを使う

とまぁ、ゲーム製作板ではあたりまえのことだけどね
作ってるのがゲームならそっちできいたほうがいいかも
0169デフォルトの名無しさんNGNG
String s = br.readLine();
StringTokenizer st = new StringTokenizer(s, ",");
でa,b,cからaとbとcを取ってListに入れたいのですが,このときa,b,cだけではなく
a, b, cやa,b,c, ,,, , からもaとbとcを取れるようにしたいです
要するに空文字とスペースを全て排除したいのですが,どうするのが一般的なやり方でしょうか?
いちいち正規表現でスペースを空文字に置換してから,ifで空文字じゃないときだけ
Listに追加する,といった,なんかスマートには見えない方法しか思いつかないのです
0170デフォルトの名無しさんNGNG
String#split
0171デフォルトの名無しさんNGNG
s.split(",\s*")
であってますかしら
0172デフォルトの名無しさんNGNG
new StringTokenizer(s, ", "); //カンマだけでなくスペースも区切文字に
ってのは?
でもこれだと、a b,c,もaとbとcに分割されてしまう。
StringTokenizerなら、,,,のような区切文字の連続は1つのトークンとみなされるから、
空文字の心配はしなくていいはず。
0173デフォルトの名無しさんNGNG
s.split(",\\s*")
StringTokenizerは既にdeprecated扱い。
0174デフォルトの名無しさんNGNG
>>173
それいまいちわからないんですが,\sの前についてる\はどういう意味なんでしょうか?
エスケープじゃないですよね
0175デフォルトの名無しさんNGNG
エスケープだよ。Javaでは\で始まるとunicode指定だから、エスケープしないといけない。
0176デフォルトの名無しさんNGNG
「\s」という文字列をJavaソース上で表す場合は"\\s"と書かないといけない。
正規表現という以前に、Javaソース内の文字列表現だから。
0177デフォルトの名無しさんNGNG
>>175-176
にゃるほど
ありがとうございました
0178デフォルトの名無しさんNGNG
>>173
えーとちょっと待って下さい
a, b ,cとかの場合もあるから
s.split("\\s,\\s*")
ですよね.でもこれだと末尾の空文字列は無視してくれるのですが,
a,b, , ,,,,cという文字列の場合,bとcの間の空文字列が全て要素として
含まれてしまいます.これはどう解決したらいいのでしょうか?
0179デフォルトの名無しさんNGNG
>>178
まず実現したい仕様を正確に説明しろ。お前の頭の中なんで誰もわからん。
"a,b, , ,,,,c" をどう分けたいんだ?
0180179NGNG
>>178 >>169
なんとなくわかった。
s[0]: "a", s[1]: "b", s[2]: "c"
なのか。それなら
s.split("\\s*(,\\s*)+")
0181デフォルトの名無しさんNGNG
aとbとcを取り出したいのです
あらゆる空文字・スペースを無視したいのです
s.split("\\s,\\s*")だとbとcの間の空文字が全て要素として含まれてしまうのです
0182デフォルトの名無しさんNGNG
>>180
おー,でけました
ありがとうございます
0183 NGNG
実習Javaに簡単なメールクライアントのプログラムが載ってるのですがその中に

Address[] senders = message.getFrom();
if (senders != null || senders.length > 0) {
to = senders[0].toString();
}
to = message.getFrom()[0].toString();

というコードがあります。messageはjavax.mail.Massage型だそうです。
if文は必要ないように見えるのですが間違ってるのでしょうか?
0184デフォルトの名無しさんNGNG
>>183
必要ないと思う理由は何だ
0185デフォルトの名無しさんNGNG
>>183
スマン、if文の後見落としてた
そこだけ見ると確かに意味不明だな
0186デフォルトの名無しさんNGNG
184晒しage

とても不思議なコードだ
0187デフォルトの名無しさんNGNG
実は初版が
to = message.getFrom()[0].toString();
になってて、
読者からぬるぽ&out of bounds指摘されて修正したは良いが
元の行消すの忘れたとか言う落ちでは?
0188デフォルトの名無しさんNGNG
参考書のサンプルコードに厳密なエラーチェックを求めるなってことだな。
0189デフォルトの名無しさんNGNG
>>183
フイタw
0190デフォルトの名無しさんNGNG
double型の2つの変数の大小を比較するときに、
その変数の中の数の大きさによって処理時間は変わるものでしょうか?
具体的には、if(AB<CD){CD=AB} ・・・というような比較を繰り返すのですが、比較される数字が1.0ぐらい同士のときと
10^18ぐらいのときとでは処理にかかる時間は違うのか、ということです。
0191名無しさんNGNG
サンプルコード書いてみたら?
100000回くらいその計算をしてかかった時間を出力。
結果教えてね。
0192デフォルトの名無しさんNGNG
>191
やるたびに時間変わってだめなんです。
sshで大学にリモートログインしてるんですけど、他の人の処理のせいで影響を受けているのかもしれません。
(timeコマンドを使っても処理が終わるまで実際にかかった時間しか計測できない環境です)
0193デフォルトの名無しさんNGNG
>>192
自分のPC使えよ。ダウンロード&セットアップに10分もかからんだろ
0194デフォルトの名無しさんNGNG
皆さんはimport staticってどの程度使います?
定数や静的メソッドが名前だけで呼べるのは楽なんですが、
使いすぎると出所がわかりにくくなります。
Eclipse環境(3.1M4)だとメソッドの指名インポートは通りませんし。

とりあえず私は
自パッケージ内のクラス、自分と同列かより上位のcommonパッケージ内のクラス、
java.*パッケージについては、非常によく使う場合に限って(技術計算が多くて
Mathメソッド内の静的メソッドを沢山使う、など)import staticするようにしています。
0195デフォルトの名無しさんNGNG
今の方針: 絶対に使わない
0196デフォルトの名無しさんNGNG
いちいち否定するな。
スタチックインポートの王道的使い方じゃないか。
0197デフォルトの名無しさんNGNG
使い方を否定してる訳じゃない。
import static そのものを使わないと言っているんだ。
0198デフォルトの名無しさんNGNG
java scriptをインストールしようとしたところ、「このプログラムは、
ご使用のインターネット接続設定では実行できません。
詳細はインストールノートをご確認ください。」と表示されてインストールできないんですが
どうしたらよいでしょう?
0199デフォルトの名無しさんNGNG
>>198
java script の話題は別スレでどーぞ。
0200デフォルトの名無しさんNGNG
>>199 ふん、このくずめが
0201デフォルトの名無しさんNGNG
お金払って代わりにソース書いてくれる人を探すときって、どうやって探せばいいのかな?

0202デフォルトの名無しさんNGNG
JavaScriptも中身は違っても名前は同じjavaなんだから、
ケチケチしないで答えてあげたらどうなのかね?
次スレのテンプレには、JavaScriptもOKですって入れても
いいかもしれん。
それとも単に分からないだけなのかな?
だったら失礼。
0203デフォルトの名無しさんNGNG
jarファイルにexeファイルをいれてそのexeを実行ってできないのですか?
exeファイルはjavaじゃありません。
0204デフォルトの名無しさんNGNG
>>203
JSmooth
0205デフォルトの名無しさんNGNG
>>202
..まさか本気で書いてる?冗談だよね?
0206デフォルトの名無しさんNGNG
>>202
晒しage
0207デフォルトの名無しさんNGNG
202晒し上げ。
0208デフォルトの名無しさんNGNG
>>204
ごめんなさい、言葉足らずでした
javaをexeで実行したいのではなく、java以外で作ったexeファイルをjarに入れて
その中で実行できる方法はないかと聞きたかったんです。

ためしにjarにexe突っ込んだんですけど実行できませんでした
なにかPathかなにか必要ですか?それとも実行は無理ですか?
0209デフォルトの名無しさんNGNG
そんなに簡単に釣られんなよ
0210デフォルトの名無しさんNGNG
>>204,208
それなら、.jarの中にhello.exe入れて、
Class#getResorceAsStream("/hello.exe")かなんかでInputStream取り出して、
FileOutputStreamで外の世界にファイル保存、
Runtime#execで実行。

できるかどうか知らん。
0211デフォルトの名無しさんNGNG
>>204,208
javaでCPUエミュレートするとかな。

冗談みたいな話だが、その方法でlinuxを動かしているのを見たことがある。
(開発元も消えてしまったし、詳しいことは知らん)
0212デフォルトの名無しさんNGNG
MS-DOS程度のメモリ管理とファイルアクセスだったら結構簡単に作れるかも。
0213デフォルトの名無しさんNGNG
202=198 だろ。こんな非常識な奴がそうそういるわけない。
0214デフォルトの名無しさんNGNG
>>213
m9(^Д^)プギャー
0215デフォルトの名無しさんNGNG
>>213
>>200 と >>214 も同一人物っぽいかも。
同一人物でないとしても、同レベル。
0216デフォルトの名無しさんNGNG
>>192
ソースコード晒せば、たぶん試してくれる人とか居そう。
0217デフォルトの名無しさんNGNG
>>213
いやむしろ>>202のほうが>>198よりひどい。
よって別人の可能性もあり。
>>214はそういう意味だろ?
0218デフォルトの名無しさんNGNG
ん?名前が似ているという理由で多言語の質問もOKになの?
0219デフォルトの名無しさんNGNG
>>218
>>1を読めばわかるんじゃない?
0220デフォルトの名無しさんNGNG
そもそもなんでJava Scriptなんて名前にしたんだろうか・・・
0221デフォルトの名無しさんNGNG
>>220
m9(^Д^)プギャー
0222デフォルトの名無しさんNGNG
>202のような厨房を量産するため。
(少なくともNetscapeが意図的にJavaと紛らわしい名前にしたのは確か)
0223デフォルトの名無しさんNGNG
1990年サンは、家電など電子機器に搭載されるマイクロコンピュータの
為の、組み込み用共通プログラミング言語の開発に着手し、当初それは
コードネームOAKと呼ばれていた。
小さいメモリ、貧弱なCPUでも問題なく動作するように、当初は
徹底的に言語仕様のスリム化が図られ、結局スクリプト言語に近い
仕様にまとまった。
OAKではインパクトが弱いという理由で、(ちなみに製品のネーミングの
重要さは、フレッシュソックスが「通勤快足」と改名した途端、売り上げが
爆発的に伸びた事で証明されている)新しくJavaと名づけられたのと
同時に、当時のスクリプト的正確から、「Java Script」と正式に命名された。

その後、サンはJavaをパーソナルコンピュータ市場にも参入させる事にし
Java Scriptを大幅に拡張した言語「Java」を1995年に発表した。
これが現在私達が愛用しているjava言語の誕生である。
0224デフォルトの名無しさんNGNG
>>223
どこの便所の落書きですか
0225デフォルトの名無しさんNGNG
Javaで形態素解析をやらせたいのですが,
一般的にはどのようなものが使われているのでしょうか?
Googleで探し回ったところ,MeCabとSenというものしか見つかりませんでした.
導入が簡単な物があれば助かるのですが….
0226デフォルトの名無しさんNGNG
>>225
Sen簡単だよ。「しか」とか言うな。
0227デフォルトの名無しさんNGNG
>>226
ごめんなさい
0228デフォルトの名無しさんNGNG
>>226
ていうかSenのサイトらしきものが404で,ディレクトリ上に上がっていったら
閉鎖しましたとか書いてるんですが,現在配布してるところご存じでしょうか
0229228NGNG
見つけました
http://yamaguch.sytes.net/~tora/opensource/sen/
↑ではなく
https://sen.dev.java.net/
ですね
0230デフォルトの名無しさんNGNG
いまぐぐってみたところ、java.netに移っているようですぞ。
https://sen.dev.java.net/
0231 NGNG
J2SE5.0はバグとか少ないですか?
初心者なので自分のプログラムがおかしいのか、言語環境のバグなのか区別がつかないだろうからどの知りたいです。
1.4でやったほうがいいのですか?
0232デフォルトの名無しさんNGNG
>>231
プログラムをしない方がいいでしょう。
0233デフォルトの名無しさんNGNG
>>231
初心者なら自分を疑え!

#だが初心者ほどコンパイラのせいにしたがるんだよな〜
0234デフォルトの名無しさんNGNG
そんな事はない。
プロの方が責任転嫁の傾向が強い。
0235デフォルトの名無しさんNGNG
プロはプロでも仙人クラスのプロが
「んー、これは流石に処理系のバグっぽいな〜」
と言ったんなら多少聞く価値はあるが。
0236デフォルトの名無しさんNGNG
>234
責任転嫁はするが普通その相手は人間。
親請「外注のせいで〜」
外注.PM「SEがバカなせいで〜」
外注.SE「PGどもがタコなせいで〜」
外注.anonymousCompanies.PG「仕様が(=仕様を書いた人間が)タコなせいで〜」
0237デフォルトの名無しさんNGNG
仕様がタコ、はしょっちゅうだけどな
0238デフォルトの名無しさんNGNG
http://f57.aaa.livedoor.jp/~newbooks/
オライリーの新刊はJava関連、しかもTiger本キタ━━━(゚∀゚)━━━ !!!
0239デフォルトの名無しさんNGNG
senのインストールの話で恐縮なのですが,antで辞書を作るところまでは良かったのですが,
sen/bin/sen.shを実行するとExceptionが出てしまいます.
こちらがDebian woody + Java1.3.1

export ANT_HOME=/usr/local/ant
export SEN_HOME=/usr/local/sen
export JAVA_HOME=/usr/lib/j2se/1.3
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$PATH:$ANT_HOME/bin:$JAVA_HOME/bin

$ bash /usr/local/sen/bin/sen.sh
done.
Please input Japanese sentence:
Exception in thread "main" java.lang.NoClassDefFoundError: org/xml/sax/SAXException
at StringTaggerDemo.main(StringTaggerDemo.java:33)

こちらがcygwin + Java1.4.2_05
/usr/local/antとsenは/cygdrive/f/なんとかかんとか/antとか/senとかの
シンボリックリンクです

export ANT_HOME=/usr/local/ant
export SEN_HOME=/usr/local/sen
export JAVA_HOME=/cygdrive/f/bin/Java/j2sdk
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$PATH:$ANT_HOME/bin:$JAVA_HOME/bin

$ bash /usr/local/sen/bin/sen.sh
Exception in thread "main" java.lang.NoClassDefFoundError: StringTaggerDemo

どなたかお力をお貸し下さい….
0240デフォルトの名無しさんNGNG
JAVAのSDKは制作に必要
JREは実行に必要って事ですよね。
でも、作って確認するときJREが必要だと思うんですけど
まだJRE入れてないのにhello java!のプログラムが動きました。
これって、SDKの中にJREが入ってるからなんですか?
0241初心者 ◆Java/isQ.c NGNG
>>240
そうです。
0242242NGNG
apacheとtomcatの連携ではまりました。
server.xmlファイルのポート8080の記述をコメントアウトして、
ポート8009の記述を有効にして、以下のような設定で
webappsのexamples以下や、index.jspにアクセスすると
Internal Server Errorになって以下のエラーログが吐かれる状態です。

[Mon Dec 27 05:26:12 2004] [jk_uri_worker_map.c (445)]: Into jk_uri_worker_map_t::map_uri_to_worker
[Mon Dec 27 05:26:12 2004] [jk_uri_worker_map.c (459)]: Attempting to map URI '/index.jsp'
[Mon Dec 27 05:26:12 2004] [jk_uri_worker_map.c (539)]: jk_uri_worker_map_t::map_uri_to_worker, Found a suffix match wo
rker1 -> *.jsp
[Mon Dec 27 05:26:12 2004] [jk_worker.c (90)]: Into wc_get_worker_for_name worker1
[Mon Dec 27 05:26:12 2004] [jk_worker.c (94)]: wc_get_worker_for_name, done did not find a worker

以上がmod_jk.logに吐き出されるエラーで、did not find a workerと言われてしまうのが
どうしても解決できません。
0243242NGNG
上の続き

httpd.confには以下のような記述のmod_jk.confをIncludeしてあります。
LoadModule jk_module libexec/apache/mod_jk.so
<IfModule mod_jk.c>
JkWorkersFile /usr/local/etc/apache/workers.properties
JkLogFile /var/log/mod_jk.log
JkLogLevel warn
JkMount /*.jsp worker1
JkMount /examples/* worker1
</IfModule>

workers.propertiesはこんな感じです。
JkWorkersFile /usr/local/etc/apache/workers.properties
worker.list=woker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1

どうかご教授のほど、よろしくお願いします。

環境は、FreeBSD4.7R linux-blackdown-jdk1.3.1 apache1.3.31
tomcat4.1.30, mod-jk-connector1.2.6 です。
0244デフォルトの名無しさんNGNG
>>241
お返事ありがとうございます
次はif文というのをやってみます。
0245239NGNG
eclipse2.1.3でプロジェクトに外部ライブラリーとしてsen.jarとcommons-logging.jar
を追加して,形態素解析させて見たところ,
java.lang.IllegalArgumentException: M:\中略・プロジェクト名\null\conf\sen.xml (指定されたパスが見つかりません。)
という例外がでました.sen.jarとcommons-logging.jarはプロジェクトがある
Mドライブとは別のドライブにありますし,そちらのパスを追加したはずなのですが….
この症状も>>239のクラスが見つからないという例外と関係があるのでしょうか….
0246デフォルトの名無しさんNGNG
>>239
Linuxのほうは、XMLプロセッサが入ってないから。
JREのバージョンで揃えるかXercesを入れるかどうかは
antのインストールマニュアルを読んで自分で判断すべきこと。
Windowsのほうは、シンボリックリンク。
0247246NGNG
間違えた。antは関係ないや。ともかく
JREのバージョンを上げるかXercesを入れるかする。
どちらがいいかは自分の要件を考えて判断すること。
0248デフォルトの名無しさんNGNG
>>246
cygwinのbashを使わずに,sen.batを使えば動きました.
というか最初からこっちを使えって話ですね….
Linuxの方は今弄れないので,後で試してみます.
eclipseの方は何が原因でしょうか?
プロジェクトのプロパティ→Javaのビルド・パス→ライブラリー→外部JARの追加
でsen.jarとcommons-logging.jarを追加しただけなのですが….
0249デフォルトの名無しさんNGNG
POIのHSSFを用いてExcelを操作しているのですが、一つ質問があります。
複数のシートで例えばセル(1,A)と(1,D)にデータが入力されていて、
そこに囲まれる(1,B)と(1,C)のデータについて、
同様なパターンで入力されていても、シートによって
HSSFCell.getCellType()で、HSSFCell.CELL_TYPE_BLANKが返ってくる場合と
NullPointerExceptionが返ってくる場合があるのですが、
この2つの違いって何なのでしょうか?
0250デフォルトの名無しさんNGNG
>>249
セルに空白が入っている場合とセル自体が無い場合との違いじゃない?
POI(というかExcel?)では両者は区別される様子。
セルのヌルチェックするなら、HSSFRow#getCell()がnullかどうかを先にしとけ、ということかと。
0251デフォルトの名無しさんNGNG
>250さんありがとうございます。
HSSFRow.getCell()でnullのチェックをするようにしていたのですが、
何も編集が行われていないもの、何か入力した後にDeleteキーを用いてブランクにしたもの、
どちらもシートによってnull pointer exceptionだったり、CELL_TYPE_BLANKだったりしてしまう状況でしたので
空白セルと認識される基準が気になって質問させていただきました。
0252デフォルトの名無しさんNGNG
class My2D {
private int x;
private int y;
public My2D(){}
public void setX(int x){this.x=x;}
public void setY(int y){this.y=y;}
public int getX(){return x;}
public int getY(){return y;}
public Object clone(){My2D m2 = new My2D(); m2.setX(getX()); m2.setY(getY()); return m2;}
}

class My3D extends My2D{
private int z;
public My3D(){}
public void setZ(int z){this.z=z;}
public int getZ(){return z;}
public Object clone(){My3D m3=(My3D)super.clone();m3.setZ(getZ());return m3;}
}
0253デフォルトの名無しさんNGNG
すいません、間違ってソースだけ投稿してしまいました。

cloneについて教えてください。
上記のようにMy2Dクラスと、My3Dクラスを作成しました。
それぞれのクラスにcloneを実装したのですが、上記の実装では3Dクラスのcloneで継承元クラスのcloneを無理やり使用しようとしてる為、当然ClassCastExceptionが発生します。
やりたいこととしては親クラスのcloneをうまく活用し、継承したクラスでは新規に追加した分だけコピー機能を実装するようにしたいのです。
なにか、良い実装方法があればご教授下さい。
よろしくお願いいたします。
0254デフォルトの名無しさんNGNG
>>253
 public Object clone() throws CloneNotSupportedException {
  return super.clone();
 }
↑を実装すると中身もコピーされる(シャローコピーね)
My2DもMy3Dもこれだけでいいはず。
0255デフォルトの名無しさんNGNG
>>253
Object#clone()が呼ばれたときにthisがClonableであればシャローコピーを帰すって事。
特別その後で何か何か値を変えたいのでなければそのままでOK
0256U ◆CZtFsGiu0c NGNG
>>253
コンストラクタに引数付きの物を作った方が早いとは思いますが、もしそれがダメ
ならこんな感じでどうですか?

// My2D
public Object clone(){
My2D m2 = new My2D();
copyParams(m2);
return m2;
}
protected void copyParams(My2D m2) {
m2.setX(getX());
m2.setY(getY());
}

// My3D
public Object clone(){
My3D m3 = new My3D();
copyParams(m3);
return m3;
}
protected void copyParams(My3D m3) {
super.copyParams(m3);
m3.setZ(getZ());
}
0257デフォルトの名無しさんNGNG
>>254
なるほど、こういうことか。知らなかった。252じゃないがサンクス。
public class CloneDemo {
 public static void main(String[] args) throws CloneNotSupportedException {
  CB c1 = new CB();
  c1.x = 10;
  c1.y = 20;
  CB c2 = (CB) c1.clone();
  System.out.println(c2.x);
  System.out.println(c2.y);
 }

 static class CA implements Cloneable{
  int x;
  protected Object clone() throws CloneNotSupportedException {
   CA c1 = (CA) super.clone();
   c1.x = x;
   return c1;
  }
 }

 static class CB extends CA implements Cloneable{
  int y;

  protected Object clone() throws CloneNotSupportedException {
   CB c1 = (CB) super.clone();
   c1.y = y;
   return c1;
  }
 }
}
0258デフォルトの名無しさんNGNG
よろしくお願いします。
jspの中で自作クラスを使いたいのですがnewできずに困っています。
そのクラスはpackageにしていないのですが、packageにしないデフォルトの今の状態で
jspの中でも使えるようにするためにはどうすればいいのでしょうか?
教えてください。
0259デフォルトの名無しさんNGNG
>>257
そのcloneの中でc1.x = xとかやる必要ないぞ、
ちゃんとthisの中身がコピーされたオブジェクトが新規に帰ってくるから。
cloneの中で値の一部変更(たとえば生成順序コードみたいなシリアルとか)の必要がある時だけ代入する必要があるけど。

0260デフォルトの名無しさんNGNG
>>257
補足:
class CloneDemo implements Clonable {
 private SomeObject anObject;
 private int intValue;

 public Object clone() throws CloneNotSupportedException {
  CloneDemo copy = (CloneDemo) super.clone();
  copy.anObject = anObject.clone(); // need deep copy
  return copy;
 }
}
↑こういうふうにインスタンスにオブジェクトがいるときにそれすらcloneしたい時だけ代入するのだ。
0261デフォルトの名無しさんNGNG
>>258
少なくとも、Tomcatではできない。
package宣言のないクラスはデフォルトパッケージに属するのだが、
Tomcatではデフォルトパッケージのクラスをimportできないため。
0262デフォルトの名無しさんNGNG
>>261
レスありがとうございます。
そうなのですか…。
現在eclipseを使って他のservletとの連携をとっています。
パッケージ化すると
http://localhost/(自分で作ったフォルダ)/servlet/クラス
というふうにアクセスできなくなるのでデフォルトの状態で勉強していました。
例えばpackという名前でパッケージ化すると、
http://localhost/(自分で作ったフォルダ)/servlet/pack/クラス
というふうにアクセスすることもできないようなのです。
どうすればアクセスできるようになるのでしょうか?
0263デフォルトの名無しさんNGNG
>>262
/servlet/pack.クラス
ね。「.」で区切った完全修飾名で指定する。
それよりもservlet-mappingを書けといいたいが、勉強中じゃ面倒か。
0264デフォルトの名無しさんNGNG
>>262
/servlet/クラス名
でできるはず。ただしクラス名はパッケージ名から始まる完全限定クラス名で。

しかし言わせてもらえばそもそも/servlet/クラス名 なんてやり方はダメ。
web.xmlにServletを登録し、URLパターンをマッピングしなさい。
0265デフォルトの名無しさんNGNG
>>263
レスありがとうございます。やってみます!
初心者の私に気配りをしてくださってどうもありがとうございます。

>>264
レスありがとうございます。
mappingですよね、少し調べてみたのですが難しそうなのでやめてしまっていました。
web.xmlは(自分で作ったフォルダ)/WEB-INF/web.xml
のことですか、それともtomcat/conf/web.xml
のことですか、どちらでしょうか?
0266デフォルトの名無しさんNGNG
>>264
(自分で作ったフォルダ)/WEB-INF/web.xml のほう。
この、(自分で作ったフォルダ)がアプリケーションのルートディレクトリになっているから、
アプリケーション固有の設定や固有のリソース(html、jsp、コンパイル済みクラスファイル、このアプリでしか使わないライブラリ等)は
全部このフォルダの下。
0267デフォルトの名無しさんNGNG
>>266
挑戦してみますができるかどうかはわかりません…。
あの、質問が初心者で申し訳ないのですが、どうして、
/servlet/クラス名でアクセスしてはだめなのでしょうか。
0268デフォルトの名無しさんNGNG
>>267
主にセキュリティ上の理由から。詳しくは以下を参照。
ttp://jakarta.apache.org/tomcat/faq/misc.html#evil
jajakartaがダウンしてるので本家のドキュメントね。
0269デフォルトの名無しさんNGNG
>>268
invokerとかですよね。
そういえば、<!--とかをはじめにはずした記憶があります。
勉強してみます!ありがとうございました!
0270デフォルトの名無しさんNGNG
ビジュアルノベルアプレットを自作しようとしているのですが
効果音を鳴らそうとしたときに
鳴るファイルと鳴らないファイルに分かれてしまいます
現在使おうとしているファイル種類は
au、wav(8-16bit/22-48KHz/176-1563kbps)で
それぞれにse[no]と言う名前をつけています([no]は通し番号
auが鳴らない、wavが鳴らないというわけではなく
au、wav混在しているため混乱しています

String checkSound(String fileName){
 String[] extention={".au",".AU",".wav",".WAV",".midi",".mid",".MIDI",".MID",".mp3",".MP3"};
 String file="Not found";
 URL check;
 for(int i=0;i<extention.length;i++){
  try{
   String proto=getCodeBase().toString()+fileName+extention[i];
   check=new URL(proto);
   check.openStream();
   file=fileName+extention[i];
   return file;
  }catch(Exception e){}
 }
 return file;
}
でファイルの存在確認と拡張子の限定を行います
0271デフォルトの名無しさんNGNG
上の続き

init()内で
for(int i=0;i<se.length;i++){
 String dir="sound/se/se";
 System.out.println(checkSound(dir+i));
 if(checkSound(dir+i).equals("Not found")) break;
 else se[i]=getAudioClip(getDocumentBase(),checkSound(dir+i));
}
初期化して

別に用意してあるテキストファイルに
SE noを発見したらStringTokenizerで分割して
se[Integer.parseInt(no)].play();
というようにして演奏するようにしています

現状ではファイル、配列、テキストファイルでの出現位置
そのいずれも原因としては特定できていません
wavの形式も範囲内だと思うのですが・・・
御助言よろしくお願い致します
0272デフォルトの名無しさんNGNG
文字列の改行コードをLFに統一する処理って
str = str.replaceAll("\r\n", "\n");
str = str.replaceAll("\r", "\n");
であってます?
0273デフォルトの名無しさんNGNG
>>272
それでいい。

s = s.replaceAll("(\r\n)|(\r)", "\n");
これでちょっといい気分になれる。
0274デフォルトの名無しさんNGNG
>>273
それが改行ができてないんですよねぇ
String str = "ほげ\rふー\rばー\r";
str = str.replaceAll("(\r\n)|(\r)", "\n");
System.out.println(str);
とやると、
ほげふーばー
と表示されてしまいます。
0275デフォルトの名無しさんNGNG
>>274
OSは?
WinXP/J2SE5では改行されるけど。

String s2 = s1.replaceAll("(\\r\\n)|(\\r)", "\n");でもいいようだ。
0276デフォルトの名無しさんNGNG
>>275
すいません、他の部分に問題がありました。
アドバイスありがとうございました。
0277デフォルトの名無しさんNGNG
TreeMapにオリジナルの順序のソートを与えるときに
keyの整数の大きさが大きい順でソートして、
さらにkeyの数が同じ時はそのkeyが対応している文字列の辞書順に並べ替えようと思うんですけが
keyの整数でのソートはできるんですが、辞書順でのソートができません。
0278277NGNG
すいません、解決しました。
0279デフォルトの名無しさんNGNG
>>277
そういうときKey,Valueをひとまとめにして取り出して、ArrayList<Entry<K,V>>をソートする。
0280デフォルトの名無しさんNGNG
Javaの文法って行末に;がついてるけど
あれって必ず改行することにすればいらないような・・・
0281デフォルトの名無しさんNGNG
それはまずC言語にいってください

というか改行が区切りってのは違ってると思うぞ

昔は一画面プログラムというもの(ry
0282デフォルトの名無しさんNGNG
>>280
VB屋さんでつか?
分の途中で開業できないと恐ろしく読みにくくなりますよ。
0283デフォルトの名無しさんNGNG
「文の途中で改行」だった・・・orz 逝ってきます
0284YahooBB218129112033.bbtec.netNGNG
a
0285デフォルトの名無しさんNGNG
SunのJRE1.4.2インストールしたのですが
何処にインストールしたのか解りません
インストーラに従ってインストールしたのですがフォルダ指定とかもありませんでした
何処に行ったのか教えてください
0286デフォルトの名無しさんNGNG
>>285
OSは?
0287285NGNG
すいません。XP,Homeです
0288初心者 ◆Java/isQ.c NGNG
>>285
あなたが見逃しただけで、フォルダ指定する機会はあったはずですよ。
デフォルトのインストール先は C:\j2sdk1.4.2_<version> だったかと思います。
<version> のところは、あなたがインストールしたものにあわせて読み替えてください。
現時点で最新のものをインストールしたのであれば、C:\j2sdk1.4.2_06 かと思います。
0289初心者 ◆Java/isQ.c NGNG
>>288
と、思ったら、JDK じゃなく JRE だったみたいですね。失礼しました。
0290初心者 ◆Java/isQ.c NGNG
>>285
JRE のインストール先は C:\Program Files\Java\j2re1.4.2_<version> だったかと思います。
<version> のところは、あなたがインストールしたものにあわせて読み替えてください。

現時点で最新のものをインストールしたのであれば、
C:\Program Files\Java\j2re1.4.2_06 になっているかと思います。
0291285NGNG
>>290
>C:\Program Files\Java\j2re1.4.2_06 になっているかと思います。
発見しました、有難うございました
0292デフォルトの名無しさんNGNG
クラスのjavaとjavaxの違いは何ですか?
0293初心者 ◆Java/isQ.c NGNG
>>292
パッケージの話でしょうか?だとすると次の記事が参考になるかもしれません。
ttp://www.javaworld.com/javaworld/jw-12-1998/jw-jbe-stand-ext.html
0294デフォルトの名無しさんNGNG
>>293
パッケージの間違いです
いきなり英語サイトに飛ばされる訳ですね・・・
すいません、教えてもらったのに愚痴言ってしまい
有難うございました
0295デフォルトの名無しさんNGNG
質問がいくつかあります。まとめて面倒見ていただけるとありがたいです。

1:コレクションのiteratorメソッドが返すIteratorは毎回コピーを生成して返すのか。
つまり、いくつかのスレッドが自分用のiteratorを得て、ぐるぐる回してもOKなのか?

2:static変数であるオブジェクトの中で宣言されたコレクションクラス(包含関係になっている)から
要素を取り出して(HashSetでもArrayListでもいいです)、得た要素に対して変更を加えても、コレクションの中の
要素には変更が反映されません。
ちなみに、複数のスレッドから行っています。volatileでコレクションを宣言してもダメで、結局変更後にコレクションにaddし直す
という事を行わざるおえなくなっています。これはstatic変数という事に何か関連があるのでしょうか?、コレクションから要素を得る場合
参照を返すので本来、変更は反映されると思うのですが。

駄文で申し訳ないですが、教えてください。よろしくおねがいします。
0296デフォルトの名無しさんNGNG
>1:コレクションのiteratorメソッドが返すIteratorは毎回コピーを生成して返すのか。
Iteratorは別のもの。元になったCollectionがコピーされるかどうかはIteratorの実装次第。
ただしIterate中に構造変化が起こった場合は

>つまり、いくつかのスレッドが自分用のiteratorを得て、ぐるぐる回してもOKなのか?
NG.
ただし、CopyOnWriteArrayListなどはIteratorが生きている間もとの構造を維持する。

複数スレッドから使いたければCollections.synchronizedList()で同期化する。
同期化されていれば途中で構造が変更されたときにきちんとConcurrentModificationExceptionがスローされる。

>2:static変数であるオブジェクトの中で宣言されたコレクションクラス(包含関係になっている)から
>要素を取り出して(HashSetでもArrayListでもいいです)、得た要素に対して変更を加えても、コレクションの中の
>要素には変更が反映されません。

同期化されたコレクションなら構造が反映されれば「安全に」ConcurrentModificationExceptionがスローされる。
0297デフォルトの名無しさんNGNG
>>296
ご返答ありがとうございます。
2についてなのですが、とりあえず、同期とかそういう事は置いておいて(複数スレッドとかじゃなく)
、static変数だと変更が反映されず、特にExceptionが出るわけでもありません。これはなぜでしょうか?
staticでなければちゃんと変更が反映されるのですが。
0298デフォルトの名無しさんNGNG
>>297
得た要素に対して変更を加えるって、入れてる要素のクラスはImmutableじゃないよな?
0299295NGNG
Immutableとは、生成時に設定した値から変更不可なクラスという意味でしょうか。
それともそういったインターフェースがあるのでしょうか?
知識不足ですね。すいません。
0300295NGNG
ちなみに、Immutableではありません。
static変数でない場合にはちゃんとできます。
0301デフォルトの名無しさんNGNG
>>299
immutableなクラスってのはStringとかみたいに「生成時に設定した値から変更不可なクラス」
staticの時だけ変更できないってのはなんか変だな。
0302295NGNG
>>301
メモリ上の配置とかそういうのに関係あるのかなと自分なりに考えているのですが、
原因不明です。volatileでもだめですし。
0303デフォルトの名無しさんNGNG
>>302
こんな感じでテストしたけど、普通に中身変更できるぞ?
俺の認識間違ってる?

private static ArrayList list;
static {
list = new ArrayList();
list.add( new StringBuffer( "aaa" ) );
list.add( new StringBuffer( "bbb" ) );
list.add( new StringBuffer( "ccc" ) );
list.add( new StringBuffer( "ddd" ) );
}
public void execute() throws Exception {
for ( Iterator i = list.iterator(); i.hasNext(); ) {
System.out.println( i.next() );
}

StringBuffer a = (StringBuffer)list.get( 0 );
a.append( "_add" );

for ( Iterator i = list.iterator(); i.hasNext(); ) {
System.out.println( i.next() );
}

}
0304253NGNG
遅くなりましたがcloneの件ありがとうございました。

かなり勉強になりました。
これ、知ってるのと知ってないのじゃ大違いですね。
ありがとうございました。
0305デフォルトの名無しさんNGNG
すいません。学校で問題を出されたのですが、さっぱりわかりません。
どなたかご教授お願いできないでしょうか?

問・適切な状況を考えて、abstractクラスを一つ作りなさい。そのサブクラスを
  3つ以上作ってスーパクラスのabstractメソッドを全て実装しなさい。
  また、そのテストプログラムを書きなさい。

という問題なんです。
abstractクラスは数とか抽象的なモノを表すってのはわかるんですが・・・。
0306デフォルトの名無しさんNGNG
>>305
宿題スレへ行け
0307デフォルトの名無しさんNGNG
>>305
http://pc5.2ch.net/test/read.cgi/tech/1100565043/l200
0308305NGNG
スレ違いでした。スミマセンm(__)m
0309デフォルトの名無しさんNGNG
"HOGEほげ\nHOGEひげ\nHOGEはげ\n\nなんとかかんとか\n"
などという複数行からなる文字列から、行頭がHOGEで始まる行は無視して、
該当しない行のみ(空行も含む)を抽出したいのですが、どのようにパターンを書けばいいでしょうか?
この場合は抽出したい文字列は"\nなんとかかんとか\n"となります
0310デフォルトの名無しさんNGNG
ここでOKな質問なのかわからないんですが、もしよかったら教えてください。
初心者なもので、すみません・・・

JBuilder2005をインストールしたんですが、
SDK1.5の文法の使用を許可する方法がわかりません。
どなたかご教授ください。
お願いします。
0311初心者 ◆Java/isQ.c NGNG
>>310
JBuilderスレで質問する方が良いのではないでしょうか?
私も初心者なので、よくわかりませんが。
ttp://pc5.2ch.net/test/read.cgi/tech/1054149131/
ttp://pc5.2ch.net/test/read.cgi/tech/1092170897/
0312デフォルトの名無しさんNGNG
javaで正規表現を使用してダブルクォーテーションとマッチさせたいのですが、
以下のように記述したらfalseが返ってきてしまいました。

ダブルクォーテーションとマッチさせる方法はありますでしょうか。

----
Pattern pattern = Pattern.compile("\"");
Matcher matcher = pattern.matcher("\"text\"");
boolean b = matcher.matches();

System.out.println(b);
----
0313デフォルトの名無しさんNGNG
"\\""
0314デフォルトの名無しさんNGNG
>>313
ありがとうございます。

結果は、
「文字列リテラルが閉じられていません。」
となってしまいました。

引き続き調べてみます。

----
Pattern pattern = Pattern.compile("\\"");
Matcher matcher = pattern.matcher("\"text\"");
boolean b = matcher.matches();

System.out.println(b);
----

0315デフォルトの名無しさんNGNG
>>314
matches()
は文字列全体と比較しますので、この場合は使い方が間違ぐあなにをす
0316デフォルトの名無しさんNGNG
>>315
ありがとうございます。

ご指摘のとおり、matches()メソッドの仕様を理解できていないようです。

以下のように置換してみますと、問題なくダブルクォーテーションが置換されます。

対象の文字列中にダブルクォーテーションがあった場合に、
trueを返してもらうには、別のメソッドを使用する必要がありそうです。

なんにせよ、解決の糸口が絞れてきて前進しました。ありがとうございました。

----
Pattern pattern = Pattern.compile("\"");
Matcher matcher = pattern.matcher("\"text\"");
//boolean b = matcher.matches();

String str = matcher.replaceAll(" - replaced - ");
System.out.println(str);
----


0317デフォルトの名無しさんNGNG
>>277,279
何とおりもソートしたいんなら別だが
Comparatorを引数にとるコンストラクタもあるだろ?
0318デフォルトの名無しさんNGNG
>>317
その引数にとられるComparatorが参照する(Tree)Mapはどこにありますか?
0319デフォルトの名無しさんNGNG
String fileName = "test.log";
String[] fileNameSplit = fileName.split("\\.");
String string01 = fileNameSplit[1]
String string02 = "log";
if(string01 == string02){
return true;
} else {
return false;
}

というソースを実行するとfalseが返ってきてしまいます。
lastIndexOfなどを使ってStringを分割してもみたんですが,結果は同じです。。
拡張子を判別したいだけなのですが,上手い方法ないものでしょうか?
ご教授下さい。
0320デフォルトの名無しさんNGNG
>>319
== は参照が同じインスタンスを指してる場合に true になる。
string01.equals(string02) を使え。
0321デフォルトの名無しさんNGNG
>>320
でけました。多謝多謝であります!
Stringはオブジェクトなんですよね。。
忘れてました。
0322デフォルトの名無しさんNGNG
>>318
お前バカだろ?何でComparatorがTreeMapを参照する必要があるんだか。
0323デフォルトの名無しさんNGNG
Jarファイルの中に含まれた、Jarファイルのクラスを読み取るには
どうすればいいのでしょうか?
app.jarファイルの構造は

app.jar
  main/Main.class
 lib.jar
    sub/Sub.class

となっていて、app.jarを、main.Mainから実行した時に
Mainクラス内から、lib.jarに含まれてる Subクラスを使用したいのですが、
マニフェストファイルに Class-Path: lib.jar などと記述しても
lib.jar内のsub.Subクラスを読み取ってくれません。

jarファイルに含まれているjarファイル内のクラスを、読み取る方法を
教えてください。
0324デフォルトの名無しさんNGNG
>>323
実行時にlib.jar はクラスパスに含まれているのか?
0325デフォルトの名無しさんNGNG
>>323 できない。自分でクラスローダを自作するか
どっかから探してくるかすること。
0326デフォルトの名無しさんNGNG
List list = Collections.synchronizedList(new LinkedList());

という方法でLinkedListを同期化できる事は知っているのですが、これでは
LinkedListにあって、Listにはないようなメソッドは使用できなくなってしまいます。

LinkedList list = (LinkedList) Collections.synchronizedList(new LinkedList());
のような結果を得る事はできないのでしょうか?   ↑ちなみにこの方法は使えない。
0327デフォルトの名無しさんNGNG
そんなに繰り上がり足し算風な書き方がお好きなら、こう書けば?

a =
2 \
+ 3 \
+ 4 \

p a

0328デフォルトの名無しさんNGNG
0x0000,0x0000,0,15,1,
0x0001,0x0001,15,0,2,
0x0002,0x0001,14,0,2,
0x0003,0x0003,15,0,3,

こういったテキストファイルの内容を
何行目か指定してその行の内容をカンマで区切ってある部分ごとに配列に格納したいのですが
どのようにすればいいでしょうか?
0329デフォルトの名無しさんNGNG
>>325
ええっ出来ないんですか?
信じられません・・・・
じゃあ、ライブラリJarファイルを、単独起動jarファイル内から使用する時は、
まさかそのライブラリからclassファイルを抽出して、
単独実行jarファイルに含めねばならないのですか?
なんて事だ・・・
0330デフォルトの名無しさんNGNG
SunのJREとIBMのJREってどう違いますか?
内部実装が違っても言語仕様はまったく同一と見て良いのでしょうか?
0331デフォルトの名無しさんNGNG
どなたか>>309にアドバイス頂けませんでしょうか?
0332デフォルトの名無しさんNGNG
>>329
jarファイル内に別のjarファイルを格納したりしないで、
素直にmainを含むjarファイルと、ライブラリのjarファイルと、起動用バッチを用意すればいいのでは。
0333デフォルトの名無しさんNGNG
>>329
そんなことはない。同一ディレクトリにjarを置いて、MANIFESTファイルに
Class-Path: lib.jar
などと書けば参照してくれるよ。
MANIFESTファイルにMain-Classを書いておけば起動用スクリプトも不要。
0334デフォルトの名無しさんNGNG
([^H]|H[^O]|HO[^G]|HOG[^E])
0335デフォルトの名無しさんNGNG
>>328
自己解決しました
失礼いたしました
0336デフォルトの名無しさんNGNG
>>328
そのファイルはCSV形式と呼ばれるものです。試しに拡張子を .csv にして
みてください。あーら不思議、Excel で開けちゃうんですよ。
・・・というわけで「CSV」をキーワードにして調べてみてください。
0337336NGNG
ちっ、遅かったかw
0338デフォルトの名無しさんNGNG
>>333
それじゃ「単独」起動じゃないからイヤなんです。
そのJarファイルを実行するのに、同じディレクトリにライブラリを置かねば
ならないって制約がイヤなんです。
そのjarファイル一つだけを自由に移動させて、一つだけで実行したいんです。
jarファイル内の奥までクラスパスが通せないなんて、Main-Path: app.jar\lib.jar
みたいに記述できないなんて、本当にひどいです・・・・(T_T)
0339デフォルトの名無しさんNGNG
>>333
それじゃ「単独」起動じゃないからイヤなんです。
そのJarファイルを実行するのに、同じディレクトリにライブラリを置かねば
ならないって制約がイヤなんです。
そのjarファイル一つだけを自由に移動させて、一つだけで実行したいんです。
jarファイル内の奥までクラスパスが通せないなんて、Class-Path: app.jar\lib.jar
みたいに記述できないなんて、本当にひどいです・・・・(T_T)
0340デフォルトの名無しさんNGNG
>>338
どうしても1つのJarにまとめたいなら、
ライブラリのjarをばらして1つのjarファイルにすればいいじゃない。
面倒なら、それを自動的にやってくれるツールもあるよ。
ttp://fjep.sourceforge.net/
Eclipseのプラグインだけど。
しかし、そんなのはAntスクリプト書けばすぐできるよね。

しかし、「本当にひどいです・・・・(T_T)」なんて涙ながらに書くことか?
0341デフォルトの名無しさんNGNG
>>334
それって行頭でなく行中にHOGEがある場合も弾かれません?
0342デフォルトの名無しさんNGNG
>>340
おお、かなり便利なmんおがあるじゃないか。
0343デフォルトの名無しさんNGNG
341
解決したか? 頭に^つけてみ
0344デフォルトの名無しさんNGNG
>>343
要するに、"^([^H]|H[^O]|HO[^G]|HOG[^E])(.*)"
としてgroup(2)を取れば、行頭に弾きたいパターンを持たない行のみを
取ってこれるということでしょうか?
0345デフォルトの名無しさんNGNG
聞く前にやってみればいいのではないでしょうか?
0346デフォルトの名無しさんNGNG
>>345
やってみたんですが、うまく行かないんですよね
文字列が単一行の場合のみヒットして、かつ抽出した文字列は
行頭の一文字が無くなっています
0347デフォルトの名無しさんNGNG
http://pc5.2ch.net/test/read.cgi/unix/1103972661/l50
0348デフォルトの名無しさんNGNG
JREダウンロードするとするとバージョン1.4.2_01〜1.4.2_06までいくつかインストールされるじゃないですか?
これって一個残してアンイストールしても問題無?
0349初心者 ◆Java/isQ.c NGNG
>>348
一回のダウンロードでいくつかインストールされるわけではなく、
ダウンロードした際、それぞれの最新版をインストールしているのかと。

現在の最新版は 1.4.2_06 ですから、
それ以外はアンインストールしても構わないと思います。

実際、自分は最新版を残し、古くなったものはアンインストールしていますが、
これまでのところ、特に問題が発生したことはありませんでした。

ただし、(1)JRE導入⇒(2)何か追加でインストール⇒(3)新JRE導入、とした場合、
(2)で導入したものがJREのフォルダに変更を加えるタイプのものだとすると、
当然ながら(3)で導入した新JRE環境には(2)が導入されませんので、お気をつけて。
0350デフォルトの名無しさんNGNG
>>349
親切な回答有難うございます

>一回のダウンロードでいくつかインストールされるわけではなく、
>ダウンロードした際、それぞれの最新版をインストールしているのかと。
今見たら私の文章変ですね
JRE自体はかなり昔にインストールしたのでその辺の記憶が曖昧なんです
PC軽くするため何か削除できるソフトがないかとアプリケーションの削除見ていたら
JREがたくさんあったので気になりました
有難うございました
0351デフォルトの名無しさんNGNG
>>326
答えてやって下さい。orz
0352デフォルトの名無しさんNGNG
>>351
何故スルーされるのか考えてみよう
0353デフォルトの名無しさんNGNG
わからないから
0354デフォルトの名無しさんNGNG
346
正規表現勉強しろ
0355デフォルトの名無しさんNGNG
>>353
それでいいや
0356デフォルトの名無しさんNGNG
>>326

Vectorの同期化が役に立たないのと同じ理由で
Collections.synchronizedListの同期化も役に立たない。

LinkedListをどうして同期化したいと思ったのだ?
LinkedListのまま使って、必要なときはsynchronizedブロックを使うのが正しい。
0357デフォルトの名無しさんNGNG
>>356
なるほど。最終的にはそれなんですね。
0358デフォルトの名無しさんNGNG
JARの中のファイルからテキストを読み出すときは
 getClass().getResourceAsStream(filename)
でInputStreamを取り出すと思うのですが、このInputStreamを使ってBufferedReaderのreadLine()のようにテキストを読み出したい場合はどうすればよいでしょうか。
InputStreamからBufferedReaderをどうやって作ればいいのかが分かりません。アドバイスお願いします。
0359デフォルトの名無しさんNGNG
JSTLで配列やマップの要素に値を設定するにはどうしたらいいでしょうか。
<c:set var="array_list[0]" value="foo"/>
とか
<c:set target="hash_map" property="key1" value="value1"/>
とかしてもうまくいかないんですが。

Tomcat5.0.28 + Jakarta Taglibs 1.1.2
0360デフォルトの名無しさんNGNG
>>358
new BufferedReader(new InputStreamReader(getClass().getResourceAsStream(filename)));
0361デフォルトの名無しさんNGNG
>>360
ありがとうございます。それでできました。
0362デフォルトの名無しさんNGNG
>>352-355
質問スレの意味無いやん
0363デフォルトの名無しさんNGNG
>>362
ちゃんと回答される質問も少なからず存在する以上、質問スレの存在する意味はあるよ。
0364デフォルトの名無しさんNGNG
>>363
つまり>>352-355のようなノイズが混ざるのはある程度我慢しろって事か
0365デフォルトの名無しさんNGNG
>>359
<jsp:setProperty name="set" property="var" value="array_list[0]" />
<jsp:setProperty name="set" property="key1" value="value1" />
0366デフォルトの名無しさんNGNG
またネタ師か・・・・
0367デフォルトの名無しさんNGNG
ジェネリックで躓いてます、神様お助けを!
public class X<T> {
T[] m = new T[ 1 ];
}
などとすると、「汎用配列を作成します」とエラーになってしまいます。
何故なんでしょう???
0368デフォルトの名無しさんNGNG
>>367
erasure だから。

erasure がクソだとか言うのは作者に言え。
もしくはクソでない仕様と実装を作ってから文句言え。
0369デフォルトの名無しさんNGNG
>>365
うまくいかなんですけど。
つーか、365のとおりなら、 set.setVar(array_list[0]); や set.setKey1("value1"); となるから、ぜんぜん違うような。
0370デフォルトの名無しさんNGNG
javaを始めようと思い、java2SDKをインストールしてautoexec batで
環境変数の設定を行おうとしたのですが、autoexecのテキスト内に
PATHという文字がなかったので、
PATH = D:[javacの保存場所]
と追加しましたが正しくコンパイル出来ません。
上記のように追加した後でDOSで ECHO %PATH%[ENTER]
と入力するとなぜか、 c:\windows\command と出ました。
この場合どうすれば正しくパスが設定できるのでしょうか?
アドバイスどうかお願いします。
ちなみにOSはwin95です
0371デフォルトの名無しさんNGNG
>>370
コンパイル前にDOSプロンプトで
SET PATH = D:[javacの保存場所]
としてからjavacコマンド実行じゃダメ?
0372デフォルトの名無しさんNGNG
うう・・この時代にWindows95なんてかわいそう・・・(T_T)
0373デフォルトの名無しさんNGNG
>>370
スペースを入れない
0374デフォルトの名無しさんNGNG
Win95 も 10年前の OS になっちゃうんだなぁ……
0375デフォルトの名無しさんNGNG
SET PATH=D:\XXX\bin;%PATH%
0376デフォルトの名無しさんNGNG
SET PATH=%PATH%;D:\XXX\bin
0377370NGNG
>>371-376
即レス本当にありがとうございます。早速371さんのアドバイスから順に
試してみたのですが、コンパイルできず、DOSでPATHと入力しても
C:\WINDOWS;C:\WINDOWS\COMMAND と出てしまいます。もしかしたら
autoexec.batの内容に問題があるかもしれませんので、見て頂けないでしょうか?
0378370NGNG
SET PATH=%PATH%;D:\riyou2\bin

@echo off
SET BLASTER=A220 I5 D1 T4

REM ===================
REM Notes for OEM:
REM - You should remove these remarks for the final disks you send to customers.
REM - You MUST explicitly specify the CD ROM Drive Letter for MSCDEX.
REM - You must switch to the CDROM drive, and then CD to the directory.
REM - the string CD001 must explicitly match the same string in CONFIG.SYS.
REM - The file DRVCOPY.INF MUST be modified to refer to the proper
REM - real-mode CD ROM driver. This driver will be copied to the
REM - hard disk during installation by the DRVCOPY.INF file.
REM - (Note: The user will have to type in the drive letter for the floppy disk
REM - when prompted at the end of setup.)

ECHO Warning - This system may not be setup to use the CD ROM.
ECHO Please contact your PC Manufacturer if Setup does not start automatically.
PAUSE
REM ===================

MSCDEX.EXE /D:OEMCD001 /L:D
d:
cd \win95
oemsetup /k "a:\drvcopy.inf"
0379デフォルトの名無しさんNGNG
>>377-378
既にJavaに関する質問ではない気が
0380デフォルトの名無しさんNGNG
>>378
SET PATH=%PATH%;D:\riyou2\bin
↑を最後の行にしたら
0381デフォルトの名無しさんNGNG
>>377-378
Win9x系OSの場合はOSを再起動するか
コマンドラインで直接c:\autoexec.batを実行しないと
パスが有効にならないぞ。

これをどうしてもやりたくないというなら

コマンドラインで直接 set PATH=%PATH%;c:\j2sdk.1.4.2_06\bin
と入力すると手っ取り早い。
だが再起動するとこの設定は結局無効になるので
autoexec.batにはちゃんと書いた方がいい。
もちろんファイルの最後尾にPATHを追加だ。
0382370NGNG
>>380-381
レスありがとうございます。
autoexec.batで SET PATH=%PATH%;D:\xxx\bin
と入力し上書き保存して再起動しましたがダメでした。

うーん、何がいけないんでしょう・・・。
ところで、私が今使っているautoexec.batは2chで分類するとどの板が
適当なのでしょうか。379さんがおっしゃるようjavaというよりautoexecの
問題のような気がしてきましたので。
0383初心者 ◆Java/isQ.c NGNG
>>382
ttp://pc5.2ch.net/test/read.cgi/win/1100212974/
0384デフォルトの名無しさんNGNG
なんつーかPATHの設定を直して再起動してから、PATHが設定されてるかどうか
setコマンドやPATHコマンドで実際の環境変数を確認するプロセスが欠けてるよね。
0385デフォルトの名無しさんNGNG
やさしいJava活用編でJavaBeansを勉強してます
リクエストを受けてサーブレットでBeanを設定してJSPで結果を出力するという
プログラムを作成したのですが結果に何も出力されず、うまくいきません
付録のサンプルプログラムを使用してもおなじでした
Tomcat4.1.31を使ってます
これは環境設定がいけないのでしょうか
対処法を教えてください…
0386デフォルトの名無しさんNGNG
>>385
この情報から何をどう判断したものやら
まずは質問の仕方を勉強してみてはどうでしょう
0387デフォルトの名無しさんNGNG
>>382
まず、そのautoezec.batは一体どこに入っているのだ?
autoexec.batはCドライブに入っているのか?
ちゃんとc:\直下に存在するのか?

コマンドmsconfigは弄ったか?

なぜwin95を使っているのだ?

本当に
D:\xxx\bin
の中に java.exe, javac.exeが存在しているのか?

Win95が起動するドライブは本当にcドライブか?

マシンはDOS/Vマシンか? それともNECのValueStarNX以前のPC9821, 9801シリーズか?
0388デフォルトの名無しさんNGNG
>>385
> やさしいJava活用編でJavaBeansを勉強してます
> リクエストを受けてサーブレットでBeanを設定してJSPで結果を出力するという

誰が、いったいいつ、どこで、どのようにして、どんなリクエストを受けた?
どんなBeanを設定した?
CMP Entity Beanを設定したのか?
それともStateless Session Beansを設定したのか?
それともStatefull Session Beansを設定したのか?
それともMessage Driven Beansを(ry

質問が曖昧すぎて答えづらくて頭に来る!!!!!!!
>>386が訴えている意味が分かったか?
5W1Hくらいははっきりさせろ!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!


> プログラムを作成したのですが結果に何も出力されず、うまくいきません
どこで結果を表示した!!!!!!!!!!!
どういうエラーメッセージが出た!
どういう環境で実行した!!!!
質問が曖昧すぎてむかつくんだわ。殺したくなるほど!!!!!!!!!!!!!
殴りたくなるほど!!!!!!!!!!!!!
FUCK YOU!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 

> 付録のサンプルプログラムを使用してもおなじでした
どこのどういうサンプルだ!
0389デフォルトの名無しさんNGNG
あ→0、い→1、・・・、ん→55
のようにひらがなを数値に変換したいんですがハッシュ以外で方法はありませんか?
CでアルファベットだったらA-'A'というふうにできますがJavaで似たことやりたい場合はどうすればいいでしょうか?
0390初心者 ◆Java/isQ.c NGNG
>>389
java.lang.Character クラスの
getNumericValue メソッドはどうでしょう?
0391デフォルトの名無しさんNGNG
>>390
ありがとうございます。
System.out.println(Character.getNumericValue('あ'));
System.out.println(Character.getNumericValue('い'));
日本語だと-1になってしまいますorz
0392デフォルトの名無しさんNGNG
>>390
Character.getNumericValue() ってのは引数に '1' を指定して呼んだら 1 が返るとかゆーメソッドだから、
>>389 の用途には使えない。
0393初心者 ◆Java/isQ.c NGNG
>>391-392
見当違いな回答をしてしまい、失礼しました。
0394デフォルトの名無しさんNGNG
>>392
でも'A'を指定したら10が'B'だったら11が返ってきましたよ。ひらがなじゃなくてアルファベットだったら望みどおりの結果です。
0395370NGNG
>>384
毎回再起動した後、DOSで ECHO %PATH% と入力しているのですが
これとはまた別のことでしょうか?
>>387
autoezec.batはc:\windows\options\Cabsに入っていました。修正します。
コマンドmsconfigはまだいじってません。弄り方調べてみます。
WIN95を使っているのはお金がないからです。
javacはbinの中に入っています。
WINが起動するドライブはおそらくcだと思います。
マシンはFMV SV205だと思います。
アドバイスありがとうございます。
0396デフォルトの名無しさんNGNG
自己レスですが
System.out.println('い'-'あ' + "");だと2
System.out.println('う'-'あ' + "");だと4
System.out.println('え'-'あ' + "");だと6
が返ってきたので2でわってやれば何とかなりそうです。
0397デフォルトの名無しさんNGNG
>>395
autoexec.bat の話題はスレ違いかと
既に誘導されてる通り、こちらで続けては?
ttp://pc5.2ch.net/test/read.cgi/win/1100212974/
0398370NGNG
>>395
分かりました。

みなさん、レスありがとうございました。
0399デフォルトの名無しさんNGNG
>396
(できればUnicodeの) 文字コード表を眺めてみろ
表を眺めてればその方法がとんちんかんだということに気づくはずだ
0400デフォルトの名無しさんNGNG
賢者のみなさん、どうかお知恵を。
長いので何回かに分けて書き込みます。
以下のプログラムを実行して、textPaneにTest!などと文字列を入力し、encode !ボタンを押すと
textPaneのStyledDocumentがxml形式でシリアライズされます。
/**************** コード開始 ****************/
import java.awt.*;
import javax.swing.text.*;
import java.awt.event.*;
import java.io.*;
import java.beans.*;
import javax.swing.*;
public class XMLEncoderTest extends JFrame implements ActionListener{
JTextPane textPane;
JScrollPane scrollPane;
public static void main(String[] args){
JFrame f=new XMLEncoderTest();
f.setSize(400,400);
f.setVisible(true);
}
public XMLEncoderTest(){
Container cP;
JButton button;
cP=getContentPane();
button=new JButton("encode !");
button.addActionListener(this);
textPane=new JTextPane();
scrollPane=new JScrollPane(textPane);
cP.add(scrollPane,BorderLayout.CENTER);
cP.add(button,BorderLayout.SOUTH);
}
0401400NGNG
続きです。
public void actionPerformed(ActionEvent e){
StyledDocument doc=textPane.getStyledDocument();
try{
BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream("bean.xml"));
XMLEncoder encoder=new XMLEncoder(out);
encoder.writeObject(doc);
encoder.close();
}catch(FileNotFoundException ex){
}
}
}
/**************** コード終了 ****************/
ところが、出来上がったbean.xmlを開いてみると、以下のような内容になっています。
/**************** xmlファイルの内容 ****************/
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.4.2_05" class="java.beans.XMLDecoder">
<object class="javax.swing.text.DefaultStyledDocument">
<void property="documentProperties">
<void method="put">
<object class="java.awt.font.TextAttribute" field="RUN_DIRECTION"/>
<boolean>false</boolean>
</void>
</void>
</object>
</java>
/**************** xmlファイルの内容終了 ****************/
ここにはDefaultStyledDocumentの内容(Test!という文字列)の情報が全く含まれていません。
これではXMLDecoderでデシリアライズすることは不可能と思われます。実際、以下のプログラムを
実行して、decode !ボタンを押してみましたが、やはりTest!とう文字列は表示されませんでした。
0402400NGNG
続きです。
/**************** コード開始 ****************/
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.beans.*;
import javax.swing.*;
import javax.swing.text.*;

public class XMLDecoderTest extends JFrame implements ActionListener{
JTextPane textPane;
JScrollPane scrollPane;
public static void main(String[] args){
JFrame f=new XMLDecoderTest();
f.setSize(400,400);
f.setVisible(true);
}
public XMLDecoderTest(){
Container cP;
JButton button;
cP=getContentPane();
button=new JButton("decode !");
button.addActionListener(this);
textPane=new JTextPane();
scrollPane=new JScrollPane(textPane);
cP.add(button,BorderLayout.SOUTH);
cP.add(scrollPane,BorderLayout.CENTER);
}
0403400NGNG
続きです。(最後)
public void actionPerformed(ActionEvent e){
StyledDocument doc;
try{
BufferedInputStream in=new BufferedInputStream(new FileInputStream("bean.xml"));
XMLDecoder decoder=new XMLDecoder(in);
Object b=decoder.readObject();
decoder.close();
doc=(StyledDocument)b;
textPane.setStyledDocument(doc);
}catch(FileNotFoundException ex){
System.out.println("File not found !");
}
}
}
/**************** コード終了 ****************/
同様のプログラムでJFrameやJButton、また適当に作ったbean仕様のクラスは
みなうまくシリアライズ、デシリアライズできました。PlainDocumentや
DefaultStyledDocumentはどのようにすればシリアライズ、デシリアライズができるのでしょうか。
0404デフォルトの名無しさんNGNG
>>399
そのとおりでしたorz
'お'まではうまくいったのに'か'から変になりました。ユニコード表見てみます。
0405デフォルトの名無しさんNGNG
なるほど間にがとかが入ってるのかorz
0406デフォルトの名無しさんNGNG
>>394
まずドキュメントを読む癖をつけろ。

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Character.html#getNumericValue(char)
> 指定された Unicode 文字の表す int 値を返します。
> たとえば、文字 '\u216C' (ローマ数字の 50) は、値 50 の int を返します。
>
> A 〜 Z を表す大文字 ('\u0041' 〜 '\u005A')、小文字 ('\u0061' 〜 '\u007A')、
> および全角形式 ('\uFF21' 〜 '\uFF3A'、'\uFF41' 〜 '\uFF5A') は、10 〜 35 までの数値を形成します。
> これは Unicode 仕様 (これらの char 値に数値を割り当てない) からは独立しています。
>
> 文字が数値を持たない場合は、-1 が返されます。
> 文字の数値を負でない整数として表現できない場合 (小数値など) は、-2 が返されます。
0407デフォルトの名無しさんNGNG
System.out.println()じゃなくてprintln()で済ますことってできないんですか?
Systemクラスはlangパッケージ内だからインポートしなくてもいいですよね
してもできませんでしたが
0408デフォルトの名無しさんNGNG
test
0409デフォルトの名無しさんNGNG
>>407
J2SE5.0なら static import で out.pritln() までは削れたはず
でも楽したいならEclipseとかコード補完出来るエディタ使った方がいいと思うが
※Eclipseだとsysoutって打ってCtrl+Space押すとSystem.out.println()になる
0410初心者 ◆Java/isQ.c NGNG
>>407
自分が作成するクラスに println() メソッドを用意して、
そこから System.out.println() を呼び出す、というのはどうでしょう?
0411407NGNG
>>409-410
返事どうもです
すいません、環境はSDK1.4+Eclipseです
まずプログラミングに慣れたいんでJ2SE5.0は今は使う気はないです
Eclipseは昨日ダウンロードしたばっかりで詳しく解らないですけどコード補完は利用してます

>※Eclipseだとsysoutって打ってCtrl+Space押すとSystem.out.println()になる
スゴイ、感動しました。sysoutでできるなんて知りませんでした
printlnの様なよく使われるメソッドもできるんでしょうか?一覧で教えてくれるサイトとか
あったら教えて欲しいです

あと>>407の質問ですけど思いっきり勘違いしていました
Systemクラスをインポートした所でそのクラスを省略できないですよね_| ̄|○
でもoutってクラスじゃなくてフィールドなんだ・・・フィールドって何だろう
Systemがoutを継承しててoutクラスのメソッドprintln()を使ってると思ってたのに
ああ、混乱してきた
0412デフォルトの名無しさんNGNG
インポート(import java.util.Listの類)
java.util.ListをList、
java.lang.SystemをSystemなどと略記できるようになる。
(java.lang配下のものはやらんでも略記できること、と決まっているので不要)

スタティックインポート(import static java.lang.Math.sinの類)
JDK1.5以降で使える。クラスの静的メンバーのクラス名を略記できるようになる。
import static java.lang.System.out;
と書けば、out.println(...)などと書けるようになる。

outはSystemクラスのサブクラスではない(継承していない)。
Systemクラスの静的フィールド。

sysoutとタイプして補完するやつは自分でも定義できる。
メニューから、Window>Preferences>Java>Editor>Templates参照。
0413デフォルトの名無しさんNGNG
JARファイルをWebサイトにアップしてIEでダウンロードしようとするとかってに拡張子がZIPに変わってしまいます。
自己実行型JARを作ってもZIPにされてしまってはダブルクリックで解凍されてしまって困っています。
なるべくユーザに.zipから.jarに拡張子を変える手間を持たせたくないのですが方法はないでしょうか。
0414デフォルトの名無しさんNGNG
サブパッケージって何ですか?

例えばJava.awtのサブパッケージは何?
APIリファレンス見てもトップのJAVAプラットフォームパッケージしか見つかりません
0415414NGNG
失礼しました、逝ってきます
0416デフォルトの名無しさんNGNG
>413
IEでなければ大丈夫なん?
そうだとしたら鯖の問題な悪寒。「.htaccess」とかぐぐってみそ。
0417デフォルトの名無しさんNGNG
JAVA経験2日目でコツコツ一人で調べながら頑張っています・・・
年明けにコーディングが始まってしまうので
年末休暇中自宅でJAVAでHELLOWORLDから初めて
今やっとSevlet,JSP,JDBC編が終わりました。
年明けまでになんとかSTRUTSを理解して雛形を作成したいのです。

これからSTRUTSでHelloWorldに取り掛かる所なのですが
次の仕事の端末側がi-mode(携帯電話)なので少し疑問に思ったことがあって。

struts-blank.warを元に作成しようかと思ってます。
疑問は
struts-blank.warを元に作成してしまって携帯電話で使えるのでしょうか?
というのも携帯電話ではCookieeが使えないので・・・
データの受け渡し方法がよくつかめなくて・・・
セッションで受け渡しているんでしょうか?

タグライブラリでの記述もよく分かっていませんが、とにかく自分で調べてみます。
上の疑問も今ソースを追って調べているんですが、焦っているのになかなか分かりません。
どうか宜しくお願いします。
0418デフォルトの名無しさんNGNG
>>417
ActionFormのscopeは選択できるよ。
application、session、request。
0419デフォルトの名無しさんNGNG
>>417
Cookieが使えなくてもSessionの維持は可能。
Servlet API にはURLRewritingという仕組みがあって、
Strutsはデフォルトで対応・実装されている。
0420デフォルトの名無しさんNGNG
ていうかまずデータの受け渡しをセッションでやると思っているあたり
ちょっとまずいけどな
0421デフォルトの名無しさんNGNG
>>418
>>419
有り難うございます。2人の書き込みでi-mode(携帯)でもいけそうだと分かり嬉しいです。
きちんと全部のソースを読んでみます。
あまりにも分かっていないのでプリントアウトして
一行ごとに日本語で調べた内容を書こうかと・・・
今日明日中には基本的なことを理解したいです。
そして2日間かけて自分なりの雛形が作ろうかと思います。
>>420
お恥ずかしいかぎりです。とりあえず皆さんが教えてくれたことをググってきちんと理解してきます。
0422デフォルトの名無しさんNGNG
Integerクラスとかのラッパークラスは抽象クラスでないなの
何故にオブジェクト作らなくてクラスを指定してオーケーなのでしょうか?
Integer.parseInt()とかの事です
0423デフォルトの名無しさんNGNG
>>422
ラッパークラスかどうか何て全く関係ない。
「staticメソッドだから」が答え。
0424デフォルトの名無しさんNGNG
>>416
IEでなければ大丈夫です。.htaccess調べてみます。
0425デフォルトの名無しさんNGNG
描画についてですが1秒おきに1文字ずつ画面に文字が表示されるようにしたいと思ってます。
下のように書いたのですが1秒スリープしてから全部の文字が表示されてしまいます。
1文字drawStringした時点で画面を必ず更新させることはできるでしょうか。

 for (int i=0; i<text[0].length(); i++) {
  g.drawString(text[0].charAt(i)+"", 20+i*12, 150);
  repaint();
  try {
   Thread.sleep(1000);
  } catch (InterruptedException e) {}
  }
0426デフォルトの名無しさんNGNG
下記�@�Aはコンパイルできるのに、�Bだけ
Exception in thread "main" java.lang.NoClassDefFoundError
と表示されてしまいます。pathは通ってると思うので原因がよくわかりません。
宜しくお願いします。
�@
class Example1 {
public static void main(String args[]) {
System.out.println("This is the output from Eample1");
}
}
�A
class Example2 {
public static void main(String args[]) {
System.out.println("This is on the first line.");
System.out.println("This is on the second line.");
}
}
�B
class DisplayFloat {
public static void main(String args[]) {
float price;
price = 45.35f;
System.out.print("The price is");
System.out.println(price);
}
}
0427426NGNG
すいません、通りました。ごめんなさい。
ホントに427ですね…
0428デフォルトの名無しさんNGNG
>>427
イ�`。
0429デフォルトの名無しさんNGNG
>>417
二日目でServlet,JSP,JDBCまで理解したってのはスゴイ
他言語での開発経験は、あるのだろうが・・・
0430デフォルトの名無しさんNGNG
>>429
そんな。3年間出向でCOBOLのバッチ処理を組んでいました。会社に帰ったらJAVA一色で・・・
覚えは悪い方だと思います。STRUTSで失速中ですし・・・なんとか今夜頑張ってみます。
雑談すみません。
0431デフォルトの名無しさんNGNG
>>425
invokeLater
0432デフォルトの名無しさんNGNG
Java3Dを始めようとして最初のところで行き詰ってしまいました。
皆さん、どうか助けてください。

下のソースはコンパイルは通るのですが、プログラムを実行するとウインドウは表示されるのですが中の画像が表示されません。
コンソールには「wglCreateContext Failed: ピクセル形式が無効です。」と表示されています。
なにがいけないのでしょうか?

PG実行時の状態
http://uploader.zive.net/file/2882.gif

環境
OS:XP SP2
JDK:1.5.0_01
Java3D:1.3.1(OpenGL)

以下ソース
import javax.swing.*;
import java.awt.event.*;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;

public class Sample3D extends JFrame {
0433デフォルトの名無しさんNGNG
>>432 のつづき

public BranchGroup createSceneGraph() {
BranchGroup objRoot = new BranchGroup();

/* この例では、ColorCubeクラスを使ってます */
objRoot.addChild(new ColorCube(0.4));
objRoot.compile();

return objRoot;
}

public Sample3D() {
getContentPane().setLayout(new BorderLayout());

GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();

Canvas3D canvas = new Canvas3D(config);
getContentPane().add("Center", canvas);

BranchGroup scene = createSceneGraph();
SimpleUniverse universe = new SimpleUniverse(canvas);

universe.getViewingPlatform().setNominalViewingTransform();
universe.addBranchGraph(scene);
}
0434デフォルトの名無しさんNGNG
>>433 のつづき

public static void main(String[] args) {
Sample3D sample = new Sample3D();

/* サイズ指定 */
sample.setBounds( 10, 10, 240, 240);

/* 終了処理を追加 */
sample.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){System.exit(0);}
});

/* 実際に表示する */
sample.setVisible(true);
}
}


どうかよろしくお願いします。
0435初心者 ◆Java/isQ.c NGNG
>>424
IEでなければ大丈夫なら、IEの問題なのではないでしょうか。。
jarファイルはzipファイルと同様の形式で圧縮されていますから、
IEがダウンロードするファイルをzipファイルと認識しているものと思います。
0436デフォルトの名無しさんNGNG
正規表現で単語を抜き出すときに特定の単語、例えばorangeなどの単語を省くのはどうすればいいのでしょうか。
0437初心者 ◆Java/isQ.c NGNG
>>436
ttp://pc5.2ch.net/test/read.cgi/tech/1062152374/
0438デフォルトの名無しさんNGNG
>>435
そうですか・・・MSはとことんJavaがきらいってことですねorz
実行型JAR落としてもらっても解凍されちゃってなにこれってなってゴミ箱行きになるのが目に見えるようだ。
0439デフォルトの名無しさんNGNG
                          , '",':.:.:.:', `  、
                           , ':.:.:.:/:.:.:.:.:.:'、:.:.:.:.:` 、
                      /:.:.:.:.:, 'r'"~`ヽ:.:ヽ:.:.:.:.:.:.:.:\
                      /:.:.:.:.:/:.:.:'"~ ヽ:.:.:.:.:\:.:.:.:.:.:.:.',
                        |-ー':.:.:.:.:.:ヽ _ノ:.:.:.:.:.:.:.:`ー-:.:.:!
                        !:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:!
                     l--ー― ''''''""""````'''''' ―ー-l
                 __,,,,  -―''''''"" ̄ ̄ ̄ ̄ ̄ ̄ ̄` ''';;;;―- ,,,,__
             ,  ''":.:.:.:.:.:.:.:.:.:._,, -ー=ニニ;, ""i!r=ニニ==''ー-、:.:.:.:.:.:.:.:.:.゛`  、
              (:.:.:.:.:.:.:.:.:.:.:.:.:.ヾ'i;;;| ;=ニ( )ヽノi  ミ{;<( )ニ=、   |;;;il/:.:.:.:.:.:.:.:.:.:_ノ
               ``''' ―ー- ;;_:i`! /` - '", ';;; ⌒ ;;;`,;;`'''  ヾ l,'"`;―ー '''"´
                        l |      /i   ;;ハ `    ノ l.ソ .l
                     .| l.    ./`-=、_,=-ノ、   i   !/ .,'
                     !.' ,   i!    l !   ゙i!  l!  .,' /
                     `-ゝ   i! ;,'"⌒゛ヽ,; .i!   .,' ‐"
                       ',   i! (~i ̄ ̄i~! .|   ./
                ,,-―、   /:..l .l! |! ',t--ーt/ i! / ,'
                  /i  :::',  ,./:.:.:.', ',',  ` -ー' . ノ .,' /,,,__
                 ノ.i ',  :::! '゙:.:.:.:.:.:.ヽヽ   `''''''"   / ,' ',`-ヽ二二ニ'' ー-、
            __,,,.! .ヽゝ ,,,_:!:.:.:.:.:.:.:.:.:.:` \.、    __ノ./  ',:.:.:.:\:.:.:.:.:.: ̄ ̄` 、
0440デフォルトの名無しさんNGNG
来春の就職に備えてJDBC勉強しようと思ってます
まず何からやったらいいでしょうか?
わかりやすいサイト・本等ありましたら紹介してください
0441440NGNG
来春×
今春○

いきなり間違えたorz
0442デフォルトの名無しさんNGNG
配列宣言するとその変数でlengthメソッドが利用できますよね
このlengthメソッドはどのクラスのメソッドですか?
0443デフォルトの名無しさんNGNG
メソッドじゃねえよ
0444442NGNG
すいません

配列宣言するとその変数でlengthフィールドが利用できますよね
このlengthフィールドはどのクラスのフィールドですか?
0445デフォルトの名無しさんNGNG
>>444
配列型のフィールド。
0446デフォルトの名無しさんNGNG
>>445
配列型のフィールド??
それってAPIレファレンスのどこに載ってますか?
0447デフォルトの名無しさんNGNG
>>446
APIリファレンスには載っていない。
配列オブジェクトは特殊なオブジェクトで、配列型の
lengthフィールドに関する仕様等はJava言語仕様で決められている。
ttp://java.sun.com/docs/books/jls/second_edition/html/arrays.doc.html
0448デフォルトの名無しさんNGNG
>>447
なるほど、言語仕様だったんですね
有難うございました
0449デフォルトの名無しさんNGNG
iアプリを制作する際、画面にリストボックスを組み込みたいのですが
指定した位置に組み込みたい場合はどのようにすればいいのでしょうか?
ちなみにアドベンチャーゲームのような選択肢欄として使う予定です。

0450初心者 ◆Java/isQ.c NGNG
>>449
ttp://pc5.2ch.net/test/read.cgi/tech/1102844217/
0451デフォルトの名無しさんNGNG
>>435
Zip解凍ソフトでファイルの関連付けをしているので、
適当なJARファイルを一つ選んでほかの物に関連付けすれば、
直りますよ。
わからないようであれば、あとで詳しく書き込みます。
0452初心者 ◆Java/isQ.c NGNG
>>451
ご返答ありがとうございます。

自分の環境ではjarファイルはjavaw.exeに関連付けされていますが、
Webサーバ上のjarファイルのダウンロードを試みると、
>>413 さんが報告されている通り、zipファイルとして認識されてしまいました。

元々の質問者である >>413 の要求を満たすか否かは不明ですが、
個人的に設定方法に興味がありますので、ご教示いただけますか?
0453デフォルトの名無しさんNGNG
jstlで
<c:out value="${123 + 124}" />
と式言語を記述してるのですが
${123 + 124}が文字列としてそのまま出力されてしまいます。
何故なのでしょうか?
247と表示されるようにするには、どうすればいいのでしょうか?
0454デフォルトの名無しさんNGNG
こんにちわ(はじめまして)。

バイトコードをいじっている(そういうプログラムを書いている)のですが、こんなエラーがでてしまいます。
Exception in thread "main" java.lang.VerifyError: (class: Test, method: getTest signature: (I)Ljava/lang/String;) Illegal type in constant pool

JVMのベリファイアに引っかかっているというのはわかるのですが、このエラーだけだと、どこがおかしいのか突き止めづらいのです。
もし、フリーのJVMベリファイアがありましたら、紹介していただけますか。
よろしくお願いします。
0455デフォルトの名無しさんNGNG
とりあえず Test.getTest のシグネチャをエラーと見比べてはみたのかね?
0456デフォルトの名無しさんNGNG
質問です。文字列を入力して、その文字列が合っていればループを抜けるという
プログラムを作成しようと思っています。
import java.io.*;
public class test {
public static void main (String arg[]) throws IOException
{
InputStreamReader is = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(is);

do{
System.out.println("Your ID.");
String str = br.readLine();
if(str.equals("hoge")){
System.out.println("OK.");
}
else{
System.out.println("NG");

}
}while(str!=("hoge"));
}
}
こうするとwhileのあとに「シンボルを解決できない」エラーがでます。
ループを外すとちゃんと動くのですが、何が原因でしょうか?
0457デフォルトの名無しさんNGNG
変数のスコープ
0458デフォルトの名無しさんNGNG
>>455
見比べてはみました。けれど、問題はないです。
javapやjadでも、正常に動くのですが、
javaやjdbなんかでは、エラーが出ます。

>>456
do{}while() の内側で、String strを定義してますが、
これだと、strの有効範囲は do{}while()の内部のみです。

String str;
do{
…
str = br.readLine();
…
}while(…)
とすればOK。
0459458 = 454NGNG
すいません。458は454の者と同一です。
0460デフォルトの名無しさんNGNG
class Test
{
public static void main(String [] args)
{
System.out.println(Float.POSITIVE_INFINITY);
}
}

これだと INFINITY しか表示されません。
どうやって、floatの最大を表示するのですか?
0461デフォルトの名無しさんNGNG
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Float.html
0462デフォルトの名無しさんNGNG
10進数の文字コードってありますか?
0463デフォルトの名無しさんNGNG
>>452

以前「*.jar」ファイルを解凍しようとして解凍ファイルをダウンロードして
解凍したら全ての「*.jar」ファイルが「*.Zip」になってしまったことがあります。

解凍ソフトの関連で「jar」が関連付けしてあったら関連を外してください.
適当な「*.jar」を選択して右クリック、「プロパテイ」を選択「変更」ボタンをクリック
「ファイルを開くプログラムを選択」で「javaw」を選択。

質問に対する回答が違ったらゴメン。

0464456NGNG
>>457,458
ありがとうございます。さきほどの問題は解決したのですが、
違う文字列を入力してもループを抜けてしまいます。
while(str!=("hoge"))の!=が問題だと思うんですが、わかりません。
どこを変更すればいいでしょう。
0465456NGNG
↑間違いました。
「正しい文字列を入力してもループから抜けない」でした。
お詫びして訂正致します。
0466デフォルトの名無しさんNGNG
http://msugai.fc2web.com/java/equals.html
0467454NGNG
簡単なjavaプログラムを書き、バイナリエディタでいろいろ書き換えてみたところ、
どうやら、Illegal type in constant pool エラーは、
「コンスタントプール内での参照がおかしい」のではなく、
「(コード属性などからの)コンスタントプールへの参照がおかしい」ときに出ることがわかりました。

>>454の例だと、
コンスタントプール内でのgetText()メソッドの記述がおかしいのではなく、
Test.getTest()メソッドが持っているCode属性中のコンスタントプールへのインデックスが違うみたいです。

ちなみに、バイトコードを直にいじることはあまりなさそうなので、ちょっとすれ違いかも…ですね。笑
0468454NGNG
>>456 >>464
string型の文字列の比較は、equals()メソッドを使うんだったと思います。
上の場合だと、str!="hoge"の代わりには、
!str.equals("hoge") もしくは !"hoge".equals(str) と。
(!は、否定の演算子です。)

ちなみに、一般的には、前者のように書くと、strがnullのときには、NullPointerExceptionがでてしまうので、後者で書いた方が安全だと思います。
0469初心者 ◆Java/isQ.c NGNG
>>463
ご回答ありがとうございました。

ご教示いただいた設定は既に当方の環境で設定済みでした。
ご教示いただいた設定は、Windows 上にて、
jarファイルをダブルクリックした際に起動するプログラムの設定ですね。

ご教示いただいた設定にて、念のため再度確認してみましたが、
今回の件の元々の質問者である >>413 さんが期待される結果にはなりませんでした。

既に >>435 でも言及しましたが、>>413 さんが直面されている問題は、
IEがデータのダウンロード時に行うデータ形式チェック機能にて、
zipファイルとjarファイルの圧縮形式が同じであることから、
IEが勝手にzipファイルと判断して保存しようとする、というのが原因かと思います。

今回の場合、jarファイルはダウンロードされた時点で、
既にzipファイルの拡張子を付与されてしまいますので、
ご教示いただいた設定を行っても、残念ながら状況は好転しませんでした。
0470デフォルトの名無しさんNGNG
>>469
お役に立たずスミマセンでした。
解凍ソフトをインストールした後に同じ現象が起きたものでしたので、
全ての「*.jar」が「*.zip」に変わり、
新規にダウンロードした「*.jar」ファイルが「*.zip」になってダウンロードされたもので、
同じ現象かと思いました。

0471470NGNG
ダウンロード先フォルダーが
関連付けされていませんか?
0472デフォルトの名無しさんNGNG
>462
\uFF11、\uFF10、\u9032、\u6570、で順に'1'、'0'、'進'、'数'。

ん? 何か間違えてる?
0473470NGNG
「*.zip」をダブルクリックしたときに起動するソフトに「*.jar」の関連付けが
されていませんか?

皆さんに怒られるといけないので、これを最後にします。

0474デフォルトの名無しさんNGNG
JTableで、スクロールバーのイベントを捕まえる
にはどうすればよいですか?
0475初心者 ◆Java/isQ.c NGNG
>>473
私の環境では、*.zipはWinZipに、*.jarはjavaw.exeに、
それぞれ関連付けされています。
0476デフォルトの名無しさんNGNG
>>475
まだ続いてたんですね。413です。ありがとうございます。
私も自分の環境では.zipはlhaca、.jarはjavawになってるのでダブルクリックすればちゃんと区別されます。
やはり.jarをダウンロード時にかってに.zipにされるのが問題ですね・・・
IE以外のブラウザやダウンロードソフトでは.jarのままでダウンロードできるのでやはりIEに問題があると思われます。
0477デフォルトの名無しさんNGNG
>>474
JScrollPaneに入れて使うことになると思うので、こんな感じかね。

JScrollBar vBar = scroll.getVerticalScrollBar();
BoundedRangeModel range = vBar.getModel();
range.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
...;
}
});
0478デフォルトの名無しさんNGNG
>>477
サンクスです♪
0479デフォルトの名無しさんNGNG
JOptionPaneで入力テキストエリアを2つほしいのですが、何かいい手はありませんでしょうか?
0480デフォルトの名無しさんNGNG
import java.io.*;
class P2
{
public static void main(String args[])throws IOException
{
System.out.println("三角形の高さと底辺を入力してください。");
BufferedReader br=
new BufferedReader(new InputStreamReader(System.in));
String str1=br.readLine();
String str2=br.readLine();
double height=Double.parseDouble(str1);
double width=Double.parseDouble(str2);
    double ans=(height*width)/2;
System.out.println("三角形の面積は"+ans+"です。")
}
}
これで、底辺と高さに少数を含むとエラーになります。
なぜでしょうか?よろしくお願い致します。
0481デフォルトの名無しさんNGNG
エラーにならなかった
0482デフォルトの名無しさんNGNG
>>479
引数に、入力フィールドを2個持ってるパネル渡そう。
0483デフォルトの名無しさんNGNG
Timerクラスのことなのですが、

例えば、
Task task = new Task();
Timer timer = new Timer();
timer.schedule(task,10000L,500L);

とやれば、きちんと動くのですが、
Task task = new Task(String1,String2);  ←※
Timer timer = new Timer();
timer.schedule(task,10000L,5000L);
というようにすると、一回目はきちんと動くのですが、それ以降だと、
※のところをもう一度読んでくれていないので、String1,String2がnullとして
作動します。
  timer.schedule(new Task(String1,String2),10000L,5000L);
というようにしても同じでした。
TimerというクラスはTaskクラス(これはわたしが作ったクラス)のvoid run()メソッド
を読み込むので、こういう現象が起きるみたいなのです。
どうすれば、コンストラクタもちゃんと読んでもらえるようになるのでしょうか。
教えてください。
0484デフォルトの名無しさんNGNG
>483
Taskに、コンストラクタに渡す文字列をセットしておくフィールドを設けて、
Task#run()では自分(this)のフィールドの方を見に行く

ってすれば解決な気がするが。これでうまくいかなかったら、Taskのソース
(run()メソッドだけじゃなく、全体)を晒してもらった方が解決が早いと思われ。
0485デフォルトの名無しさんNGNG
素朴な疑問です。

ImageクラスとGraphicsクラスは何故分かれているのでしょう?
大抵の場合、一つのImageに対し一つのGraphicsを割り当てます。

img.drawImage(略);
であってもなんら問題はないように思えるのですが…。

くだらない質問だとは思いますが、悩み始めたらなんだか気になってしまいまして。
0486>>483NGNG
>>484さんお願いします。
public class Task extends TimerTask {
private String _String1;
private String _String2;
public Task(String string1,String string2) {
_String1=string1;
_String2=string2;
}
public void run() {
this.doIt();
}
public void doIt() {
いろいろ
}
}
とこんな感じです。コンストラクタで初期化しています。
お返事の内容が、初心者のため、よくわからなかったので、
さらしてみました。宜しくお願いします。
0487デフォルトの名無しさんNGNG
>>485
確かにそうですね。
私も無闇なクラス分割はやめて欲しいと思ってる一人なのですが、
何故いちいち分担するのかというと、プログラムマニア特有の
格好つけから来てる面が大きいと思います。
マニアほど一の手順で済む所をわざと十にしたりしますからね。
わざとこねくり回して複雑化する事によって、凄そうに見せたがる
格好つけの部分が、JavaのAPIには多いように思えます。
やたらクラスとインターフェースを量産してますし。

将来の拡張性、柔軟性を維持する為とかの理由がありますけど、どう考えても
標準一つしか使わないようなクラスまで、基本動作定義と拡張実装に分けて
しまいますからね。一で済むのをわざと十にしてるのが本当に多い。
それでいてクラス拡張を完全に放置してるパッケージも多いですからね。
一体何なんだって思います。

とかくマニアは一般的なのをわざと嫌います。GUI登場時も真のパソコンは
コマンドプロンプトのみとか言ってやたら否定してましたし、IDE登場時も
真のプログラマはエディタとコンパイラとデバッガのみとか言ってこれも
否定してましたからね。マニアの言う事を聞いてるとロクな事になりません。

0488デフォルトの名無しさんNGNG
>>487
以上APIをそのまま使うことしか出来ない低能の戯言でした。
0489デフォルトの名無しさんNGNG
>>488
氏ね。オタク。彼女いない歴30年。ブサイク。バーカ。
0490デフォルトの名無しさんNGNG
鏡外し忘れてるよ
0491デフォルトの名無しさんNGNG
>486
Task#doIt()の中で_String1、_String2を見て処理してる?
コンストラクタにnullを渡してでもいない限り、そいつらがnullになるはずはないんだけど……
まだダメだったらdoIt()の中身もきぼん。
0492デフォルトの名無しさんNGNG
ImageのオブジェクトとGraphicsのオブジェクトは
いつも一対一には対応しているとは限らないんですよ。
役割が違うから。

表示用のデータとしてImageをメモリ上に複数持っておいて
それをまとめて一つのGraphicsに描画するなんてのは
ゲームなんかではあたりまえのことですし、
ImageとGraphicsを一対一に対応付けないといけないとしたら
Graphicsごとに表示用のデータを持たないといけなくなるわけですし。
0493デフォルトの名無しさんNGNG
>>487
おっしゃる意味は解らないではありませんが、もっと見聞を広げましょう。
たにんが作った成果物を利用するだけではなく、一から自分で作るという
くろうを経験してみると、とても奥が深い事に気付くでしょう。
消えていった多くの言語は、それらの持っていた問題点を提示して消
えていったのです。自分のポリシーの確立を放棄するのは「マニア」にも劣
ろうと自ら泥沼に入り込むようなものです。がんばってください。
0494デフォルトの名無しさんNGNG
>>485
上手くまとまらないなぁ・・・こんなところか?
・Imageクラスを使わない状況でGraphicsクラスの役割を必要とする状況がある(ボタンの描画など)。
・Graphicsの実装は環境依存で、実行時に適切なクラスに切り替える必要がある。

識者の修正求む。

Graphicsは、GoFデザインパターンのStrategyパターンを使ってる、と理解しているけどね。
線や点の描画ロジックをGraphicsクラスとして抜き出し、それをFrameやButton等のウィジェットや
Imageクラスで使っている、Graphicsの実装を変えればWindowsでもUnixでも動く、と。
0495デフォルトの名無しさんNGNG
javaでは音声圧縮フォーマットをストリーム再生するのは難しいでしょうか?
wavやauは非圧縮フォーマットですし。
一応、ネット上ではjavaでoggを再生しようと言うプロジェクトもあるようですが・・・
ゲームでBGMに効果音を載せるような場合、MIDI(BGM)とWAV(効果音)を合わせるしかないのかなあ・・・
0496デフォルトの名無しさんNGNG
フォームの入力を受け取ってデータベースに保存するプログラムを組んでるのですが
データベースを扱うプログラムはクラスに分けるべきですか?
それとも直接書くべきでしょうか?
0497デフォルトの名無しさんNGNG
ぼやけすぎ
0498デフォルトの名無しさんNGNG
普通のプログラマなら、ImageなしでGraphicsを使うことの方が多いはずですが。

0499デフォルトの名無しさんNGNG
>>485
Graphics は「グラフィックコンテキスト」であって、大雑把に言えば
描画についての機能を提供する。
対して Image は「画像そのもの」を表すもの。
描画するのは Image に対してだけではなく、
フォームやプリンタへの出力にも描画するし、
その描画先が画像によって出力を管理しているとは限らない。

「描画」と「画像」は分けておいた方が何かと都合がいい。
0500デフォルトの名無しさんNGNG
「描画領域」と「画像」は、普通に考えてhas-a関係じゃないかねえ。
0501デフォルトの名無しさんNGNG
501?
0502デフォルトの名無しさんNGNG
>>487はいつの時代の遅れた人間なのだろうか?
こいつは「分割統治」の意味も理解できていないのだろうな。
0503>>483NGNG
>>491
さん!解決しました。
私の勘違いだったのです…。
ごめんなさい!

ですが、心強かったです。プログラムを一人で作るのってだんだん
さみしくなってきますが、相談にのっていただいて元気がでました!
ありがとうございました。またお世話になります。
0504デフォルトの名無しさんNGNG
初々しいねぇ、がんがれ
0505デフォルトの名無しさんNGNG
>>502
487ではないがお前も理解できていないと思う。
487は分割統治なんて出てくる文脈じゃないぞ。
0506デフォルトの名無しさんNGNG
プリンタやフォームも、Imageを継承してれば(GraphicsがImageに統合されていても)なんら問題なくね?
0507デフォルトの名無しさんNGNG
>>495
とりあえず参考にどうぞ
http://www.asahi-net.or.jp/~dp8h-izn/jmf.html
http://java.sun.com/products/java-media/jmf/2.1.1/formats.html
0508デフォルトの名無しさんNGNG
>>506
問題ありまくり。Imageクラスの責務⊆Componentクラスの責務ではない。
Imageクラスで必要だがPriterJobやComponentで不要なメソッドやフィールドがある。
継承は注意して使うべき。「UMLによるJavaオブジェクト設計」を読んでみることをお薦めする。
ttp://www.amazon.co.jp/exec/obidos/ASIN/4894711524
0509デフォルトの名無しさんNGNG
最終的に絵になるわけだから、Imageに集約されるほうが良いと思う
0510デフォルトの名無しさんNGNG
>>509
Imageの責務を、Componentまたはそのスーパクラスに持たせた場合、
Graphicsの実装が環境ごとに異なるという、
マルチプラットフォームゆえの問題を解決するのが面倒になりそう。
Bridgeパターンつう手もあるけど、コーディングが面倒だからなぁ・・・
Graphicsだけ抜き出してStrategyパターンってのが無難だろうねぇ。

ともかく、506や509は、いっぺんAWT相当のライブラリの縮小版を頭の中で設計してみるといいと思う。
そうすればAPIの設計者の意図が読めるんじゃない?
0511デフォルトの名無しさんNGNG
↓こんな感じで描写していた複数のオブジェクトにイベント処理の追加を行い

for(int i=0;i<tablename.size();i++){
tabledata[i].addMouseListener(new Mouse());
}

クリックしたときにオブジェクトの座標が分かるようにしたのですが

public class Mouse implements MouseListener{
public void mouseClicked(MouseEvent e) {
System.out.println("click");
int x = e.getX();
int y = e.getY();
//座標を表示
System.out.println("click "+x+" "+y);
}
略


クリックした座標を一つのクラスに返すにはどうしたらいいのでしょうか?
最初は継承を利用すればいいのかと思ってたのですが、複数の親クラスができて、
そこにそれぞれ値が返る結果になってしまいました。

すいませんが教えてもらえないでしょうか。
0512デフォルトの名無しさんNGNG
>クリックした座標を一つのクラスに返すにはどうしたらいいのでしょうか?
もっと詳しく。意味がわからん。
0513 NGNG
SunのWebからJ2SE1.4の日本語のJavaDocダウンロードできたんだけど、これのhtmlじゃなくてxml版ありますか?
0514デフォルトの名無しさんNGNG
>>513 ぐぐればいくつかdocletが見つかるから自分で生成すること。
ただし日本語コメントが埋め込まれたソースが必要なので、それは
mergedocかなんか使って事前に準備しておくこと。
0515 NGNG
>>514
お答えありがとう。
でもdocletもmergedocも何も知らない自分。
これからググって勉強します。Sunとかは用意してくれてないのか。
0516デフォルトの名無しさんNGNG
>>512
すいません

目標とするプログラムは
「表示している複数のオブジェクト(それぞれ名前のある四角の物体)があって、ユーザがクリックすることでこれらのうち2つ選択する」
といったもで。

実際のプログラムは
クリックしたときに座標にあるオブジェクト名の表示を行ってます。(現時点)

public void mouseClicked(MouseEvent e) {
System.out.println("click");

int x = e.getX();
int y = e.getY();

       //オブジェクト名の表示
System.out.println("click " + ((GraphPanel)e.getComponent()).getVisualGraph().getNode(x,y));
略


ここで、クリックして選択されたオブジェクト名を上記のリスナークラスからのある特定のクラスに持っていくということがしたいのですが・・


いろいろ知識がなくてすいません、これで意味が通じるでしょうか・・・
0517デフォルトの名無しさんNGNG
リスナークラスのクラス変数に,ある特定のクラスのインスタンス持たせてsetするだけだと思うが。
0518デフォルトの名無しさんNGNG
Java5に追加されたAutoBoxing/Unboxingなんですが、
僕は解説を読んだ時点ではなんとなくC++で言うところの演算子のオーバーロード
が記述できるようになったという解釈をしていたのですが、
実際にいじってみたところ、どうもint/Integerやlong/Longといった特定の
クラスと型の間でしか使用できないように思えます。

実際のところ、このAutoBoxing/Unboxingという機能は、これらの特定の
型に決め打ちでコンパイラに実装されているものなのでしょうか?

要は自分で作ったクラスに、「intで解釈されようとしたときにどう解釈されるべきか」
を記述してそれが自動的に呼び出されるような機能を実装できるのか、ということです。

Integerクラスのソースなど見てみましたが、特に変わったインターフェースを
実装しているように思えなかったのです・・・・・

この辺の事情に詳しい方いらっしゃいますか?
0519デフォルトの名無しさんNGNG
ラッパクラス←→基本データ型
程度の物だろう。しかしこれだけでも今までからしたら便利
0520デフォルトの名無しさんNGNG
>>519
まぁ便利になったのは事実だと思うんですが、
実際にコンパイラを作る側の感覚としては、コンパイラが
クラスライブラリの特定のクラスに依存するように作るというのは
それなりに抵抗感があるもんじゃないかと思うのです。

Java作ってる人たちって、あんまりそういう感覚ないんですかねぇ・・・

僕からしてみると、Javaのクラスライブラリ作ってる人は、コンパイラ作ってる
人から特別待遇されているようでなんかずるい感じ。

コンパイラってクラスライブラリからは中立であるべきだと思うのですが。
0521デフォルトの名無しさんNGNG
基本データ型は決まった物しかないじゃない
やまない雨は無いじゃない
カロリーハーフでいいじゃない
0522デフォルトの名無しさんNGNG
>>520
どうしたら満足してくれるんだい
0523デフォルトの名無しさんNGNG
基本データ型とラッパクラスは、クラスライブラリというより言語仕様の一部じゃないの?
0524デフォルトの名無しさんNGNG
>>521
ディク・トレイシー
0525デフォルトの名無しさんNGNG
>620
それを言ったら、Stringクラスなんて最初から特別扱いですが何か。
0526デフォルトの名無しさんNGNG
>>525
ボケるにしてももっと近い番号にしてくれ
0527デフォルトの名無しさんNGNG
>>521
基本データ型は有限ですが、僕が記述するクラスをその基本データ型に自動的に
相互変換する機能が実装できないように思えるところが気になっているのです。
Java付属のクラスライブラリにはできるのに。

>>522
>>518 にあるように
> 要は自分で作ったクラスに、「intで解釈されようとしたときにどう解釈されるべきか」
>を記述してそれが自動的に呼び出されるような機能を実装できるのか、ということです。

が可能なら僕としては満足なのです。

C++は演算子のオーバーロードをすることでこれが可能になっていて、
一般的なクラスライブラリの多くがこの機能を使っていますし、僕自身が書くクラスにも
Java5でいうところのAutoBoxing/Unboxingが実装できるようになっています。
コンパイラから見ればMFCもSTLも僕が書いたクラスも完全に等価です。

>コンパイラってクラスライブラリからは中立であるべきだと思うのですが。
というのはそういうことです。
0528デフォルトの名無しさんNGNG
>>527
じゃあがんばってJava開発チームの一員になってくれ。
0529デフォルトの名無しさんNGNG
1.0のころからExceptionやThreadのような言語仕様に密着したクラスがある。
0530518NGNG
>>525
まぁそうなんですよね。
Stringの連結がStringBuilderに自動的に展開されたりするのもそういうものですね。

Javaはコンパイラ作っている会社がクラスライブラリも提供しているので、
「これもアリ」と認知されているのだと思います。

これはJavaの長所とも言えるでしょうが、ナンダカナァ・・・という感じもしますね。
0531518NGNG
>>530
間違えた。StringBufferっすね。
0532デフォルトの名無しさんNGNG
5ではStringBuilderになってるんじゃなかったか。
0533518NGNG
>>532
どうなんでしょうか・・・僕も調べたわけじゃないですが、
自動的に展開されてしまう文字列の連結がスレッドセーフでないというのは
ちょっとヤバイと思うので、"AAA" + "BBB" はJava5でもStringBufferに
展開されるのではないかと思うのですが。
0534デフォルトの名無しさんNGNG
>自動的に展開されてしまう文字列の連結がスレッドセーフでないというのは
>ちょっとヤバイと思うので

スレッドセーフでなくても単一スレッドからしか
操作しなければ問題ないのにバカじゃねーの?

>コンパイラってクラスライブラリからは中立であるべきだと思うのですが。

どうでもいいがauto boxing/unboxingはStringの扱いと同じく
「言語仕様」ですのでお間違えのないよう。
intをオブジェクトとして扱う文脈ではクラスライブラリの中のIntegerなどとして
扱うように「コンパイラを実装しなければならない」ので。

>Javaはコンパイラ作っている会社がクラスライブラリも提供しているので、
>「これもアリ」と認知されているのだと思います。

何度も言ってるように言語仕様ですから。Sun製だけでなくIBM製、
その他のものでも関係ありませんから。

>僕は解説を読んだ時点ではなんとなくC++で言うところの演算子のオーバーロード
>が記述できるようになったという解釈をしていたのですが、

そもそもこの解釈が大間違いですから。
0535デフォルトの名無しさんNGNG
会社で嫌なことでもあったの?
0536デフォルトの名無しさんNGNG
すいません。
Tomcat + MySQL でプログラミングしているのですが
MySQLには日本語を書き込めるのですが、MySQLから読み出そうとすると
文字化けしてしまいます。
JDBCドライバを呼び出す時は
jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=SJIS&mysqlEncoding=sjis
とし
my.ini には
default-character-set=sjis
としています。
それでもデータベース側から読み込むと文字化けしてしまうのです。
(サーブレットから書き込む事はできます。)
どうか対策法を教えてくださいませ。
0537デフォルトの名無しさんNGNG
以下雑文。

俺は C から Java 覚えた口なので、言語仕様が特定のクラスに依存しているのに
違和感を感じた。これは>>518が感じた疑問と同じものかもしれない。
しかしやってみればその方が便利で自然。ObjectやExceptionって便利だよね?
オブジェクト指向言語の仕様ってのはこれでいいと思う。
C++ みたいに C に後付けしてオブジェクト指向を入れる形で言語設計するよりもいいかな。

演算子オーバロードについては功罪共に語られているけど、
JCPでは罪の方を重く見たということなんでしょう。
この辺はTigerリリース前にさんざん語られたので、割愛。
0538デフォルトの名無しさんNGNG
こういう質問ありなのかどうかわかりませんが

JAVAってお給料いいですか?
0539デフォルトの名無しさんNGNG
>>538
板違い。情シス板か、プログラマ板に行け。以上。
0540デフォルトの名無しさんNGNG
Javaを使う側ですか?
Javaを作る側ですか?
0541デフォルトの名無しさんNGNG
>>540
>>539
0542デフォルトの名無しさんNGNG
サンプルのStylepadってやつはSwingで作られてるんですか
なんかやけに軽く感じますがどうでしょうか
0543デフォルトの名無しさんNGNG
>>542
そんなもん。
軽い Swingアプリは起動も(JBuilderとかNetBeansとかEclipseとかみたいな重量級アプリよりは)早いし。
0544デフォルトの名無しさんNGNG
>>542
Swingですよ。
起動してしまえばそんなに重く感じないんだよね、ガリガリ画面書き換える訳じゃないし。
0545デフォルトの名無しさんNGNG
自動箱詰め/取り出しという意味しかないのに
518が勝手な解釈で過剰な期待をしただけに見える。
0546デフォルトの名無しさんNGNG
SwingのJDialogのタイトルバーに最大化ボタン・最小化ボタン
を表示させるにはどうすればいいのでしょうか?

どなたかご存知の方教えてください。
0547JDialogくんNGNG
そんな事したら僕とJFrameの違いがますますなくなっちゃうよ・・・・
お願い。最大化と最小化は使わないで・・・
0548デフォルトの名無しさんNGNG
>>547
確かに最小化ボタンは必要ないんですが
最大化ボタンだけはどうしても便利機能として付けておきたいんです。
何か方法はないでしょうか・・・(T_T)

逆にJFrameでモーダル化出来る方法があれば、そちらでも構わないのですが・・・。
0549デフォルトの名無しさんNGNG
>>505
嘘臭えな。>>487と同じが>>487と同類の考え方しかできない奴だろ。
「分割し、統治せよ」という鉄則が恰好つけるためにやっていると勘違いしとるとはな。
奴は「一般」の基準もいい加減。
>>487は依存度を下げることの意味もわかってない。
クラスを何のために分割しているかもわからずに
<<487のソースコードはすべての処理を全部一つのクラス、メソッドに
まとめてしまう汚いコードを書いてしまっているんだろうな。
0550デフォルトの名無しさんNGNG
>>518
autoboxingは演算子のオーバーロードとは関係ねえよアフォ
0551デフォルトの名無しさんNGNG
>>520
> >>519
> まぁ便利になったのは事実だと思うんですが、
> 実際にコンパイラを作る側の感覚としては、コンパイラが
> クラスライブラリの特定のクラスに依存するように作るというのは
> それなりに抵抗感があるもんじゃないかと思うのです。
>
> Java作ってる人たちって、あんまりそういう感覚ないんですかねぇ・・・
>
> 僕からしてみると、Javaのクラスライブラリ作ってる人は、コンパイラ作ってる
> 人から特別待遇されているようでなんかずるい感じ。

文句があるならJCPに何か提案するか自分でJakartaのようなAPIを作れ

> コンパイラってクラスライブラリからは中立であるべきだと思うのですが。
お前にとっての「中立」の定義とはなんぞや。はっきりしろや。

中立の定義がコンパイラに関係なくクラスライブラリを作れるということなら
とっくに「中立」状態にあるわけだしお前が不満に思うことは何も無いわけだが。
Jakarta Projectのコントリビュータになるなり、
自分でAPIを作って公開してしまえばいい。
それをずるいなんぞ餓鬼みたにぶーぶー文句たれてる奴は
何もしていないのに批判ばかりしているバカ学生と同類。

0552デフォルトの名無しさんNGNG
>>527
> >>521
> 基本データ型は有限ですが、僕が記述するクラスをその基本データ型に自動的に
> 相互変換する機能が実装できないように思えるところが気になっているのです。
> Java付属のクラスライブラリにはできるのに。

そもそもプリミティブ型の自作に拘ることがアフォだ。
そんなにプリミティブ型自作したい変換したいならC#でもやっとけ。
だがそういう機能は便利だが副作用も大きくコードが煩雑になる。
実際に使って経験を積んでみればわかることだが、
お前の考え方には落とし穴があり、
綺麗なコードを書きやすい言語と汚いコードを書きやすい言語との
違いが現れてくることがわかってくるだろう。

> >>522
> >>518 にあるように
> > 要は自分で作ったクラスに、「intで解釈されようとしたときにどう解釈されるべきか」
> >を記述してそれが自動的に呼び出されるような機能を実装できるのか、ということです。

そういうことはクラス同士だけにしておけ。
オブジェクト指向の利点をよくわかっているならintなどのプリミティブ型の問題点に
気づくはずだ。

> C++は演算子のオーバーロードをすることでこれが可能になっていて、
演算子オーバーロードの問題点は検索して調べてみろ。


言っておくと、大概のお前の不満はC#を使えば解消されることばかりだ。
文句があるならJavaを使わずにC#を使え。
0553デフォルトの名無しさんNGNG
ファイルダウンロードについて質問があります。
JSPにてファイル一覧が表示され、そのファイル名のリンクをクリックすると、
onclickのwindow.openにてダウンロードボタンを含む子画面を表示させてい
ます。その子画面内でダウンロードを行った場合、ファイル名が適切に設定
されず、『FileDownloadc23bebaa』のようなファイル名でファイルが作成
されてしまいます。(ファイル内容はあっています。)

子画面にてダウンロード機能を実装する場合に、ファイル名が設定できない
現象というのはあるのでしょうか?
0554デフォルトの名無しさんNGNG
>>548
WindowStateListenerとWindowクラスのtoFront()、toBack()を使えばできるんじゃない?
めんどくさそうだけど
0555デフォルトの名無しさんNGNG
質問でーす。

アプレットをつくり(JApplet)その中にいろいろとコンポーネントをはめ込みました。
それらのコンポーネントはJPanelを継承して作った自作のコンポーネントです。

基底のアプレットはカードレイアウトです。カードレイアウト二枚目の自作パネルに
自作コンポーネントとJButtonをはめ込みました。

ここでJButtonが押されたら、基底アプレットのconnectメソッドを呼びだしたいの
ですが、うまくいきません。コンパイルの時点で基底アプレット.connect()が見つ
かりませんとなります。

それぞれの自作コンポーネントには、作成時にそのつど引数で基底アプレットを
渡しているのですが、そこから基底アプレット.connect()ではメソッドを呼び出せ
ず間違いのようです。

こういった場合、どのようにすればいいのでしょうか?
オタスケーm(_ _)m
0556デフォルトの名無しさんNGNG
>>555
インスタンス変数の宣言がこうなっているのなら
private JApplet applet;
型を、connectメソッドを持つ自作アプレットの型に変更する。例えばこう。
private MyBaseApplet applet;
0557555NGNG
>>556
すみません、おっしゃっていることが理解できません…(泣

それっぽいコードを書きます(ちょっとケズってます)

public class TestApplet extends JApplet {
    private CardLayout cl;
    private MyPanel myPanel_001;
    private MyPanel myPanel_002;
    public void init() {
         cl = new CardLayout();
         setLayout(cl);

         myPanel_001 = new MyPanel(this, getContentPane(), cl);
         getContentPane().add(myPanel_001, "001");

         myPanel_002 = new MyPanel(this, getContentPane(), cl);
         getContentPane().add(myPanel_002, "002");

         cl.show(getContentPane(), "002");
    }
    public void connect() {
         System.out.println("インしたお!");
    }
}

(つづく)

0558555NGNG
(つづき)

class MyPanel extends JPanel {
    private JButton connect;
    MyPanel(final JApplet applet, final Container container, final CardLayout cl) {
         setLayout(new BorderLayout());
         connect = new JButton("インする");
             connect.addActionListener(new ActionListener() {
                 public void actionPerformed(ActionEvent ae){
                 cl.show(container, "001");
                 applet.connect();   //ここがうまくいきません!
             }
         });
         add(connect, BorderLayout.SOUTH);
    }
}

ご助力をば…m(_ _)m
0559デフォルトの名無しさんNGNG
MyPanel.javaの3行目
誤: MyPanel(final JApplet applet, final Container container, final CardLayout cl) {
正: MyPanel(final TestApplet applet, final Container container, final CardLayout cl) {

そもそもここのactionPerformed()の処理はTestAppletに書くべき内容じゃないか?
MyPanelはTestAppletに処理の開始を要求するだけにすれば、
レイアウトやコンテナを受け取る必要は無くなる。
0560デフォルトの名無しさんNGNG
相変わらず低レベルなクズが多いな、このスレは。
0561555NGNG
あああああああ!
あ・り・が・と・う・ご・ざ・い・ま・し・た!

でけた!ヒャッホウ(・∀・)

アドバイスいただいたとおり、connectメソッド内でカードレイアウトの
処理もまとめるようにしました。

ホントにありがとうございました!
0562555NGNG
(@盆@) >>560
0563デフォルトの名無しさんNGNG
>>560
まあ、スレタイにもある通り「初心者大歓迎」ですからね。
Javaの初心者に限らず、いろんな初心者が来てますね。
0564デフォルトの名無しさんNGNG
>>560
と、低レベルなクズの代表者が書き込んでるわけですな
0565デフォルトの名無しさんNGNG
なんで560が「質問者がクズ」という趣旨だと思うんだ?
なんで回答者がクズ呼ばわりされているとは思わないんだ?
0566デフォルトの名無しさんNGNG
荒らしがやってきて壊れました。
誰かここのチャットログを流してください。

http://www.aizunpo.or.jp/cgi-local/schat.cgi
0567デフォルトの名無しさんNGNG
>>565
どこに「質問者がクズ」という趣旨だと思っている書き込みが?
0568デフォルトの名無しさんNGNG
文盲が来ました。
誰か567を流してください。
0569デフォルトの名無しさんNGNG
ここはウジ虫の溜まり場かよ(´∇`)ケラケラ
0570デフォルトの名無しさんNGNG
>>568のダメっぷりに愕然とした。
0571デフォルトの名無しさんNGNG
なんか必死な香具師がいるな (・∀・) ニヤニヤ
0572デフォルトの名無しさんNGNG
>>570=567
そういうところがバカにされる原因なんだよ
自分のことじゃないと思ったら無視しとけ ヴォケ
0573デフォルトの名無しさんNGNG
FAQを見てもそれらしきものがなかったのですが既出でしたら申し訳ありません。

PCを新しくしたところ、IEでJavaアプレットが実行できなくなってしまいました。
インターネットオプションで確認したところ、IEにはJava2 v1.4.2_05が入っているようなのですが・・・
原因としてはどのような事が考えられますでしょうか。
0574デフォルトの名無しさんNGNG
Java2 v1.4.2_05が入っているから
0575デフォルトの名無しさんNGNG
そこのアドレス教えてみ
0576デフォルトの名無しさんNGNG
>>574
よお、クズの典型
0577デフォルトの名無しさんNGNG
>>573
Microsoftのjavaでないと動かないのがある
0578デフォルトの名無しさんNGNG
>>574
どういうことでしょうか?

>>575
他のPCでは見られるのでその新しいPCの設定の問題だと思われます。
0579デフォルトの名無しさんNGNG
はやく06にしないと危ない
0580デフォルトの名無しさんNGNG
>>577
今まではSunのVMで正常に動作していました。
新しいPCでは動作しないのです・・・
0581デフォルトの名無しさんNGNG
>>580
答えがほしいはずなのに何故自分の環境詳しく書かないの?
情報があればあるほど答えが返ってくる確率が上がると言う
当たり前のことが何故わからないの?
0582デフォルトの名無しさんNGNG
>>581
スレタイに初心者って書いてあるししょうがないんじゃない。
でもここはム板だから無視したい気分。
0583デフォルトの名無しさんNGNG
じゃあどこだったら相手にしてくれるのさ?
すぐ作りますから
0584デフォルトの名無しさんNGNG
>>581
申し訳ありません・・・
どこをお伝えすればいいかわからないもので。
実はPCを新しくしたのは知人なので自分のものではないので詳しい使用はわかりません。
ただ、VAIOのノートであったのは確かです。
また、実行を試したアプレットの開発バージョンはv1.4.2_01でした。
他に何を書けばよいでしょうかね?
0585デフォルトの名無しさんNGNG
釣りか?自分の環境の調べ方もわからないでプログラムやってんの?
0586デフォルトの名無しさんNGNG
String str = String.(何らかのメソッド)

っていう式があると思うのですが、strにはメソッドの戻り値が入りますよね。
それで、これはString型のクラスのインスタンスを作成していることになると思うのですが、
newを使っていなくてもコンストラクタは呼ばれているのでしょうか?
0587デフォルトの名無しさんNGNG
わかりにくいかもしれませんが、
(何らかのメソッド)の前にはピリオドが入ってます(汗
0588デフォルトの名無しさんNGNG
>>585
えーと・・・
開発したのは私で、友人の新しいPCで実行できないのです。
あまり余計な情報を事を書くと混乱するかと思って最初には書きませんでした。
0589デフォルトの名無しさんNGNG
「何らかのメソッド」の中でnewを呼んでインスタンスを作って、それをメソッドの戻り値として
返してる。
0590573NGNG
Javaアプレットが実行できない環境では、今まではJREを最新にすれば大体実行できるようになったのですが・・・
アプレットが実行できない原因はJVM以外にある場合もあるのでしょうか。
0591デフォルトの名無しさんNGNG
さらに言えばStringのstaticメソッドの中でね
0592デフォルトの名無しさんNGNG
NullPointerException nullpo() {
    return new NullPointerException();
}
0593デフォルトの名無しさんNGNG
>開発したのは私
こんなやつでも開発できるのか。
0594デフォルトの名無しさんNGNG
>>589
Stringクラスのメソッドの中自体でStringクラスのインスタンスを作成して、
その値を返しているということでいいのでしょうか?
うーん。むずかしいですね。
0595デフォルトの名無しさんNGNG
>>590
アプレットでどんなことをやってるのかも書いとけば?
俺はアプレット使ったこと無いからわからないけど
0596デフォルトの名無しさんNGNG
>>594
何が難しいのかわからんのだが・・・
0597デフォルトの名無しさんNGNG
釣れるなあ。すでに573の目の前に問題のノートがない以上、
なにいったって無駄なのはあきらかなのだが。
0598デフォルトの名無しさんNGNG
トップページにアプレット置いてるサイトほど鬱陶しいものは無いな
0599デフォルトの名無しさんNGNG
うざ度
BGM>アプレット>Flash>JavaScript>クッキー>糞でかい画像
0600デフォルトの名無しさんNGNG
>>597
Javaなら知らない環境で動かされるのも不思議ではないだろう
0601495NGNG
>>507
ありがとうございます。
機種依存するか、使い物にならないぐらい遅いか、という感じなんですね。
色々考えてみます・・・
0602デフォルトの名無しさんNGNG
417で質問した者です。
みなさんのおかげで今回のシステムで大まかに必要な
機能だけつけた雛形のプログラム2つの内が1つ出来ました。予定より遅くなってしまいましたが、
初めてプログラムが動いた時のように嬉しいです。
これでなんとか周りのプログラマーについていけそうな気がしてきました。ありがとうございました。
0603573NGNG
>>593
趣味で作った程度なので開発というと大げさかも知れませんね。

>>595
内容は単なるパズルみたいなものなのですが・・・
私が作った物以外の他のJavaアプレットの動作もできないみたいなので問題はPCかIEにあるような気がします。
IEでアプレットを実行する場合に気を付けなければいけない設定とかがあるのでしょうかね?

>>597
釣ってはいないですよ。
確かに今この場で頂いたご意見をすぐに試すことはできないのですが、
後日それを元に再設定したいと思っています。
0604デフォルトの名無しさんNGNG
なんだろう。
一昨年の年末、よく似たやりとりがあったような気がする……
デジャ・ブか。
0605デフォルトの名無しさんNGNG
ユーザーエージェント偽装してたらアプレット動かないよ
0606デフォルトの名無しさんNGNG
コンパイル時にエラーが出て困ってます・・・
エラーはこんな感じです。

.\Finder.java:24: 変数 agree は初期化されていない可能性があります。
agree[num] = temp.containingClass();

ソースなんですが、agreeの宣言のところは
ClassDoc[] agree;
これだけです。
上のエラーのところまでにagreeはこの2箇所しか出てきません。
agreeにはClassDoc型のものを複数(数は不明)入れておきたいのですが、この宣言じゃだめでしょうか?

ClassDoc[] agree = new ClassDoc[];

とやってもうまくいきません。
どうやったらうまくいくのでしょうか?
よろしくお願いします。
0607デフォルトの名無しさんNGNG
agreeの要素数が不明らしいのでなんとも言えんが、とりあえず


private final int YOUSO = 100;

(中略)

ClassDoc[] agree = new ClassDoc[YOUSO];


とかでやってみてはいかが。
0608デフォルトの名無しさんNGNG
>>606
>new ClassDoc[]
コンパイルエラーだと思うが。

宣言時に初期化している場合はそのエラーは出ないはず。
中途半端に省略せずに、ちゃんと貼り付けてみな。

「初期化されていない可能性があります」は、宣言だけして
一度も代入されてない変数を参照した時のみ出るはず。

ローカル変数意外だと、finalなインスタンス変数の問題かも。
0609デフォルトの名無しさんNGNG
>>607
これは適当に大きな数を入れてるてことでしょうか?

例えば配列で int a[]; と宣言しておけば、

for(int i=0 , i<b.size ;i++)
a[i]=1;

なんて感じで、b.sizeが可変でも対応できますよね?
要素数が不明というか可変て感じです。
こういう感じでつかえないのでしょうか?
0610デフォルトの名無しさんNGNG
>>609
そういう時は
int[] a = new int[b.size];
とする。
0611デフォルトの名無しさんNGNG
アホだ・・・b.lengthだよ寝ぼけてるなオレ(;´д`)
0612デフォルトの名無しさんNGNG
>>611
寝ぼけてるんじゃなくて、元々頭が悪いんだよ。早く気づいてよかったね。
0613デフォルトの名無しさんNGNG
初歩的な質問ですいません、初心者なもので、
コンパイルソフトはどこで手に入れればいいですか?
0614デフォルトの名無しさんNGNG
sunのホムペ
0615デフォルトの名無しさんNGNG
Java覚えたら、まず初めに何を作ればいいんですか?
0616デフォルトの名無しさんNGNG
HelloWorld
0617デフォルトの名無しさんNGNG
class Hello
  public static void main(String args[]){
   System.out.println("HelloWorld");
 }
}

0618デフォルトの名無しさんNGNG
失礼します
javaのチェック例外と非チェック例外のそれぞれの一覧リストみたいなのってありますか?
0619デフォルトの名無しさんNGNG
>>618

java.lang.Errorは非チェック

java.lang.Exceptionは基本的にチェック

 ただし子クラスの
  java.lang.RuntimeExceptionおよびその子クラスは非チェック。

以上。
0620デフォルトの名無しさんNGNG
>>619
ありがとうございます
lang.errorとlang.ExceptionってAPI仕様の例外の概要とエラーの概要にそれぞれ該当しますよね
前からこの二つの違いについても疑問に思っていたんですが
これはチェック例外と非チェック例外の違いという事でいいんでしょうか?
0621デフォルトの名無しさんNGNG
>>620
errorはエラー。アプリケーション中でハンドリングしてはいけない・できない。
Exceptionは例外。Javaアプリケーション中でcatchして例外発生時の処理を実装可能。
0622デフォルトの名無しさんNGNG
>>620
java.lang.Errorとjava.lang.ExceptionのAPI仕様を読めばわかると思います。

ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Error.html
「Error は Throwable のサブクラスで、通常のアプリケーションであれば
キャッチすべきではない重大な問題を示します。そうしたエラーの大部分は異常な状態です。」
「このようなエラーは、絶対に起きてはならない異常な状態であるためです。」

ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Exception.html
「Exception クラスとそのサブクラスは、通常のアプリケーションでキャッチされる
可能性のある状態を示す Throwable の形式の 1 つです。」
0623デフォルトの名無しさんNGNG
>>621
揚げ足取りの様でスマンが、
java.lang.Errorに対する例外処理は「できない」のではなく「すべきでない」だけだぞ。
発生したとしても、状況を考えればできることは限られるが。
0624デフォルトの名無しさんNGNG
>>621-623
有難うございました
0625デフォルトの名無しさんNGNG
またまた失礼します
例外処理には例外が発生したらその場で処理する方法とスロー宣言を用いて
冷害が発生したら呼び出し側メソッドで処理してもらう二つの方法がありますよね
後者の方のメリットって何ですか?
自分の中ではtry文中のコードが長いと時にコードが見やすくなるかな
と思っているんですが他にもありますか?
0626デフォルトの名無しさんNGNG
>>625
前者だと例外が発生したのか、正常終了したのか、呼び出しもとで判断できない。
0627デフォルトの名無しさんNGNG
>>625
自分のルーチンで処理しきれない例外を呼び出し元に投げて処理してもらう
0628625NGNG
>>626-627
すいません、もうちょっと噛み砕いて説明してくれませんか?

>>626
rhrows使わなくても例外が発生したら例外処理されるので判断は出来ると思うのですが・・・
最後の元に投げて処理してもらうというのがイマイチ

>>627
>自分のルーチンで処理しきれない例外
例えばどんな例外ですか?
0629626NGNG
>>628
呼び出しもとでは、その先で事故ったのか正常にコトが進んだのかがわからないだろ?

例えば、Servletからデータベース検索処理を呼び出したとする。
検索が正常終了したら検索結果の表示、
データベース障害が発生したら「ただいまシステム障害のため、ご利用になれません」
みたいなエラー画面の表示をしたいとする。
ところが、データベースアクセス周りで発生した例外をcatchしてしまうと呼び出し元のServletでは
障害が発生したのか、検索が正常に終了したのか判断できないだろ?
検索結果一覧画面を表示していいのかシステムエラー画面を表示していいのかわからないだろ?
呼び出し元のServletまでthrowしてServletでcatchすれば、
Servletでは「この型の例外が発生したらこのエラー画面でこのメッセージを表示」
「例外が発生しなければこの画面を表示」のような処理分岐ができる。
0630626NGNG
>>629
なんとなくですがイメージは掴めました
でもServlet、データベースについては詳しく解らないのでダメですね
もうちょっと勉強してこういう状況に当たった時にあなたのアドバイスを思い出し
throwについて考えてみたいと思います
有難うございました
0631デフォルトの名無しさんNGNG
>>630
この問題はお前には対処できないから、先輩のところへ上げろ(throws)
先輩でも無理だと判断したら、先輩はそのまた上司に上げるから。
上司は大きな問題をそれなりに対処してくれるはずだ。

自分で対処すべき問題は、お前がちゃんと処理しろよ(catchして処理)
全部先輩に上げると、先輩は「そんな細かいことまで俺が知るか!」って困るからな。
0632デフォルトの名無しさんNGNG
>>631
sennsunaine
0633デフォルトの名無しさんNGNG
>>632
オマエガナー
0634デフォルトの名無しさんNGNG
servletからJSPにforwardさせる場合、
表示させるフレームの指定をすることは可能でしょうか?

左右二分割の画面の左にあるメニューより、ログアウトを選択すると
ログイン画面(フレーム分割なし)に遷移させたいです。

現状:
ServletConfig scfg = hs.getServletConfig();
ServletContext sc = scfg.getServletContext();
RequestDispatcher rd = sc.getRequestDispatcher( address );
rd.forward( req , res );

addressにログイン画面にforwardさせるservletのアドレスを記述すると、
二分割画面のまま遷移してしまいます。
0635デフォルトの名無しさんNGNG
>>634
JSP,Servlet以前の話じゃないか。
<a href="login.jsp" target="top">ログアウト</a>
じゃダメなのか?

0636634NGNG
>>635さん
ご返答ありがとうございます。
logoutServlet.javaにて、不要なセッションオブジェクトなどを破棄させてから
ログイン画面に遷移させたいと思っていました。

ですが、ログイン画面で不要なセッションオブジェクトを保持している
場合に削除すれば良いですね・・・。ありがとうございます。
0637デフォルトの名無しさんNGNG
Stringクラスって何故にnew演算子を使わなくても大丈夫なの?
API見てもクラスメソッドではないのにね
これはjavaの仕様で決まってることですか?
0638デフォルトの名無しさんNGNG
>>637
うん
0639デフォルトの名無しさんNGNG
>>637
またその質問か・・・。

以下を100回読め。
http://www.y-adagio.com/public/standards/tr_javalang2/lexical.doc.html#101083

つまり言語仕様。
0640デフォルトの名無しさんNGNG
サーブレットで
HttpServlet.getServletContext().getRequestDispatcher
と
HttpServletRequest.getServletContext().getRequestDispatcher
はどうちがうの?
0641デフォルトの名無しさんNGNG
>>640
相対パスを指定できるか、コンテキスト相対パスのみを指定できるかの違い
0642デフォルトの名無しさんNGNG
>>641
Thinks
0643デフォルトの名無しさんNGNG
指令行の引数に正の整数 n を指定すると, 2^0, 2^(-1), 2^(-2), ..., 2^(-n) を順に各行に出力していくプログラムを作ってください。
n が大きな値になっても,小数点以下100桁までほ正確に結果を出力するようにしてください。

すいませんが、教えてもらえませんでしょうか?
0644デフォルトの名無しさんNGNG
つい先ほどからJavaを始めた初心者です。
helloworldをコンパイルして、DOS上で
>java helloworld
を実行して上手く実行できたのですが、
エクスプローラでjavaのフォルダを見てみるとhelloworld.exeがありません。
javaはそういったものなのでしょうか?
実行ファイルは無いのでしょうか?
0645デフォルトの名無しさんNGNG
実行ファイルはjava.exeだ。
0646デフォルトの名無しさんNGNG
>>644
Excelのマクロのようなものと思えばいい。
EXCEL.EXEを実行してHelloWorld.xlsを開くと、マクロが実行される。
それと同じように、java.exeを実行してHelloWorld.classを開くと、Javaアプリケーションが実行される。
0647デフォルトの名無しさんNGNG
>>646 天然?
0648644NGNG
>>645-647
�dです。
さっきからちょこちょこいじってるんですが、
JAVAってCよりも簡単な感じですね。
ありがとうございました。
0649デフォルトの名無しさんNGNG
また一人新たなJava厨誕生のオカン
0650デフォルトの名無しさんNGNG
PHP厨の一人もここで引き取ってもらえないかな(w
0651デフォルトの名無しさんNGNG
Javaには変態さが足りない
0652デフォルトの名無しさんNGNG
J2SE 1.4 と 5.0 の共存は可能なのでしょうか?
可能であれば何か注意することなどあれば教えてください。
0653デフォルトの名無しさんNGNG
>>652
可能かどうかは、どのように共存させたいのかによる。
0654デフォルトの名無しさんNGNG
ある数(3.55など小数点以下もある数)の整数部分だけを取り出すメソッド
ってないでしょうか?Mathクラスなど検索したのですが見つからない(;´ρ`)
0655デフォルトの名無しさんNGNG
(int)3.55
0656デフォルトの名無しさんNGNG
>>654
>Mathクラスなど検索したのですが見つからない
あやまれ!floorにあやまれ!(AA略
0657654NGNG
〈 ドモッ、スミマセン>floor 〈 スミマセンスミマセン...。 〈 コノトオリデス!
  ∨ ̄ ̄ ̄ ̄ ̄ ̄  ∨ ̄ ̄ ̄ ̄ ̄ ̄  ∨ ̄ ̄ ̄ ̄ ̄
 (´Д`;)ヾ       (;´Д`)             ヾ
   ∨)        (  八)         (´Д`;)、
   ((          〉 〉           ノノZ乙
0658デフォルトの名無しさんNGNG
教えてください。

jSpinner.((DateEditor)getEditor()).getTextField().setDocument(new SampleTextDocument());

こんな感じで、setDocumentに独自のDocumentクラスを設定しているのですが
insertStringメソッドが呼ばれずに、困っています。
原因とかわかる方、いらっしゃらないでしょうか。
0659デフォルトの名無しさんNGNG
Javaで
「現在読み入力中である。」というのは判断可能ですか?
※IME起動し、ヨミガナが未確定の状態か否か

可能でしたら実装方法教えてください。

よろしくおながいします。
0660デフォルトの名無しさんNGNG
>>659
http://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/swing/text/JTextComponent.html#addInputMethodListener(java.awt.event.InputMethodListener)
で、未確定の文字列が取得できるから、これで判別できない?
取得するコードはすげー昔の過去スレに書いた記憶があるけど、
もう探せないかも。
0661デフォルトの名無しさんNGNG
をしえてください。

String配列を格納したListがあります。
そのList中のString[0]を取り出すにはどうすればよいのですか?????
0662デフォルトの名無しさんNGNG
>>661です。
Listの1番目のString[0]です。かさねてよろ。
0663デフォルトの名無しさんNGNG
>>661-662
((String[])list.get(0))[0]
0664デフォルトの名無しさんNGNG
>>663
はやいですねぇ!
ありがとうございました。感謝!
0665659NGNG
>>660

ありがとーございます。

InputMethodListenerのinputMethodTextChangedで
getText()を呼びだし、
nullか否かの判断で読み入力中か否か(キャンセルor確定済み)
判断つきそうです。

助かりますた♪
0666デフォルトの名無しさんNGNG
Linuxにeclipse入れたいけどイマイチ踏ん切りがつかん。
あんまりLinuxの使い方わからないしなぁ。
でも勉強のために入れようかなぁ。。。
0667デフォルトの名無しさんNGNG
LinuxにEclipseを入れる勉強したいなら入れれば?
0668デフォルトの名無しさんNGNG
EclipseならWindowsでも動くから、無理してLinux使わなくてもEclipse使ってみたいだけなら
取敢えずはWindows版を入れてみたら。
0669デフォルトの名無しさんNGNG
教えていただきたいことがありまふ。

Timer(本当はなんでもいいのですが)を使って、
一般的なタイマーを作りたいのです。
それで、途中でストップさせるようなことはできるでしょうか。
そのストップの合図というのは、いつくるのか、わからない、という
かんじなのですが。
(他のクラスのメンバ変数を見させて命令するようなかんじ)
しかも、ひとつのクラスでたくさんのタイマーをつくるみたいな。

わかりにくいでしょうか。
おねがいします。
0670デフォルトの名無しさんNGNG
TimerのAPIにかいてあること

void cancel()というメソッド
現在スケジュールされているタスクを破棄して、このタイマーを終了します。

複数のTimerは
Timer t1 = new Timer();
Timer t2 = new Timer();
これで2つのTimerができます

これでいいですか?
0671デフォルトの名無しさんNGNG
わるいTimer勘違いしてた
javax.swing.Timerの方だよね?

こっちだったら
public void stop()
Timer を停止し、リスナーへのアクションイベントの送信を停止します。
というメソッドがある

複数生成は
Timer t1 = new Timer(1000,this);
Timer t2 = new Timer(1000,this);
第二引数は適当に変えてもいいよ
とすればできます
0672デフォルトの名無しさんNGNG
>>669?
ttp://doryuu.k-server.org/Foo.java.html

もうやっつけも良いところだけど、タイマーのサンプルに
一応、例外対策はしてると思うけど…変なエラー出たら(*_ _)人ゴメンナサイ
タイマーとして使用してるのは java.utilのTimerとTimerTaskね

見当違いなことやったら、他の誰かに聞いて下さい。
Swingのタイマーも面白そうだけどねぇ
0673デフォルトの名無しさんNGNG
>>631
素晴らしい。
よく解かった!!
0674デフォルトの名無しさんNGNG
javaのドキュメントには、そのクラスなどの使い方は載ってますか?見てみたんですがよくわかりませんでした。
どのようにみればいいのですか?
0675デフォルトの名無しさんNGNG
>674
詳しく載ってるのもある(大概、メンバ一覧表の前にだーっと説明がある)が、
基本的に「リファレンスマニュアル」というものなので、使い方まで書いてあるのは少ない。
それはそれとして、Webなり本なりの解説を見た方が、「使い方」を覚えるには良いかと。
0676デフォルトの名無しさんNGNG
>>674
APIリファレンス
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html

ちなみに君の言うドキュメントって何?
0677デフォルトの名無しさんNGNG
>>99
どこで?
0678デフォルトの名無しさんNGNG
>>677
おまえののろさ
0679デフォルトの名無しさんNGNG
かなりの初心者な質問なんですが・・
サーブレットの実行についてなのですが
環境
Windows XP
Tomcat 5.5

Tomcatをインストールし
http://localhost:8080
にてindex.jspが表示されることは確認できました。

次にTomcat Webアプリケーションマネージャ にて
コンテキストパス (省略可): /My
XML設定ファイルのURL:
WARファイル又はディレクトリのURL: C:/My
と設定し

そして"C:\Tomcat 5.5\webapps\My\Sample1.java"のファイルを
http://localhost:8080/My/Sample1
にアクセスしても404エラーでページが表示されません。


何か設定が足りていないのでしょうか?
どなたか教えてください。よろしくお願いします。
0680デフォルトの名無しさんNGNG
がっくし
0681デフォルトの名無しさんNGNG
Calendar myCalen=new myCalen();

カレンダーオブジェクト作ろうとしたら具象で無いみたいなエラーが出ました
抽象クラスもオブジェクト作れるはずなのにwhy?
0682デフォルトの名無しさんNGNG
そいつは初耳だな
0683デフォルトの名無しさんNGNG
>>681
がっくし
0684デフォルトの名無しさんNGNG
Calendar myCalen=new Calendar();

でねーの?
0685デフォルトの名無しさんNGNG
>>678
がっくし
0686デフォルトの名無しさんNGNG
>>681
かまって下さい

>>684
間違えた・・・でもダメです
Calendar myclnd=new Calendar();

エラー
java.lang.Error: コンパイル問題が未解決です。
Calender は解決できないか、型ではありません。
型 Calendar は具象クラスでないため、そのインスタンスを生成できません。

at testUtil.main(testUtil.java:33)
Exception in thread "main"

getInstanceメソッド使わないとダメなのでしょうか?
0687681NGNG
タイム、未だ突っ込まないで下さい
少々お待ち
0688デフォルトの名無しさんNGNG
エラー
java.lang.Error: コンパイル問題が未解決です。
型 Calendar は具象クラスでないため、そのインスタンスを生成できません。

at testUtil.main(testUtil.java:33)
Exception in thread "main"
0689デフォルトの名無しさんNGNG
>>679
デプロイ場所が違うし、デプロイに必要なものも足りないし、手順も足りない。
メールや掲示板じゃ伝えきれない量なので、本でも買って勉強すべし。
0690デフォルトの名無しさんNGNG
>>688
> getInstanceメソッド使わないとダメなのでしょうか?
普通はそうする。

自分でCalendarのサブクラスを作っても良いが。
0691デフォルトの名無しさんNGNG

protected Calendar();

コンストラクタは
protected ダヨ

0692681NGNG
>>690-691
有難うございました
コンストラクタには気づきませんでした、納得です
0693デフォルトの名無しさんNGNG
入れ子クラスって何ですか?
例:Component.FlipBufferStrategyはクラス java.awt.Componentの入れ子クラス
FlipBufferStrategyクラスはComponentクラスを普通に継承してるんですか?
また、Componentクラスを継承しているAppletクラスは
FlipBufferStrategyクラスも継承していると考えていいんでしょうか?
0694デフォルトの名無しさんNGNG
>>693
> 入れ子クラスって何ですか?
クラス内で宣言されたクラス。継承とは関係ない。

class Outer { class Inner {} }
Inner は入れ子クラス。メンバークラスとも呼ばれる。
少し意味が違うがインナークラスとも呼ばれる。
0695693NGNG
>>694
レスどうもです

>クラス内で宣言されたクラス
なるほどそんなのがあるんですね。クラスの中はフィールドとメソッドだけだと思ってました
話し戻りますが、継承とは関係なくAppletクラスを継承したクラスから
FlipBufferStrategyクラスのメソッドは使えるんですか?
0696デフォルトの名無しさんNGNG
> Appletクラスを継承したクラスからFlipBufferStrategyクラスのメソッドは使えるんですか?
使える。

ただし、FlipBufferStrategy を使うアプレットは 1.4以降で追加されたクラスを使ってるので
InternetExplorer標準だった 1.1 レベルの MSJVM や 1.3 の古い Sun のJavaプラグインでは動作しない。
0697初心者ですみませんNGNG
Windowsベースのアプリケーションをつくりたいのですが、
やはり高価なJBuilder等を使用するしか方法は無いのでしょうか?

今、Eclipseを使って勉強をしているのですが、どうもエディター
としての使い道しか無い気がします。
コレをどの様に使えばアプリが作れるのでしょうか?
0698デフォルトの名無しさんNGNG
>>697
そのエディターだけでもGUIアプリは作成可能だ。
GUIデザインをマウスでポトペタ風にやりたいならばVisualEditorプラグインを使えば、
JBuilderのように、GUIアプリのデザインも可能。
だが、JBuilderとは違った使い勝手であるし、(GUIのデザインに関しては)JBuilderほど親切ではないと思う。
0699デフォルトの名無しさんNGNG
配列は配列をメソッドに渡すときは参照渡しだと思うのですが、
メソッドから配列をreturnしたときは、値渡しになるのでしょうか?
0700デフォルトの名無しさんNGNG
>>699

return したときも参照渡しだ
値渡ししたければ、return (Type[])array.clone() だ
0701デフォルトの名無しさんNGNG
>>698
でもさ、とってつけたようなポトベタのフォームのUIなんざ、
死んだようなソフトだよね。しっかりレイアウト使えと。
0702デフォルトの名無しさんNGNG
>>700
私がが持っている本には、メソッド内で宣言した配列を平気でreturnしているのですが…
スタックから解放されるはずなのに、どないなっとんでしょ
0703702NGNG
ソースコード晒すとこんな感じです。

class ArrayFactory
{
public int[] getNewArray()
{
int array[] = {1, 2, 3, 4, 5};

return array;
}
}

public class app
{
public static void main(String args[])
{
ArrayFactory af = new ArrayFactory();

int array[] = af.getNewArray();

for (int loop_index = 0; loop_index < array.length; loop_index++){
System.out.println("array[" + loop_index + "] = " + array[loop_index]);
}
}
}
0704デフォルトの名無しさんNGNG
>>702
> スタックから解放されるはずなのに、どないなっとんでしょ
Java の配列、クラスのインスタンスはスタック上に生成されない。
スタック上に置かれるのは配列やインスタンスへの参照だけ。

ちなみに、Javaには「参照渡し」は無い。「参照値」を「値渡し」する。
>>700 は単なる間違いか、キミの言葉遣いに合わせただけ。
0705>>669NGNG
昨日、Timerクラスのことで書き込んだ者です。
>>670 >>671 >>672
さん、たぶん同じ人ですよね。お返事ありがとうございます!
java.util.timerクラスのことでした。説明が足りずすみません。
>>672のプログラムがちょうどよかったです。ありがとうございます。

それで、もう少し教えていただきたいのですが、
私は、actionPerformedで命令を待つ方法ではなくて、
例えば、1.txtにtrueという文字があるときは
タスクを実行するタイマーが生成されて、
今度は1.txtが更新されてfalseという文字があったとき、
タイマーを取りやめる、
みたいなのを作りたいと思っています。

ちょっと書いてみたのですが
flag = true;
if(flag) {
timer.schedule(new TaskIroIro(),0,1000);
}
if(テキストファイルを見てfalseだった)) {
flag = false;
timer.cancel();
}
とこんな感じでしたのですが、きちんと実行されなくて…。
どういうふうにすればいいのでしょうか?
0706デフォルトの名無しさんNGNG
>>704
返答ありがとうございます。私にはまだ、C言語とごっちゃになってるところがあるようです。
もっと深く勉強して以降と思います。
0707デフォルトの名無しさんNGNG
「して以降」は誤字です。どうもスマソ
0708デフォルトの名無しさんNGNG
>>704
>ちなみに、Javaには「参照渡し」は無い。「参照値」を「値渡し」する。

どう違うのか、さっぱり分からん・・・。
もっかい本引っ張り出して勉強し直さんと(鬱
0709デフォルトの名無しさんNGNG
>>708
void method(int[] array){ array = null; }

int[] a = new int[0];
method(a);

みたいなコードがある場合、
「参照渡し」する場合は a が null になる。
「参照値」を「値渡し」する場合は a は変化しない。
(aは要素数0の配列のインスタンスへの参照値を保持しつづける)
0710デフォルトの名無しさんNGNG
>>708
>>1の一番上のリンクでも見ろ。
0711デフォルトの名無しさんNGNG
Javaでは、「参照渡し」はなく「参照値」を「値渡し」する
と言う方が正しいって意見はナンセンス。
多くのJava参考書で「参照渡しする」と書いてあるのだから
「参照渡し」の表現を使っても別に間違いではない。
参照変数でなく変数の実体から見れば、参照渡しされてるの
だからね。俺は参考書の呼び方に従う。
0712デフォルトの名無しさんNGNG
>>711
Javaに限った話ではないんですが。
単に参考書が間違っているだけ。
昔C++ができる前、Cで「参照渡し」といっていたものが今でも使われている
(というか参考書を書いてる人間が昔の言い方を引きずっている)だけ。

本来参照渡しというのはfortranのような渡し方を言う。
C++ではそういう渡し方ができるようになったので
昔参照渡しと間違って呼んでいたものは「参照値の値渡し」に改められ、
本来の「参照渡し」と区別するようになった。

わざわざJavaで、Cの昔の混乱を再現する必要はない。
Javaのは明らかに参照渡しではないのだから。
0713デフォルトの名無しさんNGNG
jfreechartを使いたいんですが、
ライブラリの使い方を詳しく書いたwebとかないですか?
0714デフォルトの名無しさんNGNG
>>713
ちょっとググればザクザク出てきますが。
0715デフォルトの名無しさんNGNG
その議論はもういいって
0716デフォルトの名無しさんNGNG
_____________(
|                   \
|  //  / ̄ ̄ \ ズン    \乂八    へ
|//|  (([]匚●二])) ∧ ズン   | \  | |         \|/
|ゝ| ̄ ̄|7 (((((曰)))))/  ヽ>     |   )  | |\     \   /
| ____     |=_  )     丿 ι(  ||  |    ― き ―
| |II II II II II|(〇 /◆く丿ヽ/     /     ) | |  |     ― た ―
|()⌒| ̄\/_/へ /        | ι   ( 丿   |      ― ぁ ―
|人(ξ厂1、巛《丿ー′         |  ι   (   //     ― ! ―
|    L「 \      |        |      \/ イ     /   \
|    /|| \◎   || ||\        |         丿人    / |\
|  / || ||  | ̄|  || || |        \           )     
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ \        ん
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\  / ____
                       / ̄ ̄ ̄ ̄ ̄ ̄
0717デフォルトの名無しさんNGNG
>>713
あ、おれドキュメント買ったよ。
でも、内容はヒ・ミ・ツ!
0718デフォルトの名無しさんNGNG
>>712
おっしゃっている事がよくわからないので、具体例を示して私たちに教えてください。
0719デフォルトの名無しさんNGNG
>>712ではありませんが。

>>718
Javaの変数には「プリミティブ型」と「参照型」があります。
「プリミティブ型」はbyte,short,boolean等で実際に値がはいります。
「参照型」の変数に格納されるのは、オブジェクトそのものではない。
格納されるのは「オブジェクトへの参照(オブジェクトリファレンス)」
「参照」とは「オブジェクトがメモリ中のどこに存在するか(オブジェクトの
のアドレス)」を知らせる情報のこと。
「参照」はいわゆる「ポインタ」に似ている。
プログラマは参照型変数に実際にどのような値が入っているか知る必要は
ありません。

Head First Javaより
0720719NGNG
Classは全て参照型です。
0721デフォルトの名無しさんNGNG
Javaには、C++とちがって、参照以外でオブジェクトにアクセスする方法はない。
このせいで「参照=オブジェクト」と思っている人頻発で、「参照を渡すんなら参照渡し
だろが!」という勘違いくんが続発している。
0722デフォルトの名無しさんNGNG
>>721
別に勘違いしててもいいよ。どの言語にしても最初は騙し騙し教えるわけだし。
それに最初に教えるよりも自分で後でおかしいことに気づいた方がいいって
いきなり真実を教えても初心者は混乱するだけです
0723デフォルトの名無しさんNGNG
参照を渡すんなら参照渡しだろが!
0724デフォルトの名無しさんNGNG
>>723
一応ウケタってことにしといてあげるよ。
0725デフォルトの名無しさんNGNG
Javaでは、メソッドに「値を渡す」といいます。

メソッドに渡す値のことを「引数」あるいは「パラメータ」と呼びます。

Javaでは、引数として指定された値がすべて「コピー」されて
メッソドに渡されます。(これを「値渡し」といいます)

値は「ビットのパターン」がコピーされて渡されます。

プリミティブ型の変数の値は、数値や文字です。

参照型の変数の値は、「オブジェクトの存在場所」
を知らせる情報(アドレス)です。


0726デフォルトの名無しさんNGNG
もしかして、ぬるぽは実体がないのではなくて、アドレスがないということですか?
0727デフォルトの名無しさんNGNG
アドレスがないというのがどういう意味か不明瞭ですが
変数がどの実体とも結びつけられていないという意味ならそのとおりです。

# ちなみに言語仕様的にはnullはプリミティブ型でも参照型でもない
# null型という特別な型の値ということになってます。
0728デフォルトの名無しさんNGNG
型(type)
型はプリミティブ型と参照型に大別でき,プリミティブ型には整数型(byte, short, int, long),
浮動小数点数型(float, double),真偽値型(boolean),Unicode形式の文字型(char)が用意されており,
参照型にはクラス型,インタフェース型,配列型が用意されている。

null型(null type)
nullリテラルが表す値の型。

例
Object o = null;

nullがリテラルです。

   
0729デフォルトの名無しさん NGNG
mainのあるクラスでActionListenerをimplementsしてあったら、
別のクラスでActionListenerは使えませんか?

実行したら、ウィンドウが立ち上がってメニューを選択すると
新しいウィンドウを立ち上げて、そのウィンドウにボタンとかでイベントを
追加したい、という仕様なのですが・・・。

ちなみに、新しいウィンドウの方はmainとは別のクラスで作っています。
0730デフォルトの名無しさんNGNG
>>729
適切なウィジェットにaddActionListenerしてあげればいくらでも使えます。
0731デフォルトの名無しさんNGNG
初心者質問ですみませんがお願いします。

言葉でうまく説明できないのですが、
例えば、
int a と、String s="a" があるときに、何らかの方法、例えば
Class.method(s) = 1 というような感じで間接的に a を操作する方法はないでしょうか。
0732デフォルトの名無しさんNGNG
質問です

class Family{
public Object mother;
public Object father;
public Object chiled;
}
というクラスがあったとします(フィールドの型はプリミティブじゃなければなんでもいいです)
で

どこかのクラスの内部で
public volatile Family house;
と宣言したとします。
この場合、Familyクラスの内部のフィールドをいじる事に対しても、一貫性が保障されるんで
しょうか?、それともフィールドもすべてvolatileで宣言しなくてはならないのでしょうか?

調べてもコレだ!!という情報がないので質問させていただきました。よろしくおねがいします。
0733672 !670 !671 NGNG
>>705
OKOK,叩かれなくて良かったよ。
ソース晒すの久しぶりだから叩かれないか少し不安だったんだ。
良くも悪くも2chだからね。

ハッΣ(゜ロ゜〃) まさかどこかで叩かれてるとか…
まぁ何にせよ参考になったのなら幸いだわ。

んじゃ、ファイル消しておくべさ
0734デフォルトの名無しさんNGNG
クラスの再利用についての質問なんですが、よくクラスは再利用や改変されることを
念頭に置けって言われますよね。でも具体的にはどういう感じに整理しておくのが一般的なのでしょうか?
例えばProjectAとかいうパッケージでHogeというクラスのfoo()というpublicなメソッドを
作ったとして、後々にProjectBというパッケージ内でfooを再利用したいとすると、fooはどのようにして
保存され、再利用されるべきでしょうか?
ProjectB内にfooを利用するための新しいクラスを作ってそこにfooを再定義するとか、
Hoge.javaを丸ごとProjectB内にコピーしてくるとか、またはそもそもMyToolsとかいうパッケージを
別に定義して、そこにMyTools.Tool.foo()のような感じで、fooを定義しておいて、
MyTools.jarに固めて、ProjectAもProjectBもMyTools.Toolをインポートして使うとか、
色々考えられると思うのですが…。
0735デフォルトの名無しさんNGNG
>>734
質問の主題と付随する例示の関連が薄いのでどちらに答えてあげるべきかわからんが。

主題の方は再利用される事を念頭に置いて書かなくてもプロジェクトを複数こなす間に
何度か似たようなクラスが頻出する経験をするはずで、そういう時に過去のコードをリファクタリング
して行くことで汎用性のあるインターフェースを持ったクラスができあがる。
そのようなクラスをまとめて意味のあるパッケージとする事でチームが共有するライブラリができる。
そのようなライブラリはライブラリ単体のプロジェクトとして管理するようになる。

例を上げてもらった状況下を2つの性格の似たプロジェクトが同時進行すると仮定してみると
共有部分をライブラリ管理のプロジェクトとして取り上げ、成果物をMyTools.jarとしてA,B両プロジェクトで利用する。

自分の経験から言えば2つのプロジェクトで使われるライブラリを最初から作成するよりも
複数のプロジェクトを経て生き残った共通性に着眼したクラス群の方が寿命は長い。
0736デフォルトの名無しさんNGNG
[bbs2ch.properties]
bbs2ch.mona=モナー
bbs2ch.giko=ギコ

[Bbs2chPropertyKeys.java]
class Bbs2chPropertyKeys {
 static final String BBS2CH_MONA = "bbs2ch.mona";
 static final String BBS2CH_GIKO = "bbs2ch.giko";
};

こんな感じで、プロパティファイルのキー値を解析して
javaファイルを自動生成するコマンドラインツールない?
0737デフォルトの名無しさんNGNG
>>736 echoとsedで出来るレベルだから、自分ならちょっとしたシェルスクリプト
組んで終わりだな。
0738デフォルトの名無しさんNGNG
>>734
Hogeクラスのfoo()を使いたいところで、

import ProjectA.Hoge;

ってすればいいんでないの?
0739デフォルトの名無しさんNGNG
>>731 の補足です。
クラスの場合は,
String s = "MyClass";
Object obj = Class.forName(s).newInstance();
という感じで,クラスを間接的に参照できますが,これと同じようなことを
変数でやりたいんですが,できないでしょうか?
0740デフォルトの名無しさんNGNG
>>739
フィールドならリフレクションでとってこれそうだが
0741デフォルトの名無しさんNGNG
>>739
局所変数は基本的に無理。

クラスフィールドやらインスタンスフィールドは
java.lang.Class の getField() とかで
java.lang.reflect.Field のインスタンスを取ってきて
int型のフィールドだったら getInt(Object) と setInt(Object, int) でアクセスできる。
0742デフォルトの名無しさんNGNG
㋀㏨  
ゔ〲〰 ゔ〲〲〰〰 ゔ〲〰 ゔ〲〰 ゔ〲〰ゔ 〲〰ゔ 〲〰ゔ〲〲〰ゔゔ
〳〵ヷヷヷヷ〰〰〰〳〵ヷヷヷヷ〰〰〰〳〵ヷヷヷヷ〰〰〰
(♛Д)(*゜∀゜)〜♡ℳℴℯ❤ℒℴνℯ..._〆(゜▽゜*)㌰㌰
☠ ☠ ☠ ☠ ☠ ☠ ☠ ☠ ☠
(・∀・)/ヾ~~╋┓!㋦㋸㋭°
|壁|」゜ρ゜)」 ノ ヽ``〜 力㋦㋸㋭°
     / ⌒ヽ  
   / ´_ゝ`) 荒れてますね、 β α κ α にはコピペできませんよ・・・
  |     /
   | /|  |
  // |  |
 U   .U  
☠ ☠ ☠ ☠ ☠ ☠ ☠ ☠ ☠ ☠ ☠ ☠
0743デフォルトの名無しさんNGNG
>>732
> この場合、Familyクラスの内部のフィールドをいじる事に対しても、一貫性が保障されるんで
> しょうか?

調べたわけではないのだが、それは無理だろう。

というか、そんなことをなぜする必要が?
0744デフォルトの名無しさんNGNG
>>741
たびたびすみません。
> int型のフィールドだったら getInt(Object) と setInt(Object, int) でアクセスできる。
この引数の Object は何を指定するんでしょう?
0745デフォルトの名無しさんNGNG
>>744
ポカーン( ゚Д゚)
0746デフォルトの名無しさんNGNG
わざわざポカーン( ゚Д゚) なんて、幼稚なコピペする事ないでしょ。
いい年して。だから周りからガキっぽいって言われるんですよ。
身に覚えがあるでしょう。
真面目に聞いてるので誰か教えてください。

0747デフォルトの名無しさんNGNG
行き詰まったから気分転換に再び登場

>>705よ Java起動時にテキストの内容を取得したいんだったらStringBufferとStringTokenizerの組み合わせがオイシイですよ。(基本か?)
それか、本気でちょっとした内容(trueとかfalseとかウインドウのサイズなど)を保存しておくだけならPropertyクラスでやってみるとかね。
確か後者のはWinのiniと同じような感覚で扱ったはずだわ。
今回はソース投げてる時間もなさそうなんで参考リンクだけな。

ファイルの入出力
ttp://milkyway.merseine.nu/main.shtml
↑のJava講座 53〜55章辺りを読んでみそ。

Propertyクラス
ttp://www.techscore.com/index.html
↑のJava→6.『ロケール/プロパティ/リソースバンドル』に少しだけ載ってた。

まぁ、これ読んで頑張ってくれぃ
0748デフォルトの名無しさんNGNG
>>745
>>746 は僕じゃないです。

getField() は Class のメソッドなので、参照しようとするフィールドを含むクラスから
Class.forName() で Class オブジェクトを作るとして、それから Field のインスタンスを
取ってきて、まではいいんですが、じゃあ、getInt() の引数のオブジェクトは何にするのか
真面目にわかりません。
getField した時点で、対象フィールドは確定してるので、引数なしで getInt() でいけそうに
思うのですが、引数を要求されます。

なんか根本的にわかってないんだと思うんですが、どこがおかしいか指摘してもらえませんか。
お願いします。
0749初心者 ◆Java/isQ.c NGNG
>>748
ttp://www-6.ibm.com/jp/developerworks/java/030808/j_j-dyn0603.html
0750デフォルトの名無しさんNGNG
>>748
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/reflect/Field.html#getInt(java.lang.Object)
0751デフォルトの名無しさんNGNG
>>748
APIdocぐらい引けよ
0752デフォルトの名無しさんNGNG
>>749
ありがとうございました。Class オブジェクトが何なのかがわかってませんでした。
Class インスタンスを生成するときに存在する、そのクラスのインスタンスの情報まで
含むものだと思ってました。

下記のコードを書いてみて、理解しました。

import java.lang.reflect.*;

class Ex {
int name;
public static void main( String[] args ) {
Ex obj1 = new Ex();
Ex obj2 = new Ex();
obj1.name = 1;
obj2.name = 2;
try {
Class c = Ex.class;
Field f = c.getDeclaredField("name");
System.out.println( f.getInt(obj1) );
System.out.println( f.getInt(obj2) );
}catch(Exception ex) {
System.out.println(ex.toString());
}
}
}
0753デフォルトの名無しさんNGNG
昔戦車の戦闘ロジックを作って戦わせる(うろ覚え)のがあったとおもうんだけど、
あれってどうなったんですか?
同じようなものはまだありますか?
0754デフォルトの名無しさんNGNG
ロボコードのこと?
後継のゲームがまた始まってた気がする。
0755デフォルトの名無しさんNGNG
>>674です
>>675そうですか、書いてませんか・・・自分でやってみます

>>676例えば、java.utilのRandomクラスがありますよね?それを使って乱数を発生させるやり方とかです。これは知っているのですが、そのほかのTimerクラスは使い方がわかりません。

public Timer()

このあとは、どうすれば?
などのことです。
0756デフォルトの名無しさんNGNG
BASICしかやったことがなく、JAVAをはじめて4ヶ月になるのですが、コツってありますか?
また、JAVAをやるにしたがってどんなことに注意したらいいですか?
0757デフォルトの名無しさんNGNG
後継といえばコードラリーやカブロボのことか?
0758デフォルトの名無しさんNGNG
>>756
BASICとはVBのことか? それとももっと昔のN88BASIC時代あたりのことか?
今までBASICで何を作った?
これから何を作ろうとしている?
それがわからんでは質問に答えにくい。というか曖昧なことを言う奴や
自分で決断する能力が無い奴には具体的に答える気にもならん。
0759デフォルトの名無しさんNGNG
>>756
自分もFORTRAN以外ほとんど知らない状態からJavaに手を染めて
1年くらいになるが、自分の考える、手続き型言語からの乗換えの
「コツ」をひとつ挙げると、「なぜオブジェクト指向か?」を意識して、
理解しようとしながら触ることだと思うね。
0760デフォルトの名無しさんNGNG
教えてください。
ヤフーのページをjavaのプログラムで読み込むとき、
HttpURLConnection uc = (HttpURLConnection) (ヤフーのURL).openConnection();
InputStream in = new BufferedInputStream(uc.getInputStream());
BufferedReader r = new BufferedReader(new InputStreamReader(in,"EUC_JP"));
で読めるようになるのはいいのですが、
波ダッシュ「〜」は「??」となってしまいます。
その他の日本語は正しく表示されるのですが…。

どうすればよいのでしょうか。
ぐぐってみても具体的な解決方法って無くって…。
よろ。
0761デフォルトの名無しさんNGNG
ときどきプログラムを実行すると
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_PRIV_INSTRUCTION (0xc0000096) at pc=0x0006ca7a, pid=1720, tid=2424
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0-b64 mixed mode, sharing)
# Problematic frame:
# C 0x0006ca7a
#
というエラーが出ます。再起動すれば直るのですがこのエラーが出る原因をご存知ないでしょうか?
0762デフォルトの名無しさんNGNG
>>732

synchronizedキワードを使ったほうがよくありませんか。

volatile修飾子が言語仕様どうり実装されていない実行環境があるそうですよ。

また、インスタンス変数はprivateにしてセッター、ゲッターメッソドで

アクセスしたほうがよいです。

でも、なにか特別にpublic にする必要があったらゴメン。


0763デフォルトの名無しさんNGNG
>>761
VMがコケてる。

VMのバージョンをいろいろ変えてみるか、
落ちる原因となっているコードを変えて回避するしかない。
それか不安定なJNIコード使ってる、ってとこだろ。
0764デフォルトの名無しさんNGNG
>>760
一番簡単な解決策は、
出力するときにMS932やWindows-31Jを使わずに、Shift_JISを使う。
0765デフォルトの名無しさんNGNG
質問なのですが、javax.servlet.*とjavax.servlet.http.*がインポートできませんというエラーになってしまいます。
本に載っているリストをうつしたのですが、コンパイルできません。
どなたか助けてくださいm(_ _)m
0766デフォルトの名無しさんNGNG
>>765
servlet.jar にCLASS_PATHが通ってないんだろう。
本に載ってるはずだからその通りにやりなさいな。
0767デフォルトの名無しさんNGNG
「PATH」、「CLASSPATH」の「環境変数」は正しく設定されていますか?
0768デフォルトの名無しさんNGNG
>>767
初心者に環境変数でCLASSPATHを設定することを教えるんじゃねぇ!
最低限でもjavac の -classpath オプション。
その先は ant や IDE だ。
0769デフォルトの名無しさんNGNG
>>768
うるせーハゲ

お前みたいなヲタばかりじゃないんだから
いちいち -classpath xxx\xxxx\xxx.jar;yyy\xxxx\xxx.jar;. なんてちまちま打ってられるか
0770デフォルトの名無しさんNGNG
>>742
0771デフォルトの名無しさんNGNG
ここにゃ臭いオタと厨房しかいないな
0772デフォルトの名無しさんNGNG
synchoronized (A){}
で囲まれたカッコ内とかAのクラスのsynchronizedメソッドを実行するためには
Aさんの心(モニター)をゲットしないと実行できないという解釈でよろしいですか?

また、普通のメソッドやフィールド(もちろんpublic等)はとくにAさんの心(モニター)をゲットしなくても実行できる(たとえよそのスレッドがAのsynchronizedメソッドを実行中でも)という解釈でよろしいですか?

あと、「ロックを獲得する」と「モニターを獲得する」は同じ意味ですか?
0773デフォルトの名無しさんNGNG
javaプログラマーの職業っていいの?
給料とか、やりがいとか、どうですか?
0774デフォルトの名無しさんNGNG
最新の環境を試そうとJava1.5とMaven1.0.2を入れてみたんだけど
Mavenの初回起動時に以下のエラーメッセージが出ました
同じ組み合わせで動かしている人っていますか?
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_FLT_STACK_CHECK (0xc0000092) at pc=0x00ed0618, pid=288, tid=296
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_01-b08 mixed mode)
# Problematic frame:
# v ~RuntimeStub::init_check_patching Runtime1 stub
0775767NGNG
>>769さん
応援有難う!!
0776デフォルトの名無しさんNGNG
>>773
>>539
0777デフォルトの名無しさんNGNG
>>769
ビルド用のバッチファイルかシェルスクリプト使えよ。
分かってきたらantに移行しろ。
0778761NGNG
>>763
なんでコケてるんだろう・・・1.5使ってからときどき出るようになったような

>>774
>>761ですが同じエラーが出ます。Mavenってのは知りませんがJDKは1.5使ってます。
再起動すればたいてい直るんですがどうでしょう?
0779デフォルトの名無しさんNGNG
>>772
>あと、「ロックを獲得する」と「モニターを獲得する」は同じ意味ですか?

基本的には同じと考えていいが、
あるスレッドがロックを獲得しているときに
同じスレッドが同じロックを獲得しようとするとデッドロックに陥る。
一方モニターを獲得しているときに同じモニターを獲得しようとしてもデッドロックに陥らない。

その意味ではJavaのsynchronizedはロックではなくモニター。
ただJ2SE5.0で導入されたLockクラス関係は
ロックだが同じスレッドが再獲得可能なロックもあったはず。
0780デフォルトの名無しさんNGNG
このスレでよく出てくる「正規表現」をみなさんはどこで修得しましたか?
0781デフォルトの名無しさんNGNG
>>780
ttp://pc5.2ch.net/test/read.cgi/tech/1102900418/
0782デフォルトの名無しさんNGNG
>>780
unixユーザなので普段から使っておりました。
最初はgrep、次がviでかな。

イマドキだとperlあたりの本からじゃないかな?
0783デフォルトの名無しさんNGNG
>>779
Lock系もいろいろあるし、セマフォやカウントアップバリアとか
各種FIFOとかJ2SE5.0の一番の売りは目立たないが
この辺の制御のしやすさなんじゃないかと思う

組み込み系を意識しているのかね
1.4.2までせっせと作っていたのがばからしくなる
0784デフォルトの名無しさんNGNG
>>781-782
System.out.println("ありがとう");
0785デフォルトの名無しさんNGNG
必要なクラスパスは
アプリケーションによってそれぞれ違うし
コンパイル時と実行時でも違う。
環境変数なんかに設定するのは糞。
0786デフォルトの名無しさんNGNG
>>783
APサーバの実装なんかにも便利じゃない?
スレッドプールの実装も持ってるしさ。

オプソ系のAPサーバってプール系のコードが
バギーなこと多いから、その辺が改善されそう。

他にも、NIOと組み合わせたプロデューサ/コンシューマ
パターンを実装しやすくもなってるね。

スレ違いスマソ
0787デフォルトの名無しさんNGNG
>>785
そうそう。
「環境変数に設定しろ」と教えた次は、
「実行時にクラスが見つからないようなんです。ちゃんと本のとおり、
クラスの置いてあるディレクトリでコンパイル、実行しているんですが…。」
なんていう質問がくるぞ。
今度は、.(カレントディレクトリ)も環境変数CLASSPATHに追加しろか。
0788デフォルトの名無しさんNGNG
下のサイトを見てて(Java並列プログラミングについてのサイト)
ttp://www.netgene.co.jp/java/concurrentTips.html#synchronizedMethod

二種類のモニタを明確に区別し,使い分ける
Javaにはクラスに対応したモニタとインスタンスに対応したモニタの二種類のモニタがある.
前者はstaticなsynchronizedメソッド/文で,後者は non-staticなsynchronized メソッド/文で使われる.
これらは異なるモニタに対応した処理なので,お互いに排他的には実行されない.
(つまり同時実行される可能性がある.ここまで来ると完全に初心者向け.)

とあるのですが、初心者向けって俺分かんないよ!!と恐ろしくなって質問してみました。
これはどういう意味でしょうか?
今マルチスレッドのプログラムを書いているのですが、上の内容を知らなくてデッドロックとか
まじ嫌なんで。
よろしこです。

0789デフォルトの名無しさんNGNG
上のサイトを見てて、
int tmp=0;
tmp++;とかいうコードがアトミックにならないと書いてあって、青ざめました(汗。
0790デフォルトの名無しさんNGNG
>>788
staticメソッドとnon-staticメソッドがそれぞれ
synchronized修飾されているとする。この場合

staticメソッドの方はメソッド内でsynchronized(this.getClass()) {・・・}とするのと同じ。
non-staticメソッドの方はメソッド内でsynchronized(this) {・・・}とするのと同じ。

モニターを獲得するオブジェクトが異なるんだから同時に実行される
可能性があるのはあたりまえ。
0791デフォルトの名無しさんNGNG
>>773
つまらん仕事多い。コンソール系ばっか。
やりがい感じたければC++でテトリスでも作ってた方がいい。
0792790NGNG
>>790訂正
staticメソッドでthisはないな。Hogeクラスのstaticメソッドだとしたら
synchronized(Hoge.class) {・・・}と読み替えてください。
0793デフォルトの名無しさんNGNG
%JAVA_HOME%\jre\lib\ext
ってディレクトリはどのようなjarファイルを入れる為につかうべきでしょうか?
0794デフォルトの名無しさんNGNG
>>793 基本的にはJ2SEになにか機能を付け加えるときに使う。
大体はSunで出してるJava3DとかJMFとかのoptional APIを追加するときくらいかな。
自分で使うのはやめたほうがいい。バージョン管理できなくなるからね。
http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/findingclasses.html
0795793NGNG
>>794
サンクス
0796デフォルトの名無しさんNGNG
参加するぜよ。
0797デフォルトの名無しさんNGNG
Javaの例外系に詳しい人いますか?
0798デフォルトの名無しさんNGNG
>>797
詳しい人の基準が知りたい
0799デフォルトの名無しさんNGNG
>>761
何をやってるときにでるかはわかるんじゃない?
原因はわからなくてもどこででるかを調べてみたら?
0800デフォルトの名無しさんNGNG
>>797
聞きたいことを直接書いちゃえよ
0801デフォルトの名無しさんNGNG
>>793
>>794の言うとおり。J2SEそのものにパッチをあてる感覚かな。
0802デフォルトの名無しさんNGNG
環境変数を知ってから作業が楽になったのを
憶えています。
Javaでも「PATH」と「CLASSPATH」という2つの「環境変数」は重要な意味を持っています。
ないがしろにしない方がよいとおもいます。

しかし、その時々で自分が便利な方を使い分けましょう。

0803デフォルトの名無しさんNGNG
>>793
自分で作ったjarファイル。
自分が管理しやすければ何でもかまわない。
0804デフォルトの名無しさんNGNG
>>777
最初の質問者はJavaに初めてふれた方だと思います。
黒帯ではなく白帯ですから、最初は柔軟体操から。


0805デフォルトの名無しさんNGNG
>>798
このスレでいう詳しい人とは、
ろくな実務経験も実績もないのに、本だけ読んで勘違いしてるような人。
0806デフォルトの名無しさんNGNG
>>805
投げる、つかむ、処分する、とか言いたくなるような漠然とした質問にはつっこまないのかよ〜
0807デフォルトの名無しさんNGNG
イヤミの好きな人は気の毒な人と思ってみるか、
退屈しのぎにたのしむか。
何でもいいけど人々が生活しているなと思うか。
反応がないとサビシ〜。
しかしどうせ賑やかにしたいなら、楽しくなるほうの
書き込みがいい。
その人が本からだろうと、実務の体験からだろうが、
教えてくれればありがたい。
0808デフォルトの名無しさんNGNG
>>777
antもbatも同じタイプを何度も打ち込むなということです。
タイピストになる訓練じゃないんだから。
何度も通すディレクトリなら一度環境変数にうちこめば一発ですむぞ。

0809デフォルトの名無しさんNGNG
すいません。意味不明なエラーが出て困ってます。

ResultSet#updateBytes("image", imagedata) で画像データを設定した後に
ResultSet#inserRow()をすると、例外が発生してしまうのです。

例外のメッセージは
"Syntax error or access violation message from server:
"You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for
the right syntax to use near
'\\'I\\'z\\'ォ\\'ワ(\\r(?(q(「(ヤ))8)k)�)ミ**5*h*�*マ++6+i+�+ム,,9,n,「,ラ-\f-A-v-ォ-�..L.�.' at line 1""

というものです。ちなみに同じ容量のバイト配列でも new byte[10000]とか
でただ作成したものなら、何の例外も発生せずにDBに書き込めます。
どうすればDBのBlobカラムに画像データが書き込めるのか教えてくださいませ。
0810デフォルトの名無しさんNGNG
>>808
コピペを知らないお前は負け組
Eclipse使ってラクチンの俺は勝ち組
0811デフォルトの名無しさんNGNG
>>810
とっくの昔から私はEclipse使ってますが、
勝ち負けにはこだわりません。
勝ったの負けたのクダラナイ、クダラナイ。

0812デフォルトの名無しさんNGNG
>>809
JDBCドライバがカス
0813808,811NGNG
>>810
ホント「コピペ」ってムズカシー。
Googleで勉強してくら。
0814デフォルトの名無しさんNGNG
>>808
環境変数はそのためにあるものなのか?

0815デフォルトの名無しさんNGNG
>>811
優れた道具も使用者如何でガラクタにもなると言うことだな。
0816デフォルトの名無しさんNGNG
class TasiHikiByte
{
public static void main(String [] args)
{
byte a = 5;
byte b = 2;
byte c = 3;
byte d = 6;
byte ans = a + b - c + d;

System.out.println( ans );
}
}

を実行すると

TasiHiki_2.java:9: 精度が落ちている可能性
検出値 : int
期待値 : byte
byte ans = a + b - c + d;
   ^

と出ますがなぜ?ですか?全てbyte型なのに・・・
0817デフォルトの名無しさんNGNG
>>816
整数型の四則演算はオペランドをintに変換した後に行われるから。言語仕様。
byte ans = (byte(a + b - c + d);
でおけ
0818デフォルトの名無しさんNGNG
>>817なるほどです!ありがとうございました!
0819デフォルトの名無しさんNGNG
class TasiHikiDouble
{
public static void main(String [] args)
{
double a = 5.5;
double b = 2.3;
double c = 3.1;
double d = 6.6;
double ans = a + b - c + d;

System.out.println( ans );
}
}

をやると

11.299999999999999

という答えが返ってきます。11.3なのになぜこうなるのでしょうか?
連投すみません
0820デフォルトの名無しさんNGNG
丸め誤差について勉強しろ
0821デフォルトの名無しさんNGNG
丸め誤差?
初めて聞いた・・・
0822デフォルトの名無しさんNGNG
浮動小数点は言語以前の電子計算機概論レベルの話だからなぁ
0823デフォルトの名無しさんNGNG
ま、小数点以下の計算をちゃんとやりたきゃBigDecimal使え
0824デフォルトの名無しさんNGNG
丸め誤差ってjavaにも関係してくるから、知っといたほうがいいですか?
0825デフォルトの名無しさんNGNG
>>819
http://www.google.co.jp/search?hl=ja&q=double+%E7%B2%BE%E5%BA%A6
0826デフォルトの名無しさんNGNG
ありがとうございます。しらべてきます
0827デフォルトの名無しさんNGNG
>>810
同じコピペでも、
Eclipse使ってコピペのプログラムは最低だぜ!!
板のコピペはいいけど。
0828デフォルトの名無しさんNGNG
Javaの演算子の優先順位を定めた公式文書を探してます。
チュートリアルには、載ってるんですけど、
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/expressions.html
言語規定には見当たらないようで、困ってます。
http://www.y-adagio.com/public/standards/tr_javalang2/jTOC.doc.html
どなたか、アドバイスを...。
0829デフォルトの名無しさんNGNG
>>828
言語規定にちゃんと書いてある。

http://www.y-adagio.com/public/standards/tr_javalang2/expressions.doc.html#23302
> Primary:
>     PrimaryNoNewArray
>     ArrayCreationExpression
>
> PrimaryNoNewArray:
>     Literal
>     Type . class
>     void . class
>     this
>     ClassName.this
>     ( Expression )
>     ClassInstanceCreationExpression
>     FieldAccess
>     MethodInvocation
>     ArrayAccess

http://www.y-adagio.com/public/standards/tr_javalang2/expressions.doc.html#36254
> PostfixExpression:
>     Primary
>     ExpressionName
>     PostIncrementExpression
>     PostDecrementExpression

以下、Expression に至るまで延々と続く。

あと、そのチュートリアルはJava言語規定と同じ用語を使ってないので注意。
例えば、postfix operators として列挙されてるもののうち、
Java言語規定で postfix operator として扱われてるのは expr++ expr-- だけ。
0830デフォルトの名無しさんNGNG
>>829
即レス、ありがとうございます。
なるほど。構文規則に従って式を評価していくと、
チュートリアルに書いてある優先順位に従って、
計算したことになるわけですね。
どうも、ありがとうございました!
0831デフォルトの名無しさんNGNG
>>828,829
真面目なのを見ると、
くだらない書き込みをしているとはづかしくなる。
0832デフォルトの名無しさんNGNG
ドカタ言語Java
負け組専用言語
0833デフォルトの名無しさんNGNG
「はづかしくなる」とか書くバカでも、Javaで得意になってるのをみると、はずかしくなる。
0834デフォルトの名無しさんNGNG
private static Hoge getHoge(Hoge[] hoges)
{
 処理; return hoge;
}

のようなメソッドを使いたいんですが、
Hoge hoge = getHoge(hogeList.toArray());
のようにすると、hogeList.toArray()はObject[]ですからコンパイル時にはねられますよね
けど、(Hoge[])(hogeList.toArray())のように配列→配列のキャストもできませんよね
こういう場合はどうやってHoge[]を作るのがベターなのでしょうか?
0835デフォルトの名無しさんNGNG
書き忘れ
hogeListはListです
0836デフォルトの名無しさんNGNG
hoge だの hage だの まだ使ってる時代錯誤がいるんだ・・・
0837デフォルトの名無しさんNGNG
int nHoges = hogeList.size();
Hoge[] tmpHoges = new Hoge[nHoges] ;
System.arraycoypy(hogeList.toArray(), 0, tmpHoges, 0, nHoges) ;

こんなかんじでどうだろう。
0838デフォルトの名無しさんNGNG
>>834
public Object[] toArray(Object[] a)
0839デフォルトの名無しさんNGNG
>>837
ありがとうございました
0840デフォルトの名無しさんNGNG
アプレットを作ってサイトに載せようとしたのですが、コンパイルをして生成されたclassファイルの中に、名前に $ が入っているものがあったのでアップロードできませんでした
生成されるclassファイルの名前に $ が入らないようにすることはできないのでしょうか
できないのなら、 $ がファイル名に入っていてもアップロードできるサーバはないのでしょうか
よろしくおねがいします
0841デフォルトの名無しさんNGNG
>>840
jar使え。
ttp://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/win32/jar.html
0842デフォルトの名無しさんNGNG
>>841
実にアホだなあ。
勝手に自分で都合のいいように解釈して
0843デフォルトの名無しさんNGNG
で、どうすりゃいいのよ?
0844名前は開発中のものです。NGNG
なぜ?841で解決すると思うけど。

そもそもクラス名にかってに$をつけるときって、ひとつの
ソースファイルに二つ以上クラスがあるとき?
別ファイルにすればいいのでは。
0845デフォルトの名無しさんNGNG
初心者の840と、説明不足な841と、頭の悪い842のために説明しましょう。

名前に$が入っているファイルは、匿名クラス(無名クラス)を使った為にできたクラスファイルです。
匿名クラスについてはこちらを読んでください。
ttp://sjc-p.obx21.com/word/jt/anonymousclass.html
匿名クラスを使わないようにコードを修正すれば
$の入ったクラスファイルが生成されることはなくなりますが、
コードを修正しない方法もあります。
それは、jarというツールを使用して、全てのクラスファイルを、
$の付かない1つの圧縮ファイルにまとめてしまうことです。
これにより、$の付かない任意のファイル名を付けることができますので、
ファイル名に関する文字や長さの制限から解放されます。

jarの使い方は>>841のとおりですが、こちらも参考になります。
ttp://www.hellohiro.com/jar.htm
アプレットもそうですがJavaでは、このjarにより圧縮されたファイルから
クラスを読み出すことができるようになっています。
それをアプレットで行う場合のHTMLの書き方は以下のページが参考になるでしょう。
ttp://java.sun.com/j2se/1.4/ja/docs/ja/guide/jar/jarGuide.html
0846845NGNG
>>844
あ、そうか$つきのファイルって、1ファイルに複数クラス入れたらできるんだ・・・無名クラスに限らないんだった。
めったにしないから忘れてた
0847デフォルトの名無しさんNGNG
>>845
staticメンバクラスや他のインナークラスとかは無視ですか?
0848デフォルトの名無しさんNGNG
>>834
Hoge hoge = getHoge((Hoge[])hogeList.toArray(new Hoge[hogeList.size()]));
0849デフォルトの名無しさんNGNG
>>846

public class Hoge { class InHoge {} }
class Fuga {}

という2行のHoge.javaをコンパイルしてみよう。
0850デフォルトの名無しさんNGNG
>>845
またバカが1人・・・
0851デフォルトの名無しさんNGNG
てか自演でしょ
0852デフォルトの名無しさんNGNG
>>851
自演の目的は?
0853デフォルトの名無しさんNGNG
>>852
質問の意図は?
0854デフォルトの名無しさんNGNG
質問に質問で返すのは感心しない
0855デフォルトの名無しさんNGNG
>>852
その質問の意図は?
別に理由なんていいじゃん
0856デフォルトの名無しさんNGNG
>>854
誰に洗脳された固定概念?
0857デフォルトの名無しさんNGNG
>>855
理由もないこと聞くなよ(w
0858デフォルトの名無しさんNGNG
なんでも聞けば答えるのが当然と勘違いしてるのがいるな
0859デフォルトの名無しさんNGNG
男「おい、おまえのパンツ何色だ?」
女「なんでそんな事聞くんですか?」
男「質問に質問で返すのは感心しないな。別に理由なんていいだろ。」
0860デフォルトの名無しさんNGNG
パンツの色は重要だろ
0861デフォルトの名無しさんNGNG
もしかしてパンツフェチ?
0862デフォルトの名無しさんNGNG
内容:
質問です。
double percent1 = 42.5;System.out.println(percent1);
double percent2 = 57.5;System.out.println(percent2);
このような数値を表示すると、問題なく小数点第一桁まで表示できるのですが、
double percent1 = 42.0;System.out.println(percent1);
double percent2 = 58.0;System.out.println(percent2);
こう記述すると、42と58という数値になってしまい、小数点部分が表示されなくなります。
強制的に指定した小数点の桁数まで表示させるにはどのようにしたらいいでしょうか。
また、この数値はJFreeChart(ttp://www.jfree.org/)でのグラフ生成に使い、パーセンテージを小数点第一位まで表示させたいのです。
グラフ生成するメソッドにはdoubleで渡す必要があるので、Stringなどに変換というのは無理なのです。

それとも、double型は小数点部位で0があると強制的に0の桁まで認識させるというのは無理なのでしょうか。
0863デフォルトの名無しさんNGNG
>>862
java.textパッケージ以下のFormat関連を調べるんや!
0864デフォルトの名無しさんNGNG
>グラフ生成するメソッドにはdoubleで渡す必要がある
とある以上、そのライブラリに手を加えない限り、どうしようもないんじゃない?
0865デフォルトの名無しさんNGNG
>>862
軸にはNumberFormatを指定する事ができるみたいだけど
Eclipseかなにかで作っているならNumberFormat指定して参照箇所を探してみることできないですか?
0866デフォルトの名無しさんNGNG
ウィンドウを出してそこに部品を配置したのですが、ウィンドウサイズを変更されると
微妙なレイアウトが崩れてしまいます。そこで、ウィンドウサイズを変更できないようにする
方法があれば教えてください
0867デフォルトの名無しさんNGNG
windowFrameObject.setResizable(false)で大きさ変更不可になりまっせ。
0868デフォルトの名無しさんNGNG
ソースコードをフォルダごとカウントしてくれるステップカウンタってないかな?
0869デフォルトの名無しさんNGNG
>>867
感謝感激解決しました
0870デフォルトの名無しさんNGNG
>>768
おや? Mavenを忘れていないか?
MAVEN_REPOだろ
0871デフォルトの名無しさんNGNG
>>868
LineNumberReader
0872デフォルトの名無しさんNGNG
>>774
見覚えのあるメッセージだ。
多分おそらくMavenとは全く関係ないだろう。
Javaを再インストールしたほうがよさげな気がする。
0873デフォルトの名無しさんNGNG
>>871
こんなのがあるとは、サンクス!
0874デフォルトの名無しさんNGNG
>>868

Runtimeクラスで かくディレクトリ毎にwc -lを実行。
0875デフォルトの名無しさんNGNG
>>868
Eclipseのメトリクスプラグイン
0876840NGNG
jarにまとめたらうpできました ちゃんと動きました!
皆さんありがとうございます!
0877デフォルトの名無しさんNGNG
JavaからUSBおよびRS-232Cを使うプログラムを作っているんですが、
JUSB、Java Comminucation APIを使えば、出来るというのはわかったんですが、
使い方がわかりません。誰か、お教え願います。
0878デフォルトの名無しさんNGNG
>>869
こういうところで躓く段階なら、在ってもいいじゃないかとか思う機能は大抵存在するのでjavadocを検索する癖を付けるといいよ。
今回ならresizeで検索していれば見つかったはずだから。
0879デフォルトの名無しさんNGNG
jUSB と Java Communication API の使い方はわかっているのですが、
>>877 にわかるように説明する方法がわかりません。誰か、お教え願います。
0880デフォルトの名無しさんNGNG
自作でアプレット作成中に質問だ出てきたのでお願いします
1 ボタンを配列のようにできるのか(たとえば同じ働きをするボタンをfor文などで何個か作るなど)

2 1ができる場合配置(add(btn);)などを(btnはボタンの名前とする)for文で何個も配置させれるか

3 アプレットを表示する場所の横の最大より先に表示を次の行にいくことはできるのか
  (ボタンが10個横に表示できる状況でボタンの大きさを変えずに3個表示して次の行(高さを変える)に3個表示することができるか)

この3個ができるといろいろやりやすくなると思ってできるのか気になり質問します
わかるかたお願いします
0881デフォルトの名無しさんNGNG
>>880
1:できる
2:普通だ
3:GridBagLayout使え
0882デフォルトの名無しさんNGNG
>>877
まずサンプルソースは動いたか?ポートリストの表示はできたか?
http://www.okakogi.go.jp/People/miwa/program/how2com/how2com.html
とかはちゃんと読んだか?

サンプルソースにはボーレート指定で115200bpsとすると動かないバグが
あるが、まぁソースを追っかければすぐに見つかる些細なものだ。がんがれ。
0883デフォルトの名無しさんNGNG
>>881
すいません
javaの本は一通り読んだんですがよくわからなかったので
えっとできるということはintの配列などと同じやり方でいいのでしょうか?
2もforを使って配列の番号を変えていけばadd(btn[x])みたいな感じでできるのでしょうか?
最後のは言葉を教えてもらったので自分で調べてみたいと思います
詳しく教えていただきたいです
お願いします
0884デフォルトの名無しさんNGNG
>>883
同じボタンのインスタンスを複数出したいってのならできない。
1を読んで配列にボタンインスタンスを入れたいと受け取ったのでボタンもオブジェクトだから配列要素にできると答えた
2は配列の参照をforループで解決したいと見たのだが違うのか?

つか日本語で書いてあるんだけど情報の欠落があるんで答えにくいよ。
0885デフォルトの名無しさんNGNG
わかりにくくてすいません
なにぶん初心者でどう説明したらいいかわからなくて・・・
僕がやりたいことを言います
1は押したボタンに表示する文字を1回押したら1と表示2回なら2と表示させたいを
10個作りたいとします
そうした場合プログラムを減らすために配列を使ってfor文でボタンを作れたら便利だなぁと思ってたわけです
2もやりたいことは同じで配列でボタンを作れたらadd(btn);とかの部分もfor文を使ってまとめれるかを聞きたかったわけです

・・・ん〜説明ってむずいですねTT
0886デフォルトの名無しさんNGNG
>>885
できるから思った通りに書いてみるといい。
class ButtonCount implements ActionListener {
int count;
public void actionPerformed(ActionEvent e) {
count++;
JButton btn = (JButton) e.getSource();
btn.setLabel(String.valueOf(count));
}
};
↑こんなアクションをボタン設定することでボタンを押した回数がボタンに表示される。
for (int i = 0; i < 10; i++) {
JButton button = new JButton();
button.setLabel("おされてないよ");
button.addActionListener(new ButtonCOunt);
/// ボタンをレイアウトしたいならこのあたりでなんかしろ
myPanel.add(button);
}
↑こんなループでボタンは作れる。
0887デフォルトの名無しさんNGNG
わざわざプログラムをありがとうございます
わからない部分を質問させてください
ボタンを作ってる部分はわかるのですが配列にしてる場所がよくわかりません
僕の勉強不足かもしれませんが見てみるとbuttonというボタンを10個作っているように見えて
ほかのところのプログラムから何番目のボタンというようには呼び出せないのですか?
起動しようといろいろ試してもエラー(for文のところ)が出てしまいできません
0888デフォルトの名無しさんNGNG
連続投稿すいません
僕のイメージではほんとにintの配列と同じように
int[5] (5は配列の数)のようにボタンも作れないかなぁ?と思ってるわけです
こんなやり方でボタンを作ることはできないでしょうか?
0889デフォルトの名無しさんNGNG
// これインスタンス変数として定義(意味ないよ
JButton [] buttonArray = new JButton[10];
for (int i = 0; i < buttonArray.length; i++) {
JButton button = new JButton();
buttonArray[i] = button; // 配列へいれる(でもこのサンプルならButtonCountのインスタンスの方が便利だろう?,カウンタ持ってる側だし
button.setLabel("おされてないよ");
button.addActionListener(new ButtonCount);
/// ボタンをレイアウトしたいならこのあたりでなんかしろ
myPanel.add(button);
}
0890デフォルトの名無しさんNGNG
わざわざ僕の希望したように書き直していただきありがとうございます
buttonArray がボタンの配列に必要とみてよろしいんでしょうか?
それがあってるならば僕が考えていたこともできそうです
いろいろありがとうございました
0891デフォルトの名無しさんNGNG
>>890
まず言語勉強して・・・
0892デフォルトの名無しさんNGNG
ImageをBufferedImageに変換する方法があればご教授願いたい
0893デフォルトの名無しさんNGNG
Win2k + j2se1.42_06 でデフォルト以外の XML-Parser を使いたいと思っていますが、
実行時に使われている Parser を確認する方法はないでしょうか?

Piccolo を例として、いま設定してあるのは以下の通りです。

1. %JAVA_HOME%\jre\lib\ext に Piccolo.jar をコピー
2. %JAVA_HOME%\jre\lib\jaxp.properties に
  javax.xml.parsers.SAXParserFactory = com.bluecast.xml.JAXPSAXParserFactory
  と書く
3. CLASSPATH を .;%JAVA_HOME%\jre\lib\ext\Piccolo.jar;%JAVA_HOME\lib\tools.jar とする

まではやってみました。しかしSAXのコードを書いて動かしてみても、
いまひとつ確信が持てません。
0894デフォルトの名無しさんNGNG
日本語の入力できないTextFieldはどうやれば作れるのでしょうか?
KeyEventを拾えばいいのかと思ったのですが、どうも日本語だけは
制限できません。

英数での文字数制限、英文字の入力禁止(数字は可能)などは出来たのですが。
0895デフォルトの名無しさんNGNG
JAVA5入れてみたけど、サイズが小さくなってるね。1.42に比べて1/3くらいに
0896893NGNG
自己解決しました。
http://www.utj.co.jp/xml/dev/java/dxjava_1.html
より実感するにはベンチでもするしかないか・・・。
0897デフォルトの名無しさんNGNG
>>850
俺と同類のバカ類がいた。
仲良くしよう同じバカ類同士。
0898デフォルトの名無しさんNGNG
>>850
チョットいかれてねえか。
0899デフォルトの名無しさんNGNG
基地外同士仲良くやってくれ(出来れば別スレで)
0900デフォルトの名無しさんNGNG
今頃粘着レスかよ・・・
0901デフォルトの名無しさんNGNG
>>850よ
喜べ釣れたぞ釣れたぞ。
0902デフォルトの名無しさんNGNG
これからJAVAを勉強しようと思うんですが、
開発ツールやコンテナの種類が多すぎて何がよいのか
わかりません。
そこで質問なんですが、皆さんはどんな環境がBESTだと
思いますか?
答えにくい質問ですみませんが、適当に教えて下さい。
あとは調べますんで、よろしくお願いします。
0903デフォルトの名無しさんNGNG
> そこで質問なんですが、皆さんはどんな環境がBESTだと
> 思いますか?

そんなもんない。スキル・要件・要求による。
0904デフォルトの名無しさんNGNG
とりあえず流行り物を選んでおけば、困った時に聞ける人が多い分楽そうな気がする。
「JDEE使ってるんですが・・・」といって質問するより
「エディタ+JDKでやってるんですが」とか「Eclipse使ってるんですが」の方が
答えてくれる人が多いと思う。
0905デフォルトの名無しさんNGNG
「スタートボタンを押したら音楽が鳴る」ということをしたいのですが、
うまくできません。
java.Applet.AudioClipをimportして、
AudioClip audを宣言。
initの中で
aud=getAudioClip(getDocumentBase(),"ongaku.au");
aud.play();  としてます。
コンパイル時にエラーは出ないのですが、
実際にボタンを押したときに固まってしまいます。
(コンソール画面に何かでてます)
初心者で見当違いのことをいってるかもしれませんが、
どうすれば音楽を鳴らせるのでしょうか?
よろしくお願いします。
0906デフォルトの名無しさんNGNG
"test"をtestではなくて"test"を文字列とし認識させることはできるのでしょうか?
String a = ""test""では当然無理なので。。よろしくお願いします。
0907デフォルトの名無しさんNGNG
String a = "\"test\""
0908デフォルトの名無しさんNGNG
>>906
String a = "\"test\"";
0909906NGNG
>>908
ありがとうございます。とても助かりました。
0910907NGNG
(;`Д´)・・・・・
0911デフォルトの名無しさんNGNG
>>910
アンカー付けておけばよかったなw
0912デフォルトの名無しさんNGNG
>>910
ハゲワロ
0913デフォルトの名無しさんNGNG
>>907
セミコロンがついてない。
0914デフォルトの名無しさんNGNG
蝉コロンで区切る
0915デフォルトの名無しさんNGNG
配列を動的確保したく、要素はchar型にしたいのですが、
java.util.Vector の addElement(java.lang.Object) は (char) に適用できません。
と表示されてしまいます。
これは、char型要素の場合は動的確保できないという意味なのでしょうか?
0916デフォルトの名無しさんNGNG
>>915
プリミティブ型の配列動的確保はできない
ラッパークラスでくるめ
0917デフォルトの名無しさんNGNG
>>916
でもJ2SE5だとすんなりとおるし
そのあとはなんか配列より遅いんですがとか出てきそうな予感

Java初心者にかかせてみたら予想通りというか
しらないうちにボクシングしていて低速動作したのみたもんでね
0918デフォルトの名無しさんNGNG
95%の場面でint[]とArrayList<Integer>の速度差は問題にならないだろう。
0919デフォルトの名無しさんNGNG
>>915
char c = 'A';
ArrayList<Character> list = new ArrayList<Character>(); list.add(c); //J2SE5

ArrayList list = new ArrayList(); list.add(new Character(c)); //J2SE1.4以前

Vectorは捨てろ
0920デフォルトの名無しさんNGNG
>>915
jakarta commons の primitives に
org.apache.commons.collections.primitives.ArrayCharList がある。

>>919
詳しい説明も無しに Vector 捨てろって言うのはやめろ。
0921デフォルトの名無しさんNGNG
無条件に捨ててもかまわない。
0922デフォルトの名無しさんNGNG
>>921に胴衣
0923デフォルトの名無しさんNGNG
Javaの質問というよりはEclipseの質問かもしれませんが…

*.javaの中でpublic定数の値として2byte文字を定義すると
Eclipseの「プロジェクト(&P)」→「JavaDocの生成(&G)」でJavaDocを生成した際に
「定数フィールド値」に表示される値が文字化けします。

例)"ホスト"を定数値として定義すると、
  JavaDocには"\u30db\u30b9\u30c8"と出力・表示される。

「JavaDocオプションの抽出」で-encodingオプションに"SJIS"を指定しても
("-encoding SJIS"←まんまを入力しました)
結果は変わりませんでした。

当方の環境は以下の通りです。
 ・WinXP Pro SP1
 ・Eclipse ver2.1.3
 ・SDK ver1.4.2_04
 ・「編集(&E)」→「エンコード(&N)」で確認した現在のエンコードは「MS932(デフォルト)」
 ・生成された*.javaの文字コードは「Shift-JIS」(秀丸で確認)
です。

対処方法をご存知の方がいらっしゃいましたら、ご教授願います。
0924デフォルトの名無しさんNGNG
この板を「Eclipse」で検索かけてごらん。うんこまみれ
0925デフォルトの名無しさんNGNG
turbine2.3をmavenでビルドできず困ってます。
README.txtを読んだら activation-1.0.2.jarとjavamail-1.3.1.jarとjdbc-2.0.jarと
jndi-1.2.1.jarをとってきて$MAVEN_HOME/repositoryにおきなさい、とあるんですが、そ
れをやってもビルドできません。

$ export MAVEN_HOME=/usr/java/maven-1.0.2
$ mkdir $MAVEN_HOME/repository
$ cp *.jar $MAVEN_HOME/repository
$ cd jakarta-turbine2.3/
$ maven

.....

Attempting to download activation-1.0.2.jar.
WARNING: Failed to download activation-1.0.2.jar.
Attempting to download javamail-1.3.1.jar.
WARNING: Failed to download javamail-1.3.1.jar.
Attempting to download jdbc-2.0.jar.
WARNING: Failed to download jdbc-2.0.jar.
Attempting to download jndi-1.2.1.jar.
WARNING: Failed to download jndi-1.2.1.jar.

*.jarはどこにおけばいいのでしょうか。ほんとに$MAVEN_HOME/repositoryなのか?$
HOME/.maven/repositoryではないのか?(でもここにコピーしてもだめだった)。
助けてえらいひと。
0926デフォルトの名無しさんNGNG
>>921-922
こーゆー奴らが費用対効果の薄いリファクタリングとかして悦に入るんだろうな。
0927デフォルトの名無しさんNGNG
>>926
ArrayListよりVectorを使った方が良い場面なんか既に存在しない。
お前みたいな奴がVectorは同期が云々とか言い出すんだろうなあ。
0928デフォルトの名無しさんNGNG
まぁふつうにつかってるよ

Swingでな

まぁJ2SE5でStringBufferつかってるのとおなじくらいあふぉなことだし
0929デフォルトの名無しさんNGNG
>>926は10年前冷凍睡眠に入り今年復活した人
0930デフォルトの名無しさんNGNG
printlnってなんてよむのでしょうか?
プリントルンって読んでいましたがいいのでしょうか?
0931デフォルトの名無しさんNGNG
プリントランだと思う
俺も聞いた事無いから知らないけど
0932デフォルトの名無しさんNGNG
Checkbox cbx1=new Checkbox("Chkbox1");
Checkbox cbx2=new Checkbox("Chkbox2");
Checkbox cbx3=new Checkbox("Chkbox3");
Checkbox cbx4=new Checkbox("Chkbox4");
int nbr1,nbr2,nbr3,nbr4;

public void itemStateChanged(ItemEvent e){
if(e.getItemSelectable()==cbx1) nbr=1;
if(e.getItemSelectable()==cbx2) nbr=2;
if(e.getItemSelectable()==cbx3) nbr=3;
       if(e.getItemSelectable()==cbx4) nbr=4;
}

このコードをfor文を使って書いたけどうまくいきません
どうすればいいでしょうか?

public void itemStateChanged(ItemEvent e){
       for(int i=1;i<5;i++){
if(e.getItemSelectable()==(cbx+toString(i)))nbr=i;
}
}
0933デフォルトの名無しさんNGNG
初心者ですが、今、思いっきり Vector を使ったコードを書いてて、最近のレスを見て
ビビってしまいました。
Vector の欠点を少し列挙してもらえないでしょうか。お願いします。
0934デフォルトの名無しさんNGNG
(1) 「Vectorは同期化されているからスレッドセーフだぜ!」というどうしようもない馬鹿の台詞を誤って信じてしまいがち。
(2) (1)によってスレッドセーフでない危険なコードを量産してしまいがち。
(3) メソッド名が長い・重複していて無駄。
(4) 古くてダサい。頭が悪そうに見える。
(5) ArrayListに対してメリットが無い。
(6) 原理的にArrayListよりも遅いことになっている。
0935デフォルトの名無しさんNGNG
(7) 全く無駄な同期処理(synchronized)がすべてのメソッドについてまわる。
0936初心者 ◆Java/isQ.c NGNG
>>930
私は print line の省略だと思っていたのでプリントラインと読んでます。
0937デフォルトの名無しさんNGNG
>>934 >>935
なるほど、ありがとうございました。書き換えます。
0938デフォルトの名無しさんNGNG
>>930
プリントラインの省略だから読み方はプリントイン
0939デフォルトの名無しさんNGNG
プリンティンでいいじゃない
0940デフォルトの名無しさんNGNG
Javaアプレットで使用されるJDKのバージョンって
何によって(どこの設定、定義で)決まるもんなんでしょうか?

JAVA_HOMEですかねぇ?

何が知りたいかというと、
HTMLごとに、異なるJDKを使用するアプレットって
作れるのかなと思ったので。。

すみませんが、よろしくおながいします。
0941初心者 ◆Java/isQ.c NGNG
>>940
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/plugin/developer_guide/version.html
0942930NGNG
ググって出てきたのが
ttp://www.google.co.jp/search?q=cache:XjKTeLTRozAJ:www.geocities.jp/web_binary/index14_001.html+%E3%83%97%E3%83%AA%E3%83%B3%E3%83%88%E3%83%AC%E3%83%B3&hl=ja
プリントレンでした
プリントラン
プリントイン
プリンティン
いろいろあるみたいなので自分の好きな読み方で良いような
気がしてきました。
お答え下さった方ありがとうございました
0943デフォルトの名無しさんNGNG
プリンティンはぐぐるといいぞ
0944デフォルトの名無しさんNGNG
ある周波数の音を発生させるにはどのように書けばいいですか?
(例えば20Hzの音とか、1000Hzの音とか)
サンプルでもいいので教えていただけるとありがたいです。
よろしくお願いします。
0945940NGNG
>>941

ありがとうございます!

ちょっと試してみようかと思ったのですが、、、
いまさら、JDK1.3系のJavaPluginって
どこかで落とせたりするんですかねぇ??
0946デフォルトの名無しさんNGNG
>>945
http://java.sun.com/products/archive/
0947デフォルトの名無しさんNGNG
Current
├MainClass
├Manifest.MF
├resource
├src
└pacages
:
└panels

のフォルダ構成を実行可能なJARにまとめようとしたんだけど、(Jarには出来るが)起動しない…
JavaでHelloWorldとかのを参考にしてみたりしたけどダメ
マニフェストの中のMain-Class: MainClassと指定してあるんですが…
※ java Main-Class では起動する Faild to load MainClassのエラーが出る

なーんか、初歩的なミスをしてそうで怖い…
入力したコマンドは
C:...\curent>で jar cvfm JarTest.jar Manifest.MF
なんですが…
どなたかミスの指摘をお願いします。
0948デフォルトの名無しさんNGNG
>>941 940が知りたいのは
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/plugin/developer_guide/using_tags.html
の内容だろうな。
0949デフォルトの名無しさんNGNG
commons-httpclient.jar
を使いたいのですが
javac Test.java
とやると
Test.java:1: パッケージ org.apache.commons.httpclient は存在しません。
というエラーがでます。
CLASSPATHの設定だと思うのですが
CLASSPATH .;
を設定しても上記のままです。
どうしたらよいでしょうか?
0950デフォルトの名無しさんNGNG
こんにちは。Javaのライブラリでftps(ftp secure)ってどこかで提供してるかな?
0951949NGNG
ひょっとして.jarはCLASSPATHに絶対パスで指定しないと
だめなの?
0952KTK.Sqrt♪NGNG
最近元氣ないSqrt君
0953デフォルトの名無しさんNGNG
>>951
ファイル名は書かないとダメだ
0954デフォルトの名無しさんNGNG
>>949
commons-httpclient.jarをどこに置いた?
それだとTest.javaと同じディレクトリに置かないといけないのでは?
0955949NGNG
>>953,954
なんとなくわかってきました。
set classpath=.;commons-httpclient.jar
とやってコンパイルしたら逝けました。トンクス
0956940NGNG
>>946

ありがとうございますた。
無事、落とせますた。

>>948

そうです!

一応、必要なネタは揃ったと思われるので
いろいろ試してみたいと思います。

また何か分からないことあったら
聞くかもしれませんが。。。(*´д`*)
0957初心者 ◆Java/isQ.c NGNG
>>948
そのようですね。ご指摘ありがとうございます。

>>956
微妙にズレた回答すみませんでした。
0958初心者NGNG
これからJAVAを始めたいのですが、どういった参考書を買えばよいのか迷っています。
どのような本がBESTなのか、できれば具体的に教えてください。
基本情報技術者試験午後問題の対策になるような本をお願いします。
0959デフォルトの名無しさんNGNG
Brows:KDDI-SA31 UP.Browser/6.2.0.7.3.129(GUI)MMP/2.0



0960デフォルトの名無しさんNGNG
基本情報技術者 Part88
http://school4.2ch.net/test/read.cgi/lic/1103553467/
0961初心者 ◆Java/isQ.c NGNG
>>958
少し前に私が調べてみた頃には、次の書籍が好評なようでした。
ttp://www.hyuki.com/jb/

基本情報処理技術者試験については次の各スレが参考になるかもしれません。
ttp://school4.2ch.net/test/read.cgi/lic/1103553467/
ttp://pc5.2ch.net/test/read.cgi/tech/1097165080/
0962940NGNG
>>957

いえいえ。
おしえていただいたリンクから、
自分が知りたかったこととか
辿れましたから。

助かりましたよ。

今後ともよろしくです。
0963デフォルトの名無しさんNGNG
あるメソッドの中に
synchronized(myvector){
//いろいろ
}
(ただしmyvectorはVectorクラスのインスタンス)

というコードがあったのですが、これって意味があるのでしょうか?
ArrayListのインスタンスなら同期化されないと聞くので、意味があると思うのですが、
Vectorクラスは同期化されると聞きます。

どうなんでしょうか?
0964デフォルトの名無しさんNGNG
一メソッドは同期化されてる
が、それが問題ないかというとそうでもない

せいぜいマルチスレッドによって違うデータを取得するということがなくなるという程度
スレッドが違うと同じ変数を使ったところでオブジェクトが一致しないということがあるからね

DBしっていてトランザクションがなぜ必要かとかその辺わからないと
実感はしにくいかもしれない
0965HttpClientの質問NGNG
Win32で、ある掲示板にログインし、書き込みを行う処理があります。
これを、Jakarta Commons HttpClientを使ってJavaに移植しようとしたところ、
ログイン処理は成功するものの、その後の書き込み処理で失敗します。

ログイン処理成功後、クッキーを表示すると、以下の4つのクッキーが表示されました。

Cookie[] cookies = client.getState().getCookies();
for(int i=0; i<cookies.length; i++) System.out.println(cookies[i]);

nhnuserml=...
CK%5FCS=hangame=...
hgDomain=hangame=...
login=hangame=...

しかし、この後client.executeMethod()で送信されるPOSTの内容をパケットモニタで見ると、
一つ(nhnuserml)しかクッキーが送信されていません。
(Win32の上手く動作している奴だと、4つ全て送信されてます)
原因としては、何が考えられるでしょうか? また、どのように対処するのでしょうか?

なお、サーバからのSet-Cookieのうち、nhnusermlはドメイン指定が
domain=.example.comとなっていますが、他の3つは、
domain=example.comとなっている点が引っかかっています。
しかし、だからどうする的な話が分かりません...。
0966965NGNG
補足です。

>この後client.executeMethod()で送信されるPOST

これは、ログイン後の書き込み処理に相当します。
POSTの結果、「まだログインしていません」という内容がサーバから返されます。
恐らくは、ログイン用クッキーが送信されていないため、
未ログインとみなされてしまうのではないか、と推測しています。
0967965NGNG
自己レスです。以下の二つの暫定対処をしたところ、書き込みに成功しました。

○その1:"example.com"となっているCookiを、強制的に".example.com"に変換。

Cookie[] cookies = client.getState().getCookies();

for(int i=0; i<cookies.length; i++) {
 Cookie c = cookies[i];
 String domain = c.getDomain();
 if(domain.charAt(0) == '.') continue;
 c.setDomain("." + domain);
}

これで、4つのクッキーが送信されるようになります。
本当は、もっとちゃんとした対処があるんだろうな...。

4つのクッキーが送信されるのですが、依然として「ログインされていない」と
判断されてしまいます。成功する場合は4つのCookieが一行で(セミコロンで区切って)
POSTヘッダに記述されるのに対し、この対処だと4つのCookieがそれぞれ1行ずつ、合計4行になります。
サーバ側ではこの形式の記述は対応していないのかな?

○その2:HttpClient#setStrictMode(true)にする。

念のためPostMethod#setStrictMode(true)も行っています。
HttpClientのソースを眺めたところ、HttpMethodBase#addCookieRequestHeaderで、
このフラグを見てCookieを各行に分けるか、一行で書くかの分岐をしていました。
このメソッドの意味は、あんまり分かっていません。

以上の対処で、正常に書き込みできました。
でも、きちんとした由緒正しい対処方法キボンヌ。
0968デフォルトの名無しさん 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);
}
}

実行結果**********************************

C:\java>javac FloatingPoint.java

C:\java>java FloatingPoint 21.6875
21.6875 = 1000001101011011000000000000000

*****************************************
↑
の下に、この場合、仮数の桁数は6です。と表示されるようにしたいわけです。
0969デフォルトの名無しさんNGNG
>>968
System.out.println("仮数の桁数は" + ((0 <= args[0].indexOf('e') ? args[0].indexOf('e') : args[0].length()) - (0 <= args[0].indexOf('.') ? 1 : 0) + "です。");
チェックしてないので間違ってるかも。
0970デフォルトの名無しさんNGNG
はじめまして。早速質問します。
JDKのインストールを行い、パスの指定を行ったのですが、
どうやってもうまくいきません。
Sunのチュートリアルを見る限り、PATHの行でbinの指定が2つあることが原因のようなのですが
このような場合はパスを具体的にどう指定すればよいのでしょうか。
ちなみに私のPCのAutoexecのPATH行には、
C:\PROGRA~1\Java\j2sdk1.5.0_01\binの前に
C:\Perl\bin\という他のbin指定があります。
0971デフォルトの名無しさんNGNG
Java初心者よりもWindows初心者が多いのは何とかならんのか
0972デフォルトの名無しさんNGNG
>>963
簡単な例をあげると、v が Vector だとして、

int i = myVector.size() - 1;

/* 他のスレッドが v.removeAllElements() を実行 */

System.out.println(myVector.elementAt(i)); // ArrayIndexOutOfBoundsException が起こる。

ここで Exception を避けたければ、この外側で synchronized(v) としなければならない。
ちなみに、こういう状況になったときに、確実に Exception が発生するのが広義のスレッドセーフ。
ArrayList では Exception が発生するかすら保証されない。
0973972NGNG
>>963
変な例になってしまった。すみません。もう一度。

int i = myVector.size() - 1;

/* 他のスレッドが myVector.removeAllElements() を実行 */

System.out.println(myVector.elementAt(i)); // ArrayIndexOutOfBoundsException が起こる。

です。
0974デフォルトの名無しさんNGNG
WinXP SP1で、j2sdk1.4.2_06をインストールしてコードを書いてみたんですが、
コンソールベースのHello Java!程度の簡単なコードは動くんですが、アプレットが動きません。

入門サイトのコンパイル済みアプレットは動作しますが、そのソースを自分の
PCでコンパイルしたものは灰色の画面がでるだけで動きません。
同じようにj2sdk1.4.2_06\demo\appletのコンパイル済みアプレットも動きません。

入門サイトをいくつか回りましたが、まったくお手上げです。
ヒントだけでももらえるとありがたいです。

//test.java
import java.applet.Applet;
import java.awt.Graphics;
public class test extends Applet{
public void paint(Graphics g){
g.drawString("This is test",5,5);
}
}

//test.html
<html><body>
<applet code="test.class" width="200" height="50"></applet>
</body></html>
0975デフォルトの名無しさんNGNG
多次元の配列を使用するとき、
hoge[][] = { {1,2,3},{4,5,6},{7,8} };
と書いてもしっかり
hoge[0][1] = 1;
hoge[0][2] = 2;
・・・
hoge[2][1] = 7;
と読んでくれるのはそういう仕様なのですか?
hoge[][]の左の[]を書いてないのでイマイチしっくりこないんですが。
0976デフォルトの名無しさんNGNG
仕様じゃなかったら何だと?
バグとでも?
0977974NGNG
うわぁぁぁぁぁ申し訳ありません。
>>42で解決しました。
>>31さんのはJDLだから関係ないと思いこんでたもので・・・ or2 スミマセンコノトオリデス

j2sdk1.4.2_06\demo\appletが動かないのも原因は同じなんでしょうね。
JavaWebStart専用なのかな?
0978デフォルトの名無しさんNGNG
JavaPluginがちゃんと動いてないんじゃないか。
0979デフォルトの名無しさんNGNG
>まぁJ2SE5でStringBufferつかってるのとおなじくらいあふぉなことだし
J2SE5だとなんか便利なのができたの?
0980デフォルトの名無しさんNGNG
>>979
java.lang.StringBuilder
0981デフォルトの名無しさんNGNG
質問です。

JNI で Java → C を呼びますが、

     C → Java を呼べると聞きました(正確にはメソッドの実行、変数やらが参照できる)

となると 双方向可能と受け取っていいのでしょうか?
0982デフォルトの名無しさんNGNG
こんにちは。
LinuxサーバサイドプログラムでWindowsのファイルをアップロードできるアップローダを作りたいのですが、
参考になるサイトってありませんか?
0983デフォルトの名無しさんNGNG
>>981
C->Javaは、VMを起動してその中で、メソッドの呼出やらなんやらができる。
http://java.sun.com/docs/books/tutorial/native1.1/invoking/invo.html

Java側のメソッドを直接何回もcallしたいとかでなければ、そんなに使い道はないと思う。
1回起動するだけなら、普通にjava.exeを起動したほうが楽だし。


>双方向可能と受け取っていいのでしょうか?
どういう意味であいまいだけど、
きっかけがCからなのか、Javaからなのかの違いだけ。
双方向通信するという意味ではないよ。
データを双方向でやりとりするだけなら、どっちかの方法使えばできる。
0984デフォルトの名無しさんNGNG
>>972
それは質問に答えているのか?
>>963は、それを分かった上で、意味あるのか?ときいているのでは?
(俺にも教えて)
0985デフォルトの名無しさんNGNG
>>963
myvectorはロックオブジェクトなだけで、
「myvectorをロックオブジェクトとして、//いろいろ の部分を同期化している」
と考える。
複数のスレッドがmyvectorを取り合って、myvecotrのロックを取得できた唯一のスレッドが
//いろいろ
の処理を実行できる。
だから、これがArrayListだろうが、同期化されているVectorかどうかは関係ない。

//いろいろで何をやっているかによるが、
その処理には、意味はあり、「Vectorだから不要?」ということにはならない。

であってますか?
0986デフォルトの名無しさんNGNG
>>985
たとえば完全なスタックとして使用するときのように、
特定用途なら Vector の syncronized されたメソッドだけで十分。

常に不要ではないが、不要な場合もある。
0987981NGNG
>>983さん
ありがとうございました。

>C->Javaは、VMを起動してその中で、メソッドの呼出やらなんやらができる。
なるほど。
最初からCのPGで動いているところにJavaのメソッドを直接できないということですね。
そうしたいならjava.exe を実行と。

>どういう意味であいまいだけど、
説明が足りませんでした。
とりあえず上の解答で心のモヤモヤは取れました。


ありがとうございました。
0988985NGNG
>>986
そういう意味で、
 >//いろいろで何をやっているかによるが、
と書いたんですが、言葉足らずでした。
0989tomNGNG
学校の課題Javaを使ってバイオリズムを表示するプログラムを作らないといけないんですけど
何をすればいいのかまったくわかりません。誰か助けてくださいm(T T)m
0990デフォルトの名無しさんNGNG
>>986
なるほど。
//いろいろ
で何やっているかによるんですね。

たとえばただ単に
myvector.add(new Object());
だけならあきらかにsynchronizedでくくる意味はない(Vector#add(Object)はsynchronizedメソッド)けども、

myvector.add(new Object());
myvector.add(new Object());
などと2回連続で呼び出す場合など、一回目のmyvector.add(new Object());と2回目のmyvector.add(new Object());の隙を突いて他のスレッドが
myvectorをいじる可能性がありsynchronizedでくくっていないとmyvectorの中身や順番が変わってきます。


ということでよろしいでしょうか?
0991デフォルトの名無しさんNGNG
>>989
宿題スレに行け
0992デフォルトの名無しさんNGNG
>>989
Math.sin(double)メソッドを使って三角関数の値を取得して
JFrameのインスタンスにpaint(Graphics g){g.drawLine(int,int,int,int)}をオーバーライドして結べばいい。
0993デフォルトの名無しさんNGNG
public synchronizedメソッドから呼ばれるprivateメソッド(使い道はそれだけ)にprivate syncronizedってやるのって意味ないですよね。
0994デフォルトの名無しさんNGNG
意味無いな
0995デフォルトの名無しさんNGNG
【初心者】Java質問・相談スレッド60【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1105691367/l50
0996デフォルトの名無しさんNGNG
>>989
public class Biorythm {
public static void main(java.lang.String args[]){
System.out.println("バイオリズム");
}
}
0997デフォルトの名無しさんNGNG
山田君、996のメモリ2枚持ってって。
0998デフォルトの名無しさんNGNG
埋める?
0999デフォルトの名無しさんNGNG
生め
1000デフォルトの名無しさんNGNG
1000取ったらJAVAの鬼と呼ばれるほどになるまで勉強する
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。