【初心者】Java質問・相談スレッド103【大歓迎】
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん
2007/06/27(水) 07:23:27JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc10.2ch.net/hp/
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
【初心者】Java質問・相談スレッド102【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1180419689/
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。
次スレは>>980あたりで。
0821デフォルトの名無しさん
2007/07/20(金) 21:10:510823デフォルトの名無しさん
2007/07/20(金) 21:13:54国防
0824デフォルトの名無しさん
2007/07/21(土) 00:42:06火星
0825デフォルトの名無しさん
2007/07/21(土) 01:01:23後はAPIっていうのを見ながらやるんですか?
0826デフォルトの名無しさん
2007/07/21(土) 01:04:090827デフォルトの名無しさん
2007/07/21(土) 01:43:16何か作りたいから Java 勉強したんじゃないの?
0828デフォルトの名無しさん
2007/07/21(土) 03:09:46やったのは単なる入門書で文法を学んだだけじゃないの?
参考書ってのは何かを作るときに参照するものだよ
特に作りたいものがないならばゲームでも作ってみるのがいいんじゃね
GUI関連は業務じゃ使う機会少ないけど、デザインパターンとか設計力を鍛えるには一番だとばっちゃんが言ってたよ
0829デフォルトの名無しさん
2007/07/21(土) 03:53:11この辺りで宿題解いてみるのもいいと思うよ。
★★ Java の宿題ここで答えます Part 62 ★★
http://pc11.2ch.net/test/read.cgi/tech/1184509890/1-100
0832デフォルトの名無しさん
2007/07/21(土) 15:22:58どうしてもindexに繋がりません、過去に習ってた時の学校では自分でインストールできたのに
スタートさせてもアイコンはミドリの▲になるのに、右クリックをするとストップStopではなくStartが押せる状態になっています
Tomcatは5.5、Javaは1.5
OSは2000XPでも2000Proでもどちらも同じ現象でダメでした
XPのファイアーウォールを無効にしても無理でした
環境設定のPathは教室でインストールした時に、テキストファイルで貰っていたのをコピペしなおしても無理でした
これ以上どう足掻いていいのか分かりません
0833デフォルトの名無しさん
2007/07/21(土) 15:29:56class Hoge{
static void piyo(){}
public static void main(String[] arg){
piyo();
}
//B
class Hoge{
Hoge(){
piyo();
}
void piyo(){}
public static void main(String[] arg){
new Hoge();
}
Aのように書かずBのように書けば、piyoメソッドにstatic修飾子をつけなくてもよくなりますよね
こう書くことになにか問題はありますか?
0834デフォルトの名無しさん
2007/07/21(土) 15:57:32修飾子についての理解が不十分
staticをつけたメソッドはインスタンス化しないでも使えるが、
Bのpiyoメソッドはインスタンス化しないと使えない。
0835デフォルトの名無しさん
2007/07/21(土) 17:36:23Eclipse上?
今のTomcatなんてインストーラーに従ってインストールするだけだろ?
0836デフォルトの名無しさん
2007/07/21(土) 17:37:180837デフォルトの名無しさん
2007/07/21(土) 18:05:10うまく言えんけど、おそらく833は
「mainメソッドで呼ぶ」という理由だけでstatic修飾子をつけるのはおかしいのでは?
と考えた結果思いついたんじゃないか?
833への答えは持ってないけど、834の答えが的外れな気がしたんで口出し
834のであってたらすまん
0838デフォルトの名無しさん
2007/07/21(土) 18:20:47たしかにAもBもpiyo()が実行されるという一点では同じなんだけど、
piyo()は本当にコンストラクタ内で処理すべき機能なのか考えるべき。
AとBではpiyo()やHogeクラスの意味合いが異なってくる。
piyo()が単にstaticメソッドから呼ばれるだけの下請け的存在ならAで十分だし、
Hogeをインスタンス化する必要がありかつpiyo()がインスタンス生成段階で必要な処理ならB。
class Hoge{
void piyo(){}
public static void main(String[] arg){
Hoge h = new Hoge();
h.piyo();
}
}
こう書くのが適切な場合だってある。
何を実現するためにどうクラス設計をするかを考えてpiyo()の立ち位置を決めておくれ。
0839デフォルトの名無しさん
2007/07/21(土) 18:24:31class Hoge{
public static void main(String[] arg){
Hoge hoge = new Hoge();
hoge.piyo();
}
void piyo(){}
}
0840デフォルトの名無しさん
2007/07/21(土) 18:42:46単純にfor文とif文を駆使したプログラム入門ならば、全部staticでnewは配列作るときくらいしか使わないでOK
クラスとか勉強する段階でnewを覚えるべきだが
0841デフォルトの名無しさん
2007/07/21(土) 19:07:22http://localhost:8080/index.jsp
でだめだったのかい?
http://localhost:8080/manager/html
ではどうだい?
0842デフォルトの名無しさん
2007/07/21(土) 19:13:53私もそう思ってたのでびっくりです
>>836
CLASSPATHを作ってservlet-api.jar;.の位置を入れました
↑は自分で打ったけど、パソコンに入れたのは成功した教室のPCからのコピペなんで間違いはないと思います
>>841
そこ自体がダメです
タスクのアイコンがスタート状態になってても、ストップできずスタートがあるということは、スタートできてないんだと思う
0843デフォルトの名無しさん
2007/07/21(土) 19:21:23CLASS_PATHを消せ
次にコマンドプロンプトからjava -version を打ってversionを確認せよ
その上で再インストールして来い
スタートできないならばログも嫁
0844デフォルトの名無しさん
2007/07/21(土) 19:29:52おかげで使えるようになりました
ありがとうございました
前に入れたバージョンが残っててそっちを設定してたっぽい
ゴメンナサイ
私は、恥かしい間抜けです
0845デフォルトの名無しさん
2007/07/21(土) 21:23:30_.||___|_____||_
.. / /||___|^ l
.. 答えろ ぶち殺すぞ!> (・ω・`)//|| |口| ||ω・` )
. ./(^(^ .//||...|| |口| |⊂ )
. / // ||...|| |口| ||し 新スレです
. あ?てめぇどこ中だよ>( )//.... ||...|| |口| || 楽しく使ってね
/(^(^ // .... .||...|| |口| || 仲良く使ってね
"" :::'' |/ |/ '' " ::: ⌒ :: ⌒⌒⌒ :: "" `
:: ,, ::::: ,, ; ̄ ̄ ̄ "、 :::: " ,,
0846デフォルトの名無しさん
2007/07/21(土) 22:10:34doGetとdoPostあるじゃん。
どちらか一方に処理全部書いて、もう一方にはdoPost()かdoGet書けば
いいだけなんだろうけど。
これでいいのか?
てゆうか、分けて書くことってあるの?
0847デフォルトの名無しさん
2007/07/21(土) 22:18:16いい。
>てゆうか、分けて書くことってあるの?
使い方による。
0848デフォルトの名無しさん
2007/07/21(土) 22:41:170849デフォルトの名無しさん
2007/07/21(土) 23:00:41見た目にこった実装ってできるのでしょうか?
例えば、ウィンドウを3D間隔で操作できるとか、swingコンポーネント等でも
デザインが柔軟に変更できるとか。OS依存でも構わないです。(できればWindows)
その他なんでもよいのですが、おもしろいデザインにするための技術情報など教えていただきたいです。
0850デフォルトの名無しさん
2007/07/21(土) 23:04:51Swing synthでぐぐってみたら?
0851デフォルトの名無しさん
2007/07/21(土) 23:06:04やろうと思えば3Dだろうとなんだろうと可能だが、簡単に出来るわけじゃない
単純に派手なUIが欲しいってのならば方向性は違うだろうね
Eclipseで使われているSWTなんかを使えば簡単にWindows風のUIも可能
Swingだって6.0で大幅にパフォーマンスも向上しているから捨てたもんじゃない
ただし、作るにはそれなりのセンスと時間が必要
0852デフォルトの名無しさん
2007/07/21(土) 23:26:17htmlとcssみたいな関係なのでしょうか?調べてみますm(__)m
>>851
javaを勉強し始めてから早一年経ちましたが、人の作ったライブラリを呼び出すだけの人になってますorz
ちなみに最近netbeansを使ってGUIの作成ってやってみたのですが、VBチックで楽だなぁと思ったのですが
同じようなものなのかな? SWTなるもの調べてみますm(__)m
0853デフォルトの名無しさん
2007/07/21(土) 23:54:31SwingなりSWTはツールを使わずに習得した方がいい
自然とOOPでの設計力が付くぞ
0854デフォルトの名無しさん
2007/07/21(土) 23:54:58家でもちょっとやりたいと思ってるのですが、
家では開けず、あぁーなんかダウソしないといかんのかぁー。となっとります。
ほんとに初歩の初歩の質問で申し訳ないのですがどなたか教えて頂けるとありがたいです。
えー、ちなみに void on Idle とか使ってた奴です。(何だこの説明。。。
0855デフォルトの名無しさん
2007/07/21(土) 23:57:39ttp://www.java.com/ja/download/index.jsp
↑ここから辿ってダウンロードできる jre-6u2-windows-i586-p-s.exe と
ttp://java.sun.com/javase/ja/6/download.html
↑ここの「Java Runtime Environment (JRE) 6u2」のダウンロードから辿って
ダウンロードできる jre-6u2-windows-i586-p.exe の違いが分かる人いますか?
両方ダウンロードするとどちらも 14,566,808 バイトだけど、バイナリ比較すると一致しない…
0856デフォルトの名無しさん
2007/07/22(日) 00:15:19ですね。。正直今の段階だと自動生成されたソースが何をやっているのか分からない状態です。
GUI開発が熟練してからツール使うことにします^^;
0857デフォルトの名無しさん
2007/07/22(日) 01:12:13>>856
まあ、netbeansの吐くコードは汚いね。
いまさらSWT使う利点なんてないよ。
5.0/6のVMは早いし、SwingのSystemLnFもネイティブコードの呼び出し増えて見栄えもかなり近いし。
普通に使う分にはVMのメモリを多めに取ればSwingもSWTもたいして速度変わらん。
それに今時Swingで十分な速度でない環境だとjavaそのものが遅いし。
ここら辺のおかげでnetbeansがかなり使えるようになった。
SWTはjava風じゃないところがあるからまずはjavaを覚えた方が良い。
0858デフォルトの名無しさん
2007/07/22(日) 01:49:520859デフォルトの名無しさん
2007/07/22(日) 02:55:560860デフォルトの名無しさん
2007/07/22(日) 09:19:550862デフォルトの名無しさん
2007/07/22(日) 15:01:53JFlexとJacでちょっとしたもの作ろうとおもってるんだけど、
ビルドをeclipse上で自動化したい場合ってどうすればいいの?
0863デフォルトの名無しさん
2007/07/22(日) 15:03:05○jay
0864862
2007/07/22(日) 17:47:46eclipseのスレがありましたのであちらで質問します。
ありがとうございました。
0865デフォルトの名無しさん
2007/07/22(日) 20:10:02正確に一画面文の文字数をカウントすることをご教授願います。
フォントサイズから一画面の文字数を数える場合、
英文が入るを正確にカウントできません
0866デフォルトの名無しさん
2007/07/22(日) 20:14:06文字数を読むメソッドがある
0867デフォルトの名無しさん
2007/07/23(月) 02:05:51通常、POSTとGETは使い分けるよ。使う目的も違うし、HTTPにおけるパラメータの
送信方法も異なってくる。また、Tomcatの場合はHttpServletRequestのsetCharacterEncodingは
GETパラメータには利かない。(※いくつかの設定は存在する)
Servletを学習するなら、同時にHTTPについて学習するのはすごく有意義だし、Web上に色々参考に
なる記事が沢山落ちてるから、まずはPOSTとGETは具体的に何が違うのかを学習すると良いと思うよ。
0868デフォルトの名無しさん
2007/07/23(月) 09:13:08↓
http://www.yukinko-net.jp/
0869デフォルトの名無しさん
2007/07/23(月) 12:23:50Rhinoでコマンドライン用のスクリプトを書こうとしているのですが、
コマンドライン引数の取り方が分かりません。
RubyでいうところのARGVです。
Rhino argv で検索しても C のソースしか引っかからないし。
どなたかお願いします。
0870デフォルトの名無しさん
2007/07/23(月) 12:32:590871デフォルトの名無しさん
2007/07/23(月) 12:57:16RhinoはJavaによるJavascriptの実装だから、実装内容に関わるような話ならこのスレかもしれないが、
単なるスクリプトプログラミングについてここで聞くのはスレ違い。
ある言語について質問する時に、その言語の処理系が何で実装されているかに関わらず、
普通はその言語のスレで質問するだろ?
0872デフォルトの名無しさん
2007/07/23(月) 12:57:53argsは定義されていないようです。
print(args); //=> ReferenceError: "args" is not defined.
Rhinoは1.6R5です。
0873デフォルトの名無しさん
2007/07/23(月) 13:01:36JavaScript一般の話ではなく、あくまでRhino固有の話なので、JavaScript関連のスレではなくここで質問しました。
Rhino専用のスレはないし、RhinoはJava6から標準装備ですし、ここが一番適切ではないでしょうか。
0874デフォルトの名無しさん
2007/07/23(月) 13:39:30JavaScriptのスレでこんなもんわかるやついるわけないだろ。Javaスレ行けっていわれるのがオチ。
0875デフォルトの名無しさん
2007/07/23(月) 13:53:57じゃあお前が答えてやれよ
俺はRhinoは嫌いだ
>>869
arguments
0876デフォルトの名無しさん
2007/07/23(月) 14:07:55jrunscript で実行してるなら arguments で取れるはず。
そうでない場合は、自前でScriptEngineにセットしないとダメなんじゃね?
scriptEngine.getBindings(ScriptContext.ENGINE_SCOPE).put("arguments", args);
0877デフォルトの名無しさん
2007/07/23(月) 14:26:41argumentsでとってこれました。ありがとうございました。
ちなみにこういった情報はどこで見つけるものなんでしょうか。
0878デフォルトの名無しさん
2007/07/23(月) 14:30:03http://java.sun.com/javase/ja/6/docs/ja/technotes/tools/share/jrunscript.html
0879デフォルトの名無しさん
2007/07/23(月) 15:59:42呼んだ?
おまえら少しはEcma Scriptスレに顔出して上げてください。
ネタがないんで普段は実装と仕様の差異の話で盛り上がっとりますよ。
SpiderMonkyが人気ないからRhinoで持ちきりなんだが・・・。
java6のRhino劣化品。いらない子。
>>878
それmozillaのdocの劣化コピペだからmozillaの開発者向けサイトかRhinoのdocに全部書いてある。
0880デフォルトの名無しさん
2007/07/23(月) 16:28:58一応別のツールだから劣化コピペとは言い切れないんじゃね?
Rhino のツールでは -l でスクリプト言語指定したりできないっしょ。
0881デフォルトの名無しさん
2007/07/23(月) 18:51:12さらにコンパイラ省かれてるから一切最適化されてない純粋なインタープリタで動いてる。
Rhinoのドキュメントに組み込みガイドがあって
そこにスループット優先でビルドする手順が書かれてるんだけどそれと同じ事してる。+JavaAdaptorが劣化。
jrunscriptはそのRhinoのScripting APIに従った純粋なラッパー。
Rhinoの殆どの実装クラスがjavax.script.*じゃなくてcom.sun.*にあるから自分でJSオブジェクト実装とかクラスシャッターでセキュリティ制限とかできない問題もある。
ecmaスレで詳しい話題が出てるよ。
0882デフォルトの名無しさん
2007/07/23(月) 20:26:28javax.script は Rhino とは別物だよ。
で、jrunscript と org.mozilla.javascript.tools.shell も別物。
だから jrunscript の、より詳しいドキュメントとして mozilla のドキュメント読めというのはダメ。
0883デフォルトの名無しさん
2007/07/23(月) 23:29:23Rhino1.6R5と言っただけ。Rhinoがjavaの実装で6から標準装備だからこっち来たと。
>>876が勝手にjrunscriptと言い出しただけだろ。だからecmaスレ行けって。
0884デフォルトの名無しさん
2007/07/23(月) 23:37:36俺は >>879 にレスつけただけなんだが。なんで >>869 の話が出てくるんだ?
0885デフォルトの名無しさん
2007/07/24(火) 01:27:160886デフォルトの名無しさん
2007/07/24(火) 01:39:570887デフォルトの名無しさん
2007/07/24(火) 02:51:470888デフォルトの名無しさん
2007/07/24(火) 02:53:20これって可能なんでしょうか。コードは以下のような感じ。
class Hoge {
static {
try {
Class.forName("org.postgresql.Driver");
0889デフォルトの名無しさん
2007/07/24(火) 03:00:58class Hoge {
static {
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
throw new InternalError(e.getMessage());
}
public static Connection open() {
Connection conn = DriverManager.getConnection("foo", "bar", "baz);
return conn;
}
// 以下略
}
コンパイルエラーは以下。
[javac] シンボル: 変数 DriverManager
[javac] 場所 : Hoge の クラス
[javac] Connection conn = DriverManager.getConnection("foo", "bar", "baz");
[javac] ^
[javac] エラー 1 個
0890デフォルトの名無しさん
2007/07/24(火) 03:06:500891デフォルトの名無しさん
2007/07/24(火) 03:07:07クラスパスが通ってないのかなと思って servlet-api.jar にも classpath を通してみて
HttpServlet を継承しただけのコードを書いてみたけど、こちらは問題なかった。
ビルドに用いている ant の build.xml のクラスパスの部分は以下。lib/ 内には
postgresql.jar が配置されている。
<target name="compile">
<mkdir dir="${bin.dir}" />
<javac srcdir="${src.dir}" destdir="${bin.dir}">
<classpath>
<!-- <fileset dir="lib">
<include name="*.jar" />
</fileset>-->
<pathelement location="lib/postgresql.jar" />
<pathelement location="/usr/share/tomcat5.5/common/lib/servlet-api.jar" />
</classpath>
</javac>
</target>
0892デフォルトの名無しさん
2007/07/24(火) 03:13:33取り急ぎ書いたんで抜けた。すまん。他にも "baz" の終わりの " が抜けたりしてる。
手元のコードはちゃんとしてるから大丈夫。
0893デフォルトの名無しさん
2007/07/24(火) 03:17:47DriverManagerに対して
「シンボルを見つけられません。」
というメッセージです。
0894888
2007/07/24(火) 03:20:11DriverManagerってずっと postgresql.jar の中にあるクラスと思ってたら java.sql.DriverManager
だったのな。。。
0895デフォルトの名無しさん
2007/07/24(火) 03:21:33import java.sql.DriverManager;してる?
0896デフォルトの名無しさん
2007/07/24(火) 03:23:38まあシンボルが見つからないエラーは完全名を指定できていないミスが多いからね
0897デフォルトの名無しさん
2007/07/24(火) 03:23:59Eclipseの補完機能に頼りすぎておんなじ名前のメソッド入った
パッケージがこんがらがるとこういうことになる。
0898デフォルトの名無しさん
2007/07/24(火) 04:14:49クラス名が被るのは限定名でアクセスしてあとから「インポートの編集」すると混乱が減るよ。
0899デフォルトの名無しさん
2007/07/24(火) 06:42:38コンパイル遅くなるから?
実行時にも遅くなる?
import *;
ができないからどっちもどっち?
0900デフォルトの名無しさん
2007/07/24(火) 07:30:150901デフォルトの名無しさん
2007/07/24(火) 07:44:01importは「このクラスはこいつらに依存してますぜ」というある意味クラスの設計情報みたい
なもの。仕様変更やデバッグするときに鬼のようにimport hoge.*;とか書かれまくっていきな
りプログラム中でクラスが使用されているとどのクラス追いかけたらいいのかわからなくなる。
でっかいシステムなら尚のこと。
俺の場合作る手間より直す手間を減らすため、かなぁ。
0902デフォルトの名無しさん
2007/07/24(火) 10:00:230903デフォルトの名無しさん
2007/07/24(火) 10:03:03使うオブジェクト全部をimportで指定するのは面度だが、
これもIDEのサポートでさほど手間でもない。
どっちでもいい気がするが、プロジェクトのやり方に合わせるのが基地。
0904デフォルトの名無しさん
2007/07/24(火) 10:16:440905デフォルトの名無しさん
2007/07/24(火) 10:31:570906デフォルトの名無しさん
2007/07/24(火) 10:37:36>>900
0907デフォルトの名無しさん
2007/07/24(火) 10:51:500908デフォルトの名無しさん
2007/07/24(火) 10:54:420909デフォルトの名無しさん
2007/07/24(火) 11:04:52やっとわかった
ごめんね
0910デフォルトの名無しさん
2007/07/24(火) 16:56:27まあ、無駄なアクセスがあればの話だけど。
0911デフォルトの名無しさん
2007/07/24(火) 17:00:450912デフォルトの名無しさん
2007/07/24(火) 17:02:190913デフォルトの名無しさん
2007/07/24(火) 18:12:23hoge.Hegeクラスを参照しているソースファイル中で、
import hoge.*;
とやった場合と、
import hoge.Hege;
とやった場合でコンパイル後のclassファイル中のHegeクラスの名前の指定の相違点を確認。
0914デフォルトの名無しさん
2007/07/24(火) 19:33:39import b.*;
とかなってるときに、
パッケージ b 内にしかなかったクラスの名前と同じクラスをパッケージ a に追加すると、
追加したところとは異なるところからコンパイルエラーが発生してびびる
もっとも、たまたまシグネチャが合ってエラーが発生しなかったらと思うともっと心配かも
0915デフォルトの名無しさん
2007/07/24(火) 19:38:57要らないリンクに時間が掛かります(コンパイルに)
0916デフォルトの名無しさん
2007/07/24(火) 19:56:130917デフォルトの名無しさん
2007/07/24(火) 20:11:12コンパイラの名前解決時に影響するだけ
コンパイル後はまったく一緒、クラスファイルにはフルネームで格納される
0918デフォルトの名無しさん
2007/07/24(火) 20:15:09無駄なリンクなんて発生しねえしサイズも大きくならねえよ
importは単にこのクラスもしくはパッケージからクラス定義を拾ってこいっていうコンパイラへの指令
コンパイラの実装次第でワイルドカードを使った時のクラス検索の効率に差が出るかもしれんが
0919デフォルトの名無しさん
2007/07/24(火) 23:06:32どこの都市伝説だよw
0920デフォルトの名無しさん
2007/07/24(火) 23:43:08永遠に compile oh what a night in jamaica!
レス数が900を超えています。1000を超えると表示できなくなるよ。