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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
さーじゃんじゃん質問しよう。
お前らとりあえずがんがってください
そして誰か教えてください。

関連スレ
初心者無視! Java相談室 その9
http://pc.2ch.net/test/read.cgi/tech/1021555964/
調べようとする優秀な奴は↑へどうぞ。

0577デフォルトの名無しさんNGNG
>>576
普通全角スペース入れないか?
public static void main(String[] args){
 System.out.println("HOI");
}

コピペする場合は
 全角スペース -> TAB
 全角スペース -> 8個のスペース
 (スペースの個数はお好みでどーぞ)
で置換するとかで。
0578デフォルトの名無しさんNGNG
Java アプレットの上にマウスカーソルがあるとき
カーソルのアイコンを自分の作成したアイコンに変更できますか?
0579デフォルトの名無しさんNGNG
j2sdk1.4
jikes1.15
この環境でjikesでコンパイルしようとすると
jarファイルが不正ですみたいなエラーが出る。
これは設定がおかしいの?
もしかして今のjikesだとj2sdk1.4はコンパイルできない?
0580HOENGNG
>>577
そらそうだよね^^; 
0581デフォルトの名無しさんNGNG
>578
Component.setCursor(Cursor)かな?
JDK1.1で使えるかは知らないけど

>579
rt.jarにクラスパス通ってる?
0582デフォルトの名無しさんNGNG
>>575
おいらも
きよつけよ〜っと
0583デフォルトの名無しさんNGNG
つまらん
0584デフォルトの名無しさん NGNG
pocketpcで動くpersonal Javaアプリを作りたいのですけど、
personal Javaについてのお勧め日本語サイトはあるでしょうか?
0585デフォルトの名無しさんNGNG
カタカナの単語をアイウエオ順に並べたいんですけど
どうやったらいいんでしょうか?
アイデアだけでよいので。。。
0586デフォルトの名無しさんNGNG
>>585
Arrays.sort(Object[] array, java.util.Comparetor c)
0587デフォルトの名無しさんNGNG
×Comparetor -> ○Comparator
0588デフォルトの名無しさんNGNG
比較は、多分 stringA.compre(stringB) でイケルと思うけど…
全角カタカナと半角カタカナ混じってなければ…
あ、濁点付きのカタカナとか半濁音符付きカタカナって
どーなってたかな…
0589デフォルトの名無しさんNGNG
また間違った…
stringA.compre(stringB) -> stringA.compareTo(stringB)
0590デフォルトの名無しさんNGNG
おちけつ!!
0591DQNNGNG
http://www.miraihakusho.jp/reo/
0592デフォルトの名無しさんNGNG
今日Java始めたんだが、JavaってVBでいうelseifみたいのはないの?
if … {
 …;
} else {
  if … {
   …;
  } else {
   …;
  }
}

こういうのしか無理?
0593デフォルトの名無しさんNGNG
if(…) {

}
else if(…) {

}
else {

}
とすれば擬似的にelseifを表現できる。
0594デフォルトの名無しさんNGNG
擬似的?
0595デフォルトの名無しさんNGNG
みなさん、開発ソフトは何でしょう?
某ファンなんでJBuilderを買おうかと思うんですけど、マイナーでしょうか?
メジャーは何でしょう?
0596デフォルトの名無しさんNGNG
>>595
上の方を読め・・・
0597デフォルトの名無しさんNGNG
ほらネタスレだから。。
0598デフォルトの名無しさんNGNG
>>593
そういう書き方もできるんだ。
ObjectPascalのelse ifみたいなものだね。
ありがと。

>>595
ちなみに漏れはSDK。
コンソールでちょっと作れるようになったら、JBuilderにするつもりですよ。
0599デフォルトの名無しさんNGNG
SDKっつーか、JDKだと思うけど、どうなんだろ?

あと、JDKとかって開発ソフトっていうのか?
使用しているエディタのほうがそれに近いと思うんだけど
0600デフォルトの名無しさんNGNG
それはちがう
0601デフォルトの名無しさんNGNG
俺は Eclipse だ。もう JDK + エディタには戻れん。
0602デフォルトの名無しさんNGNG
Eclipseって何すか?
0603デフォルトの名無しさんNGNG
>>602
http://www.eclipse.org/
0604デフォルトの名無しさんNGNG
Eclipseって辞書索くと
eatと同じ意味みたいだな
0605?NGNG
JAVA+UNIXでJAVAからシェルのコマンドを実行してその戻り値を取りたいのですが。
どうしたら出来ますかね?教えてください。
0606デフォルトの名無しさんNGNG
java class < shell.sh
で出来ないかね?
0607デフォルトの名無しさんNGNG
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Runtime.html#exec(java.lang.String[], java.lang.String[], java.io.File)
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Process.html#exitValue()
0608607NGNG
しまった、コピペ中に書き込んでしまった。
やる気なくした... 寝よ。
0609605NGNG
>>606
それは、シェルからJAVAを呼んでいませんか?
JAVAのクラスのコードの中でシェルをコールしたあげたいんです。

Perlとかだとsystemコマンドとか。
VBとかだったら、COMのオブジェクト作ってexecuteとか?できたような。

そんなのを求めているのですが。どうでしょう。
0610605NGNG
それです!!
ども、ありがとございます。

0611デフォルトの名無しさんNGNG
>>605
607が途中まで答を書き込んでいるんだよね。
0612デフォルトの名無しさんNGNG
サーバーサイドJAVAをやろうとTOMCATを入れようとしているのですが、
DOS窓で「startup.bat」を実行しても、新しい窓が一瞬で閉じてしまいます。
JAVA_HOMEやTOMCAT_HOMEなどの環境設定はしてあります。ブラウザに
http://localhost:8080/と打っても猫の画面まで逝けません。
どなたかご教授お願いします。
0613デフォルトの名無しさんNGNG
Tomcat のバージョンは?
0614612 ◆h.mc2Fv. NGNG
>>613
jakarta-tomcat-3.2.3
です
0615デフォルトの名無しさんNGNG
何だろ?
環境変数を 8.3 で書いてないとかかな。
0616612 ◆h.mc2Fv. NGNG
>>615
「環境変数を8.3」とはどうゆうことでしょうか??(汗
0617デフォルトの名無しさんNGNG
>>616
同じ現象で悩んだような気がする。
PATH or CLASSPATH の設定ミスだったような。。。
0618ma,NGNG
>>616
ファイル名.拡張子
0619612 ◆h.mc2Fv. NGNG
PATH     %JAVA_HOME%\bin;%PATH%
JAVA_HOME  c:\jdk1.3.1
TOMCAT_HOME c:\jakarta-tomcat-3.2.3
CLASSPATH  c:\jakarta-tomcat-3.2.3\lib\ant.jar;
       c:\jakarta-tomcat-3.2.3\lib\jasper.jar;
c:\jakarta-tomcat-3.2.3\lib\jaxp.jar;
c:\jakarta-tomcat-3.2.3\lib\parser.jar;
c:\jakarta-tomcat-3.2.3\lib\servlet.jar;
c:\jakarta-tomcat-3.2.3\lib\webserver.jar;
c:\jdk1.3.1\lib\dt.jar;
c:\jdk1.3.1\lib\htmlconverter.jar;
c:\jdk1.3.1\lib\tools.jar

以上を、Administratorのユーザー環境変数の所に設定してあります。
0620デフォルトの名無しさんNGNG
c:\jakart~1.3

みたいな書き方で書いたらどうかな?
0621612 ◆h.mc2Fv. NGNG
>>620
すいません、言ってる意味が私には理解できません。
もう少しわかり易くご説明願えないでしょうか?;
0622デフォルトの名無しさんNGNG
つまり DOS の 8.3 のファイル(ディレクトリ)形式で書くわけだ。

 dir /x

で確認できる。
0623デフォルトの名無しさんNGNG
tomcatよく知らんけど、あんなにCLASSPATHを設定せにゃならんもんなの?
0624デフォルトの名無しさんNGNG
必要なし。
0625612 ◆h.mc2Fv. NGNG
はい、確かに必要ないと思います。
どうやれば動くのかわからずに足して逝っただけです。
ちなみに言い忘れていましたが当方Windows2000の環境です。
0626デフォルトの名無しさんNGNG
漏れのマシンにはJavaプラグインの1.3.1と1.4の両方が入ってるんだけど
(コントロールパネルに両方のバージョンのがある)、
アプレット立ち上げると、プラグインの1.3.1で起動します。
どっちのバージョンで立ち上がるかってのはどーやって決まるんでしょうか。
0627612 ◆h.mc2Fv. NGNG
できました!
TOMCATのzipファイルをLhaplusではなく、
Lhacaで解凍したらできました。
・・・・・・・お騒がせしました・・・・・ペコリ
0628デフォルトの名無しさんNGNG
>>627
なんだそりゃ。
0629デフォルトの名無しさんNGNG
>>627
どうして、その行為に出たのかの経緯が知りたい。
0630お願いします!NGNG
誰か>>448 のソース上げていただけませんか?
StringTokenizerを使うのはわかっているんですが、動くものを書くことが
できません。勉強不足は承知の上です。
優しい方お願いします。
0631デフォルトの名無しさんNGNG
初心者すぎて誰も相手にしてくれないか・・・悲しい
0632デフォルトの名無しさんNGNG
>>630
まだいますか?
0633デフォルトの名無しさんNGNG
>>630
すみません、>448を見て思ったんですけど
コマンドラインから入力し、なにかを表示させたあと
コマンドラインにまた数値を入れる方法ってどうするんですか?
0634633NGNG
>> 630
ってのは気にしないでください
まちがえた
0635630NGNG
はい、います・・・
中学生ができた問題を3日考えてもできないので、
恥を忍んで書き込みしました。放置プレーされるほどレベル低いのかと落ち込んでいました。
レスありがとう
0636デフォルトの名無しさんNGNG
>>635
おれも初心者でここで昨日やり方聞いたんだけど
>>558さんが教えてくれたやり方じゃ駄目なの?
0637デフォルトの名無しさんNGNG
>>636
問題はエラー処理と一番最初の入力項目を増やした時なんです。
項目3つだとIF文繋げて強引にできるのですが、スマートで汎用性のある処理にしたいのです。
0638デフォルトの名無しさんNGNG
>>633
その辺のことは、データの入出力に関することだから、
ストリームの勉強を一通りすべし。

一応 double 型の返り値を生成するメソッドを載せるので参考までに。
多分、動く・・・ハズ。

double inputNumber(){
 double number;
 BufferedReader keyin = new BufferedReader(new InputStreamReader(System.in));
 System.out.flush();
 try{
  String str = keyin.readLine();
  double number = new Double(str).doubleValue();
 }catch(IOException e){
  System.out.println(e);
 }
 return number;
}
0639デフォルトの名無しさんNGNG
>>638
サンクス。いまからもう一度ストリーム関係
勉強しなおしてきます。
0640638NGNG
>>633
ちゃんと前レス読んでなかったが、改めて読んでみたら、
この場合は別に数値化しなくても、
Stringクラスのままで、equalメソッドを使った方が簡単。

>>630
せっかく途中までやったのなら、未完成でも自分で考えたのを晒した方が良いよ。
どうせ恥じかくのは一緒なんだから。
0641558NGNG
今なら私が教えてあげる特典つき。
0642デフォルトの名無しさんNGNG
import java.io.IOException;
import java.util.NoSuchElementException;
import java.util.StringTokenizer;

public class StringTokenizerSample {

public static void main( String[] args ) {

String message = new String( "おはよう/こんにちは/こんばんわ" );
byte[] inputBytes = new byte[1];
StringTokenizer tokenizer = new StringTokenizer( message , "/" );

System.out.println( message );
System.out.println( "どの部分を表示するか選んでください(1-3)" );
try {
System.in.read( inputBytes );
}
catch( IOException e ) {
System.out.println( e.getMessage() );
System.exit( 1 );
}
String inputString = new String( inputBytes );
int inputValue = 0;
try {
inputValue = Integer.decode( inputString ).intValue();
}
catch( NumberFormatException e ) {
System.out.println( e.getMessage() );
System.exit( 1 );
}

String outputValue;
try {
for( int i = 1; true; i++ ) {
outputValue = tokenizer.nextToken();
if( i == inputValue ) {
System.out.println( outputValue );
}
}
}
catch( NoSuchElementException e ) {
}

System.exit( 0 );
}
}
0643642NGNG
とりあえず書いてみた
これで一応動く
0644558NGNG
とはいったものの、これをどうしろって・・・。

まあ、いま一生懸命みてますよ。みてますとも。(笑)>>642
0645558NGNG
まず、これは非常に良くないです。

String message = new String( "おはよう/こんにちは/こんばんわ" );

こう書くべきです。

String message = "おはよう/こんにちは/こんばんわ";

理由は、

http://java-house.jp/ml/

この辺とかから自力で探してね。
0646デフォルトの名無しさんNGNG
>>643
まじすげえよ。あなたおれのなかじゃ神だ。
おれもくれくらい出来るまで頑張ろうと思う
きっかけになったありがとう。
0647642NGNG
>すでに別のメールで説明したように,new String("wahaha") というコンスト
>ラクタの役目を一口で言えば,「intern()の逆操作」であるからです.
>
>つまり,前者は,intern済のものを,未internに戻してから,再びinternする
>という,論理的に意味がない操作をおこなっています.意味があるとしたら,
>その副作用に基づく,GCシステムに対する負荷試験ぐらいでしょうね.
>
>しかし,後者はこれだけなら論理的に矛盾のないコードです.

ってとこだね。なるほど。勉強になったよ

なんとなく、コンストラクタを呼んだ方がいかにもnewしてるって感じで
そっちのほうがいいかなと思ってやっただけでした。
0648デフォルトの名無しさんNGNG
ちょっとまって
>630=>642
なの?
0649642NGNG
いや、漏れは>630の参考になればと思って書いただけです。
っていうか、書いてる間に>632-641くらい進んでてビクーリ
0650558NGNG
あと、カウンタとか、個数とか、そういう数を表す場合は、int を使うのが普通だと思います。
0651642NGNG
???
それはどこのこと?
0652558NGNG
なんでbyteが出てきたのかがよくわからなかったです。
0653デフォルトの名無しさんNGNG
import java.io.*;
import java.util.*;
public class StringTokenizerSample {
  static BufferedReader keyin;
  static int inputNumber(){
    int number = 0;
    if (keyin == null) {
      keyin = new BufferedReader(new InputStreamReader(System.in));
    }
    String str = null;
    boolean valid;
    do {
      valid = true;
      try{
        str = keyin.readLine();
      }catch(IOException e){
        e.printStackTrace();
        System.exit(1);
      }
      try {
        number = Integer.parseInt(str);
      } catch (NumberFormatException e) {
        System.out.println("正の整数を入力してください");
        valid = false;
      }
    } while (!valid);
    return number;
  }
  public static void main( String[] args ) {
    String message = "おはよう/こんにちは/こんばんわ";
    StringTokenizer tokenizer = new StringTokenizer( message , "/" );
    String[] messages = new String[3];
    int idx = 0;
    while (tokenizer.hasMoreTokens()) {
      messages[idx++] = tokenizer.nextToken();
    }
    System.out.println( message );
    System.out.println( "どの部分を表示するか選んでください(1-3)" );
    int inputNumber = inputNumber();
    inputNumber--;
    try {
      System.out.println(messages[inputNumber]);
    } catch(IndexOutOfBoundsException e ) {
      System.out.println("それは無いよ");
    }
  }
}
0654642NGNG
InputStreamで読み込むにはbyte配列以外は無理だと思ったから。
もしかすると漏れの知らない方法があるのかもしれないけど、
少なくともInputStreamにはそういうメソッドはないっぽい。
0655558NGNG
とりあえず今日はここまで。

何をやっているのかじっくり解析して、コメントとかをかくとよいかも。
がんばればもっときれいになる。ほんとうは、

 String message = "おはよう/こんにちは/こんばんわ";

の部分を変更して、もっと種類を増やしたりしたときに、
ソースコード中に直に書かれてしまっている 3 という数を、
(こういうのを「マジックナンバー」と言う)
書き直さなきゃならない、と言う部分も、直したいところ。

そのためには、文字列をばらした後で、いったん Vector とか、
ArrayListなんかに入れてやって、要素数を取得して、
その大きさを配列のサイズにしたり、

 どの部分を表示するか選んでください(1-3)

の表示に使ったりする。

とにかく、いろんな(まともな)人のソースを読むよろし。
がんば。
0656デフォルトの名無しさんNGNG
あ、そうか。
最初の文字列をだーっと1文字ずつスキャンして、'/' が
出てきた回数+1が、要素の数かぁ。。。

という手もあるなぁ。
0657642NGNG
つーか、漏れは別にレクチュアしてもらいたいわけではなく・・・
割と適当に書いたコードなんでツッコミどころはあるだろうけど、
それより>630が理解できたかどうかのほうが問題だと思う。

あと、InputStreamから値を読み込むときにbyte配列を使うのは
常套手段だと思うので知っとかないとマズイと思うよ
0658540 == 555NGNG
思いっきり、遅レスで、すまそ。

>>563
さんきゅー。解凍できた。
なんか、MFCで苦闘していた日々を思い出しながら、ソースながめてみた。

>>556
うーん、そういうことなら、結局、closeの前にflushはいらないということだよね。
closeのコード内でフラッシュしてるので。
とにかく、勉強になった。ありがとう。
0659630NGNG
レス遅れてすみませんです。
枕を涙で濡らして寝ていました・・・
相当勉強になりました。本当にありがとうございます。
これからも宜しくお願いします!!
0660HOENGNG

久しぶりの良スレの予感・・・
ガンバロウ!
0661デフォルトの名無しさんNGNG
StringTokenizer tokenizer = new StringTokenizer( message , "/" );
String[] messages = new String[tokenizer.countTokens()];
0662あのうNGNG
drawStringのときとSystem.outo.printlnを使って文字や変数を表示するときに
小数点以下2桁まで表示させるときにはどうすればいいんですか?
0663デフォルトの名無しさんNGNG
>>152
>>156

doSort() の実装の中で、ソートしたあとに、ソート済みの情報で、
super.sort(情報) してしまえば、metrix はクリアされちゃうし・・・。
doSort() の2回目の呼び出しは、黙って return してしまえ。
これで、0回の probe, compare, swap で、ソート可能。(笑)
0664デフォルトの名無しさんNGNG
>>662
java.text.DecimalFormatを使えば?
0665デフォルトの名無しさんNGNG
package abc;
public abstract class A{
...
}

____________________________

package abc;
public abstract class B{
public final A method(..){
...
}
}

のようなプログラムでA.javaはコンパイルできたのですが
B.javaをコンパイルしようとすると、
クラスabc.Aが見つかりませんといわれてしまいました。
で、両方とものソースのパッケージ宣言を外して再度コンパイルすると、
エラーは出ませんでした。
僕のパッケージ宣言の仕方がまずいのでしょうか?
0666デフォルトの名無しさんNGNG
>>665
作業ディレクトリに問題があるかも
0667デフォルトの名無しさんNGNG
>>666
即レスどうもありがとうございます。
問題があるとは具体的には、どう直したらいいんでしょうか?
0668デフォルトの名無しさんNGNG
>>667

# pwd
/home/2ch

# ls
abc test.java test.class

# javac abc/A.java
って感じか?

0669デフォルトの名無しさんNGNG
C:\foo> mkdir abc
C:\foo> move A.java abc
C:\foo> move B.java abc
C:\foo> javac abc\A.java
C:\foo> javac abc\B.java
0670デフォルトの名無しさんNGNG
>>668
>>669
Windowsなので>>669のようにやってみました。
ディレクトリ作成までは出来たのですが、moveコマンドが効かないっす。
C:\foo> move A.java C:\foo\abc
のようにしてもダメです。
って、これに関してはスレ違いですか?
0671デフォルトの名無しさんNGNG
>>670
mvだと思われ

>>668
スーパーユーザーで動かさない方が良いよ
0672デフォルトの名無しさんNGNG
>>669
abcディレクトリに二つのファイルをコピーしました。
んで、
C:\foo> javac abc\A.java
C:\foo> javac abc\B.java
とコンパイルするとやはり同じエラーが出てしまいます。。。
0673デフォルトの名無しさんNGNG
>>672
エラーメッセージをコピぺしろ
0674デフォルトの名無しさんNGNG
abc\A.java:10: クラス abc.A が見つかりません。
protected abstract void thread(A a);
0675デフォルトの名無しさんNGNG
>>674
thread(A a);
↓
method(A a);
0676 ◆VB6.V49. NGNG
VS6Pro持ってますがVBとDevしか使った事ありません
VB6はもうだめなので、Javaを始めようと思います
VJでアプレットの作成をしたいですが、どこから手をつけましょうか?
MSDNのVJはJavaの基本解説が不親切
おすすめサイトを教えてください〜
最初がアプレットは邪道ですか?
■ このスレッドは過去ログ倉庫に格納されています