【初心者】Java質問・相談スレッド59【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
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デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG/ "~ ヽ、 `ゝ +
. ./ ,r彡" 、ノ彡' ヽミ`\ +
r、r.r 、 ソ/ノ ヽ `ゝ +
_ ,|_,| ノ ⌒ ⌒ヾ|ミヾ +
ノ ノノノノ--<-●>-,(-●>ミ ミ + 素敵な微笑とともに4様上陸!
ノ ノノノノ "" ) " ミ +
ノ .彡| | トーー/| | ミ
∧ | \ ..ヾ____/ ..|
|ノ \ \ "⌒ ノ\
ヽ 《 ..~ ー--/ /
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG_ /  ̄ <_
_>`´ >>4 __<_
> r‐'" ̄ ̄ ノ ̄ ̄`ヽ、―ニ 二
/ , | `ヽ/ ´`ヽ _ 三,:三ー二
 ̄/ | ノヽ--/ ̄ , ` ̄ ̄ ̄
/ /⌒ヽ,| ミ } ...| /!
レ l d _}`ー‐し'ゝL _
| ヽ、_, _,:ヘr--‐‐'´} ;ー------
|/| \ ノ`ヾ:::-‐'ーr‐'"==-
ヽ/l/|` ー------r‐'"  ̄ ̄
|└-- 、__/`\-:、
__,ゝ,,_____/ \_」 \
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNGあと、TMって上半分に打ち込むにはどうしたらいいですか?
IME使ってます
0009デフォルトの名無しさん
NGNG任意に作成したオリジナルのクラスをバイト配列からクラスオブジェクトを生成したり、
インスタンスを戻り値に返したりとか。
どこの板でも「使う意味ない」とか、「Javaで出来るんだからJNIでも出来るはず」
などはぐらかされてばかりなんです。
正しい実装方法知ってる人いますか?
出来ればソースレベルで説明できて、実際に試したことある人が
ありがたいです。
というか、↑の質問に暗号ってどこに書いてある?
あと試してもいないのにと思っているが、
試してだめだって、atmarkitにも記載されてある。
もっち良心的にになろうよ。あげあしとるのもほどほどに。
0010デフォルトの名無しさん
NGNG例えばDiceというクラスを作った場合、
staticメソッドでshake(int facet)を呼んで値を取得することもできますし、
Dice(int facet)コンストラクタを使ってオブジェクトを生成したのち、
dice.shake()として値を取得することも出来ます。
どっちが良いのでしょうか・・・?
0011初心者 ◆Java/isQ.c
NGNGTM は trademark のこと。日本語で言うと商標とか。
上半分に打ち込む方法はソフトウェアごとにそれぞれ。
いずれも Java に関する質問では無いような気がします。
0012デフォルトの名無しさん
NGNG>JavaTMプログラムのTMってどういう意味ですか?
Trademark; 商標
>あと、TMって上半分に打ち込むにはどうしたらいいですか?
™ ™
0013デフォルトの名無しさん
NGNG有難うございます
>™ ™
ごめんなさい、意味が解らないです
コピペしたら変わってるし(´・ω・`)
ソフトによって変わるというのはこの事だと思うのですが
どうしたらいいんですか?
OpenJane使ってます
これが解ったら去ります
0014デフォルトの名無しさん
NGNG「商標」については国語辞書引けば普通に見つかるので調べて。
ウェブで上付の「TM」を表示したいならアンパサンドtradeセミコロンを入力しろということ。
「実体参照」というものだが、これは国語辞書では出てこないのでGoogleで調べて。
ところでJ2SE5.0を利用できる開発環境って何になるでしょうか。
Eclipseは未対応ですが、他環境ではどうなのでしょう?
0015デフォルトの名無しさん
NGNGhttp://www.google.com/search?hl=ja&lr=lang_ja&ie=sjis&q=%93%C1%8E%EA%95%B6%8E%9A
0016デフォルトの名無しさん
NGNGどっちかっつうとこの世から去って
0017デフォルトの名無しさん
NGNGその例なら、現実のDiceを考えればfacetはDiceの属性なんだから、Dice(int facet)コンストラクタが正解。
staticで用意するにしてもあくまでそれはユーティリティメソッドであって
内部で return new Dice(facet).shake(); するだけ。
・・・shakeってのが激しく気持ち悪いが
0019デフォルトの名無しさん
NGNGEclipse3.1 M4
0021デフォルトの名無しさん
NGNGpublic 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デフォルトの名無しさん
NGNGarray 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デフォルトの名無しさん
NGNGJBuilderの新しい奴も5.0対応してる
0024デフォルトの名無しさん
NGNGNetbeans 4.0
0025デフォルトの名無しさん
NGNGまあ配列アクセス時の(内部的な)添字チェックのせいだろうな。
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普通にコンパイル通るよ、なんか環境壊れてない?
002826
NGNGそうですよね
エラーメッセージすら変わらない時点で
何かがおかしいと思ってたんだけどその何かがわからん
環境変数もしっかりやったし何故だろうか
もう一度ダウンロードからし直すかな('A`)
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNGパスの通っているどこかにStringという名前のクラスがあるんだと思います。
とりあえずそれを消しましょう。
0031デフォルトの名無しさん
NGNG1.5にしてからアプレットを作るとIEで表示されなくなりました左下にload class not foundとでる
(1.3でコンパイルしたときは表示されました)
アプレットビューワーを使うと表示できました
そのためHTML CONVERTERをインストールして使用してみたのですが
左上に変なマークがでてそれが消えるとアプレットがインストールする部分がなくなってしまいました
簡単に言うとHTMLの背景一色になってしまいます
これ何が悪いのでしょうか?
どうしたらアプレットを表示できるようになるか分かる方いたらお願いします
0032デフォルトの名無しさん
NGNG003331
NGNGタイプミスすみません
0034初心者 ◆Java/isQ.c
NGNGString を java.lang.String に書き換えてみては?
もし String という名前のクラスを自作したことがあれば、
java.lang.String でなく、そちらを参照している可能性が。
0035初心者 ◆Java/isQ.c
NGNGPATH ではなく CLASSPATH ですよね?
CLASSPATHに含まれる String クラスを消さなくても、
>>29 の対応で良いかと思いますが、いかがでしょう?
0036デフォルトの名無しさん
NGNG1.3でもターゲットかえないとダメだよ
たまたま動いていたに過ぎない
たぶん5.0で問題でたということはStringBuilderまわりかな
003731
NGNGimport 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開発環境を教えてください。
JBuilderなどのIDEの前バージョンを使ってると、IDEのコンパイラと
JDK1.5の環境の不整合が出るケースがあり
"xxx" + text + "xxxx" の様な文字列連結式を使うとエラーが出ます。
0039デフォルトの名無しさん
NGNG全てのjava.lang.Stringを完全限定名で指定しなければならなくなりますよ。
せめてパッケージに入れるべきでは。
0040デフォルトの名無しさん
NGNGString B="ABCDEFGHIJ";
main(){
start();
System.out.print(B);
}
run() {
System.out.print(A);
}
これ実行したら
>>012345AB678C9
たまにこんなふうに出力されるでしょうがどうやって対処できますか?
0041デフォルトの名無しさん
NGNGSystem.out.print(B); のまえに、スタートしたスレッドに対してjoin()を呼び出す。
0042デフォルトの名無しさん
NGNGjavac -target 1.1 HelloApplet.java
1.4ではデフォルトターゲットが1.2に、1.5ではデフォルトターゲットが1.5に
変わったから-targetオプションなしではMS-JVM(1.1.4)環境で動くクラスファイルが生成されない。
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNGご回答ありがとうございます。納得しました。
自分の場合、言語の処理系を開発していた際、その中で String や Integer など、
java.lang パッケージ内のクラスと名前が被るクラスを作る機会があったため、
その後、java.lang.String などと完全限定名で指定する癖がついていました。
このため、特に面倒には感じなかったのですが、
普通に考えると、完全限定名の使用は面倒かもしれませんね。
0046デフォルトの名無しさん
NGNGJNDIを利用してコネクションを取得するのだが、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デフォルトの名無しさん
NGNGDataSource 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>>46
NGNGuserid1;usermail1;
userid2;usermail1;
・
・
・
という形で書いていけたらいいと思うのだが…
よろしくお願いします
0049デフォルトの名無しさん
NGNGいってきまふ…
失礼しました。
005031
NGNGなんとなく言いたいことは分かりました。
しかし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デフォルトの名無しさん
NGNGXML文書のパースしたいのなら、XMLパーサ使った方が簡単だと思う。
0053デフォルトの名無しさん
NGNGそれなら javac -target 1.1 -source 1.1 HelloApplet.java
0054デフォルトの名無しさん
NGNG.には"も含まれるから。
せめて
Pattern p = Pattern.compile("<TAG bar=\"([^"])\"\\s+aho=\"([^"]*)\">([^<]*)</TAG>");
ぐらいしとけ
005531
NGNGjavac -target 1.1 -source 1.1 HelloApplet.java
だと1.1は向こうなソースバージョンです。って出てしまったので
javac -target 1.1 -source 1.2 HelloApplet.java
にしてみたらうまくできました
いろいろありがとうございました
0056デフォルトの名無しさん
NGNGWin32ネイティブのデスクトップアプリケーションの場合、
アプリケーションのユーザー設定を、iniファイルやWindows Registryに
記録するのが一般的だと思いますが、JAVAのデスクトップアプリケー
ションの場合、一般的にはどのような方法で設定を記録するのでしょうか?
0057デフォルトの名無しさん
NGNGアプリならご自由に、としかいえんが
それは人それぞれの考え方だし
Linux等へ持っていくことを考えればXMLかなんかのファイルで最初から扱ったほうが楽だろうね
Preferencesはそれなりに使いやすいし、プラットフォームを変えるためのロード命令とか
準備はされているんだけれども・・・
0058デフォルトの名無しさん
NGNG空文字かどうかを判定するのに
equals("")を使うのとlength()==0を使うのって
どっちがいいんですか?好みの問題ですか?
0059デフォルトの名無しさん
NGNGXMLパーサ弄ってます
なんかよく分かんないっすね
0060デフォルトの名無しさん
NGNGとりあえず、Preferencesを使ってみようと思います。
回答ありがとう。
0061デフォルトの名無しさん
NGNGString str が空文字列かを調べるとき
str が null になることがないなら str.equals("") でも str.length()==0 でも
(さらには "".equals(str) でも) 好みの問題。
str が null になることがあるなら "".equals(str) 一択。
0062デフォルトの名無しさん
NGNGlength()==0が一番良い。
>str が null になることがあるなら "".equals(str) 一択。
これは、「strがnullでない」かつ「strの内容が""である」ことを示すだけだから
ほとんど役に立たない。
0063デフォルトの名無しさん
NGNGlength() < 1 だろ。
0064デフォルトの名無しさん
NGNGstrがnullだとstr.length()でぬるぽ。
それがいやだから"".equals(str)なんだと思うが
0065デフォルトの名無しさん
NGNGjava.sql.*で
スキーマが分かっていて
その全テーブル名を取得したのですが、
どうすればいいのですか?
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNGDBに依存しないのは無理。
0069デフォルトの名無しさん
NGNG使用するJDBCドライバが対応しているのなら、
DatabaseMetaData#getTables(String,String,String,String[])
でできる。
JDBCドライバの実装に依存するが、一応これがJDBC標準の方法。
0070デフォルトの名無しさん
NGNG上記の問題でプログラムソースをお願いします。
0071デフォルトの名無しさん
NGNGスレ違い。
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とれるのはあくまでJavaの型であってDB依存部分はとれないだろうがな。
0074デフォルトの名無しさん
NGNGできるならやり方を教えてください
いろいろなプログラムを見て勉強したいんですが
class(完成したもの)しかない場合が多いのでお願いします
0075初心者 ◆Java/isQ.c
NGNGttp://www.cipher.is.tsukuba.ac.jp/~kana/research/java_reverse/decompiler.htm
0076デフォルトの名無しさん
NGNG"".equals(str)の後にstrがnullかどうかのチェックはしないのか?
するんだったらここでnullチェックをしない意味が無い。
しないんだったら常にNullPointerExceptionの可能性がある。
strがnullになり得ないのならstr.length()==0で十分。
結局同じこと
0077デフォルトの名無しさん
NGNGequalsにnull渡してもぬるぽしねーよ。
0078デフォルトの名無しさん
NGNGTomcat5.0動かそうとしてるんですが、どうにも動かないんです。
こういうときってどこで聞けば良いんでしょう?
OSはWinXP SDKは、1.42_06です
0079デフォルトの名無しさん
NGNGこんばんは、Smith君
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNGv.add("Hello");
v.add("Hello2");
v.add("Hello2");
System.out.println(v.capacity());
コレ出力したら4になりました!!
最初からなにか入ってるんですか?
0083デフォルトの名無しさん
NGNGTom君が5.0ならCATALINA_HOMEじゃないの?
0084デフォルトの名無しさん
NGNG要素数を知りたいなら、size()。
capacity の仕組みを知りたいなら、Javadoc 読め。
008510
NGNGついでにstaticメソッドでDiceを振ることもできるようにしてみたのだけど、
これがどうも芳しくなかったりします。
シードをミリ秒時刻で初期化しているため、サブミリ秒オーダーで
乱数が生成されると同じ値が連続してしまう。
シードを設定せずにRandomオブジェクトを作れば
毎回違う値が出るんですが、
これって何を種にしてるんでしょう? JavaDocの説明を読んでもよくわからない・・・
0086デフォルトの名無しさん
NGNGシードを設定をループの外へ
008710=85
NGNGコンストラクタでシードを初期化している。
↓
staticメソッド(サイコロを振る)はコンストラクタを呼ぶ
↓
staticメソッドを高速で呼ぶと同じ数値が並ぶ
というオチなのです。
結局、staticメソッドは高速で呼ばないようにするか、
そもそも用意しないでオブジェクトを作らせるか、
というふうにすべきなのでしょうね。
0088デフォルトの名無しさん
NGNGすべてを知るGodクラスを作って、すべてのDiceは単一のGodへの参照を持つ形にする。
実際の値を生成するのはGod
public class God {
public Dice createDice(int facet) {
return new Dice(this, facet);
}
}
008988
NGNG参照を持つのが嫌ならseed値を与えるだけのクラスとかもアリだし、
Diceだけで完結させるなら
class Dice {
&nbps;private static int getNextSeed(){...}
}
とかもあり。
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNGよく読め。equals()の後の話
0092デフォルトの名無しさん
NGNG>だから str.length() < 1 だって言ってるだろ
このトンヌラ
0093デフォルトの名無しさん
NGNG1.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デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNGhttp://java.sun.com/j2se/1.5.0/ja/download.html
0097デフォルトの名無しさん
NGNG安定感とかどうでしょう?
すでに、使われている方いかがでしょうか?
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNG>このトンヌラ
ワラタ
0100デフォルトの名無しさん
NGNG何台ついてるかとか、解像度はどうかとか、別のモニタにもっていくとか
0101デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています