【初心者】Java質問・相談スレッド132【専用】
っと言うことで初心者用も作ってみたよ。 なにか有ったら、よろしく。
5 :
デフォルトの名無しさん :2009/09/08(火) 16:25:22
質問です。 swingでJPanelを用意しましたが、JFrameに貼り付けることができません。 レイアウトマネージャーは他の部分との兼ね合いでnullに設定しております。 ググッてもレイアウトマネージャーを使ったものばかりで見付かりません。 例)getContentPane().add(JPanel, BorderLayout.CENTER); レイアウトマネージャーをnullにしてもJPanelを貼り付けられる方法を教えてください
6 :
デフォルトの名無しさん :2009/09/08(火) 16:26:24
7 :
デフォルトの名無しさん :2009/09/08(火) 16:38:19
>>6 すみません。一応javaDriveとかも見て回ったのですがなかなか見付からず・・・
検索ワードだけでもいいので教えてください
>>5 レイアウトマネージャを設定しないということは
そのコンテナのレイアウトに関してお前自身が責任を持つということを宣言したということだ
お前はレイアウトマネージャに頼らずレイアウトを行う責任を果たさなければならない
要点はコンテナ内の各コンポーネントの大きさと位置だ
なんで二つも立ってんだよ。 どうせ初心者スレと銘打って立てるんなら、 紛らわしいことせずにくだスレを復活させろよ。
10 :
デフォルトの名無しさん :2009/09/08(火) 17:02:56
>>8 となるとBorderLayout.CENTERの部分を自己責任でやる必要があるわけですよね?
代わりに適当な座標を入力したのですが表示されません。
>>10 これでちゃんと表示されたぞ
お前が何か間違ってるんだ
import java.awt.*;
import javax.swing.*;
public class Test {
public static void main(String[] args) {
JPanel panel = new JPanel();
panel.setBackground(Color.red);
panel.setSize(100, 100);
JFrame frame = new JFrame();
frame.setLayout(null);
frame.add(panel);
frame.setSize(200, 200);
frame.setVisible(true);
}
}
12 :
デフォルトの名無しさん :2009/09/08(火) 17:43:32
すいません。panelのサイズ設定を忘れていました。 ほんとにわかりやすい話と、具体例をありがとうございます。
13 :
デフォルトの名無しさん :2009/09/10(木) 14:04:02
とりあえず何をするにしても Java SE の JDK は必要なので Sun のサイトからダウンロードしておく 開発環境は NetBeans と Eclipse が人気だけど、 普通のテキストエディタとコマンドプロンプトだけでも特に問題はない
15 :
13 :2009/09/10(木) 14:42:00
回答ありがとうございます。 SunのサイトからJDK 6 Update 16 with Java EEをDLしてきました。
OpenGLってやってみる価値ある? つーかこれどうすればいいんだろ・・・
価値っていわれても 3Dに興味があるならやってみてもいいんじゃない 興味も必要もないなら手を出すことはないかと
あるんじゃないの? でもいきなりは大変だろ
19 :
13 :2009/09/10(木) 22:51:35
今、PATHを通してやっとプログラミングの環境が整いました。 そこで質問なのですが、JAVA言語を習得する上でここまでできて初心者卒業、 ここまでできたら中級者などだいたいの目安は何かあるでしょうか。 何時間でこのくらいまでいけた、などの体験談でも構いませんのでアドバイスお願いします。 また、参考になるサイトは何かないでしょうか?
文法覚えて初心者。 処理クラスにコンポーネントを順に呼び出すビジネスロジックを記述できて新人 大量データ処理・再帰処理をまともなパフォーマンスで実装できて普通のマ プロジェクトの基本設計やらコンポーネントの設計まかされるようになって中級者 人の話が全て頭のなかでJavaのコードに自動変換されるようになって上級者 やさしいJavaみたいな本かって一通り勉強してみれば? クイックソートを実装できるようになれば大体のプログラムは書けるようになってる。
>>19 とりあえず初歩の勉強ならエディタでもいいが、アプリ作る気まんまんならeclipseいれとけ。
http://www.eclipse.org/downloads/ のEclipse IDE for Java Developers な。
初心者サイトはたくさんあるけど、やりたいことの幅がひろいようなので「JavaでHelloWorld」でコードを片っ端から試すとかいんじゃないか。
目安として、仕事でJava使ってる奴なら↑のサイトにあることの半分以上は知識とフィーリングでなんとでもなるかな。
まあ俺の場合は設定ファイルの書き方とかは知ってても本やネットで調べるが・・w
Javadocがあれば一通りできて初心者卒業
23 :
13 :2009/09/11(金) 14:49:21
分かりやすい説明ありがとうございました。 文法やdocも眺めてみることにします。 いろいろなプログラムコードを片っ端から試して書いて頑張ってみます。 eclipseについての質問です。 JDKとjreをCドライブにインストールしたのですが、 SUN>JDKのフォルダの中のjdkのフォルダにもjreが入っていました。 こして、Eclipseのウィンドウ>設定>Java>インストール済みのJRE にロケーションがC:\jreのjreが設定されていますが、このままでいいですか。 それともC:\Sun\SDK\jdk\jreのjreに設定するのがいいですか。 違いが分からないのでアドバイスお願いします。
どこかに良い HTML パーサってないですかね?
26 :
13 :2009/09/11(金) 23:49:58
コマンドプロンプトについての質問です。 package test; public class HelloWorld { public static void main(String args[]) { System.out.println("Hell Java World !"); } } というソースをコンパイルしてC:\java\step001\bin\test内にHelloWorld.classを作りました。 Eclipse上ではコンソール欄にHello Jvava World !と表示されたのですが 次にコマンドプロンプトでcdを繰り返し C:\java\step001\src\test>javac HelloWorld.java として実行し C:\java\step001\src\test内にHelloWorld.classを作りました。 そこでコマンドプロンプトで C:\java\step001\src\test>java HelloWorld として実行すると Exception in thread "main"java.lang.NoClassDefFoundError: HelloWorld (wrong name: test/HelloWorld) と出てしまいます。 何が悪いのかアドバイスお願いします
27 :
デフォルトの名無しさん :2009/09/11(金) 23:56:49
パッケージが見える階層から実行しれ
28 :
デフォルトの名無しさん :2009/09/11(金) 23:59:49
それから、コマンドプロンプト必要ないから。それよりもエクリプスの機能や拡張を覚える方が先
Javaのパッケージはファイルシステム上ディレクトリとして表現されているから、 初心者はパッケージとカレントディレクトリの関係に戸惑うのかもしれないね。 c: cd C:\java\step001\src javac sample\HelloWorld.java java sample.HelloWorld として実行しましょう。 HelloWorldとsample.HelloWorldは別物だし、 C:\java\step001\srcでsample.HelloWorldを実行するのと C:\java\step001\src\sampleでHelloWorldを実行するのも当然別物。
30 :
29 :2009/09/12(土) 00:14:41
ごめん。なぜかtestがsampleになってた。 以下訂正 c: cd C:\java\step001\src javac test\HelloWorld.java java test.HelloWorld
31 :
13 :2009/09/12(土) 00:34:16
ありがとうございます。 コマンドプロンプトで C:\java\step001\src>java test.HelloWorld と実行して無事にHello Java World !と表示できました。 23での質問の内容は自分なりに答えを出してみました。 非公開jreと公開jreがあり、自分のソースコードを実行する場合はSDKを使っているので PathはC:\Sun\SDK\jdk\jreにする。 だと思いました。 現在はPathはC:\Sun\SDK\jdk\jreにしています。 そこでまた質問です。 javac test\HelloWorld.java の意味は、test内のHellWorld.javaをコンパイルしなさい。 java test.HelloWorld の意味は、パッケージがtestのクラスがHelloWorldを実行しなさい。 で合っていますか。 (パッケージとクラスが何なのか今調べている途中です)
23は読んでなかった。 開発環境から本番稼動の別サーバにデプロイ(クラスファイルを配置) するような状況がなければ特に気にしなくてよい。 SDKをインストールして、そっちのjavaコマンドから実行することもあるのであれば、 SunのSDKを指定しておけばいい。 javaコマンドの意味は 「カレントディレクトリをクラスパスとして、testパッケージのHelloWorldクラスを実行せよ」 javacの場合は 「カレントディレクトリをソースパス&クラスパスとして、testディレクトリのHelloWorld.javaファイルをコンパイルせよ」 クラスパスは実行時やコンパイル時に、自分が作ったクラスや、それ以外のクラス たとえばApacheのcommonsライブラリを使うソースを書いた場合は、 そのライブラリがどこにおいてあるかなどを指定するために使う。 実行するプログラムが使用する(依存している)全てのクラスはクラスパス配下から探せなくてはならない。 ソースパスはjavacがコンパイルするときに、 コンパイルするソースやソース自身が依存する別のソースを探すための場所として使われる。
33 :
13 :2009/09/12(土) 01:17:09
ありがとうございます。 調べてみるとパッケージとクラスは苗字と名前の関係のようでした。 クラス名が同じものがあると混同してしまうのでパッケージ名も付けて区別するようです。 そのためパッケージ名まで同じにならないように自分の所属する企業名やドメインを逆さにするようです。 これからは特色のあるパッケージ名にしてみます。
パッケージは住所、クラス名は人の名前として考えてみるといい。 東京に住む山田一郎さんと、大阪の山田一郎さんは、 同じ名前でも別人。できることも体重身長もそれぞれ違う。 Javaは常にパッケージ名・クラス名の組み合わせで.classを探している。 「どこから」クラスを探せばいいのかを(クラスパスとして)教えてやらないといけない。 教えられた場所から「パッケージ名はディレクトリ」「クラス名はファイル名」として、 実際の.classファイルを読み取ることができる。 大規模な組織でJava開発を行うと、パッケージが10階層くらいになってて笑える。 jp.co.グループ名.会社名.事業所.カテゴリ名.プロジェクト名.アプリケーション名.本当のパッケージ名...
35 :
13 :2009/09/13(日) 00:27:15
分かりやすい説明ありがとうございます。 APIやクラスライブラリがまだよく分からないので飛ばしました。 今はインスタンスの勉強中です。 メソッドや戻り値とか分からない単語が増えてきてだんだん覚えきれなくなってきたのですが、 先輩の皆さんは初心者の頃はノートやメモなどを取ったりしましたか。 覚えられないものはひとまずおいてどんどん先に進むのがいいですか。
>>35 ベストなのは、プログラムを自作して動作を理解する事
これが一番の近道
わからないまま進んでも、いけない事はないけど、真の理解には
つながらない
まて、インスタンスよりメソッドと戻り値の方が先じゃないのか
>>37 インスタンスがわかってないと、クラスメソッドとインスタンスメソッド
の違いが理解できなくね?
javaのクラスパスにはドット(.)が含まれないと読んだのですが、 java -classpath で何かを指定したときは含まれない、 -classpath を何も指定しない場合は、現在のディレクトリも 検索パスになると理解したら良いのですかね? -classpathを何も指定しない場合は、現在のディレクトリの クラスを読みに行けているので。
>>38 Javaを始めていきなりクラスとかインスタンスとか覚えれるのかな・・?
とりあえずmainメソッドで四則演算とか入出力とかで慣れるのが普通だと思ってたわ。。
javaで実行ファイルつくんのどうやんの? なんかソフトいるの?
>>42 javaはインタプリタ言語だから、CPUネイティブなコード生成はできない
バイトコード=実行ファイルという意味なら、javacなどのコンパイラでおk
OprnOfficeってどうしてんだろ?あれってJAVA使ってるだけなの?
>>44 いまは、それぞれのプラットフォームごとにネイティブ対応してるんじゃ
なかったっけ>OpenOffice.org
46 :
デフォルトの名無しさん :2009/09/13(日) 17:04:07
Java使ってたのは主にOpenOffice Base(DB)の裏方。 (他にもあるようだけど) Mac版は、以前は本家はUIにXが必要で、他の実装としてUIにJavaを 使ったNeoOfficeという派生物がある。現在は本家もX不要でAqua になってる。
主流って何のだよwww
いや、javacが前のレスで紹介されてるのに、あえてgcjが紹介されてる から、使用されてるシェアがgcjの方が多いのかなと思って
バイトコードを吐くコンパイラならjavacかecjしか使われてない バイナリを吐くコンパイラならメジャーなのはgcjくらいだ これでいいか?
>>52 javaで書いても、gcj使うと、バイナリで出せるんだ
知らんかった
プラットフォーム依存になるけど、JVM要らないってこと?
gcjでぐぐれよ
55 :
デフォルトの名無しさん :2009/09/15(火) 14:33:55
質問です。 javaアプリケーションで、JPanel上に2枚の画像を載せます。(A,Bとします) Aの画像はJPanel全体に表示させ、Bの画像はその上に置くようにして載せたいと思っています。 画像のサイズはAが700*700で、Bの画像は10*10ほどです。 どちらか片方だけ載せるのはできるのですが、その上にもう一つ載せようとすると、 先に載せたほうが潰れてしまいます。 どうすればうまく載せれるのでしょうか よろしくおねがいします
56 :
デフォルトの名無しさん :2009/09/15(火) 15:43:28
潰れるってどういう意味で使ってる?
57 :
デフォルトの名無しさん :2009/09/15(火) 15:48:31
>>56 表示されなくなります。後に載せたほうだけが表示されます
レイアウトマネージャは何を?
59 :
デフォルトの名無しさん :2009/09/15(火) 15:59:14
レイアウトマネージャーは質問とは別の理由でnullに設定してます。 それと、Bは画像を使わないで直接描写でも良くなりました。 なのでJPanelに載せた画像の上から絵を描ければ大丈夫です
画像AはJLabelかなんか? レイアウトマネージャがnullなら、自分で位置とサイズを指定しないといけないけれど、そのへんは大丈夫?
61 :
デフォルトの名無しさん :2009/09/15(火) 16:29:55
あるクラスから、他のクラスのメンバ変数を参照したいんだけど その参照したいクラスが多数あった場合、どうやったらスマートだろう? そのクラスのインスタンスを引数で渡すにも、参照したいクラスが10個以上あるし インスタンスを引数で渡す方法が良いとは思えない もうちょっと状況を詳しく書くと main.javaというクラスがあるとして、このクラスは他の全てのクラスのインスタンスを保有 クラスAから、他のクラスB〜Zのprivateのメンバ変数を参照したい クラスB〜Zは、public のゲッタ/セッタを保有 この場合、クラスAからクラスB〜Zのメンバ変数を参照するにはどうすれば うまいやり方でできる?
>>62 クラスAにクラスmainを持たせて、main経由で参照すればいいかと
>>61 AとBのaddする順番を逆にしてみるとか
>>63 すいません、説明がちょっと抜けてた
クラスmainが保有する各クラスのインスタンスはprivateなんです
なので、mainのインスタンスをクラスAに渡してもそのまま参照できず
それぞれにゲッタが必要で、その数もまた膨大なので
何か良い方法が無いかなと
そもそもクラスのインスタンスをprivateで保有するという考え方が
おかしいのかなぁ
66 :
デフォルトの名無しさん :2009/09/15(火) 17:08:04
>>64 やってみましたが、結局後に書いた方だけが表示されます
ゲッタくらいeclipseに自動生成してもらえ 他の開発環境は知らんが・・・
68 :
デフォルトの名無しさん :2009/09/15(火) 18:35:24
質問失礼します。 private static final Map<String,String> tmpMap = new java.util.concurrent.ConcurrentHashMap<String,String>(); public void run() { String uniqueKey = "hogehoge"; while(true) { if(!tmpMap.containsKey(uniqueKey)) { String data = getData(); tmpMap.put(data,uniqueKey); String tmpLocalKey = tmpMap.get(data); if(uniqueKey.equals(tmpLocalKey ) { somethingDoTask(); } } } } 簡単に言うと上記のようなソースがあり4スレッドくらいを並列で動かしてます マップはロックのような形で使用し、あるデータ名をキーにし4つのスレッドの内 1つだけが処理を行うような仕組みです。 ですが、実際は重複して実行しているようです。 このマップを使う事が間違いでしょうか?
69 :
デフォルトの名無しさん :2009/09/15(火) 18:36:40
訂正 こっちです private static final Map<String,String> tmpMap = new java.util.concurrent.ConcurrentHashMap<String,String>(); public void run() { String uniqueKey = "hogehoge"; while(true) { String data = getData(); if(!tmpMap.containsKey(data)) { tmpMap.put(data,uniqueKey); String tmpLocalKey = tmpMap.get(data); if(uniqueKey.equals(tmpLocalKey ) { somethingDoTask(); } } } }
>>68 使い方が正しくない
containsKeyとputの間に他のスレッドが割り込む可能性がある
その操作はアトミックにやらないとだめ
if (tmpMap.putIfAbsent(data, uniqueKey) == null) {
somethingDoTask();
}
こんな感じで
71 :
デフォルトの名無しさん :2009/09/15(火) 19:06:58
>>70 ありがとうございます。
そんなメソッドあったんですね 笑
割り込みは許容してます。
で、4スレッドでユニークに振り分けたキーでputし最終取得者を
String tmpLocalKey = tmpMap.get(data);
if(uniqueKey.equals(tmpLocalKey ) { }
で割り出しているつもりだったんですが、間違いですか?
72 :
デフォルトの名無しさん :2009/09/15(火) 19:10:42
まあ、現実に最終のif分の行で全スレッドで 実行対象になってしまったりしてるんで確実に間違いだとは思います。 CuncurrentHashMapの使い方の認識違いなのかな?
>>71 間違いです。
2つ以上のスレッドが同時にcontainsKeyとputの間に来た状況を想像してください。
まず、1つめのスレッドが自分のuniqueKeyをtmpMapにputしgetすると、自分のuniqueKeyが取得できるのでequalsはtrueを返します。
次に、2つめのスレッドが自分のuniqueKeyをtmpMapにputしgetすると、自分のuniqueKeyが取得できるのでまたもやequalsはtrueを返します。
74 :
デフォルトの名無しさん :2009/09/15(火) 19:31:50
>>73 ありがとうございます。
理解できました
synchronizedあたり使わないとまずいですね
synchronizedするんならConcurrentの価値ナッシング なんのためにputIfAbsentが追加されたと思って・・・
76 :
デフォルトの名無しさん :2009/09/15(火) 20:30:11
>>65 背景塗りつぶしで表示するメソッドrepaint()(だっけ?w)が
呼ばれてて、後に絵を表示すると、panelの背景がまっさらになってる
だけとかだったりしない?単に。
>>55 超適当
public class Hoge {
Hoge() {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
JLabel a = new JLabel(new ImageIcon(Hoge.class.getResource("a.jpg")));
JLabel b = new JLabel(new ImageIcon(Hoge.class.getResource("b.jpg")));
a.setBounds(0, 0, 700, 700);
b.setBounds(345, 345, 10, 10);
panel.setPreferredSize(new Dimension(700, 700));
panel.setLayout(null);
panel.add(b);
panel.add(a);
frame.add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Hoge();
}});}}
79 :
デフォルトの名無しさん :2009/09/15(火) 21:02:33
>>77 repaintなしで作ったプログラムでもやっぱりなってしまいます
なんかすいません
>>79 JLabelのサイズ設定とかは大丈夫なんだよね?
例えば、
label.setPreferredSize(new Dimension(size_x, size_y));
みたいな感じで。
画像A, Bが入ったそれぞれのLabelでこのサイズが同じだと
かぶった部分が消えちゃうと思うけど
81 :
デフォルトの名無しさん :2009/09/16(水) 01:05:01
質問です。 Randomクラスを用いて乱数を生成して、4桁のパスワードはどうやればいいのでしょうか? 現在、下記の形で書いているのですが、1桁などがでてきてしまって困っています。 初心者なもので、すみません。 Random rnd = new Random(); int ran = rnd.nextInt(10000);
1桁って、それは前3桁がゼロってことでは? printlnなんかじゃ前のゼロは表示されないが (0001とか変だからな)
String pass = String.format("%04d", ran);
assert ran >= 0 && ran < 10000; String pass = String.valueOf(ran + 10000).substring(1);
85 :
デフォルトの名無しさん :2009/09/16(水) 05:49:48
ありがとうございます。期待どおりの結果を得ることができました。
86 :
デフォルトの名無しさん :2009/09/16(水) 11:54:07
>>80 LabelのサイズのOKです。
今やりたいことはPanelに画像を貼って、
それをscrollPaneを使ってスクロールできるようにしたいわけです。
そうなるとpanelに貼るというよりはまず
labelに画像を貼って、viewPortにセットして、
そのviewPortをscrollPaneと連動させて、最後にそれをPanelに貼るという流れになるわけです。
そのあとframeにも貼り付けてますがそれは置いておいて。
今回の原因はviewPortにlabelを貼る際に、viewPort全体に張るようにしてしまっているからだと思います。
なのでviewPortに貼る際に座標指定をして張ることができれば解決できると思うのですが、そのやり方がわからない・・
>>86 こういう感じ?
JFrame
+- JPanel
+- JScrollPane
+- JViewport
+- JPanel
+- JLabel (画像A)
+- JLabel (画像B)
88 :
デフォルトの名無しさん :2009/09/16(水) 12:52:11
89 :
86 :2009/09/16(水) 14:53:57
>>87 そうです。
>>88 はわたしじゃないので気にしないでください。
上の方のJPanelと下のJPanelは別物と認識していいですよね。
まったく同じ方法で今行っていますが、画像の方はうまくいきました。
なぜかScrollPaneがうまく動かないですが、がんばってみます
MAPインターフェースの概念が理解できないのだが、何か良い例を紹介してるサイトはないかな
91 :
デフォルトの名無しさん :2009/09/17(木) 01:00:41
いまここで、教えてやんよ マップとして、持っていなくてはいけないメソッドの集合のこと
92 :
デフォルトの名無しさん :2009/09/17(木) 01:21:33
JavaがC/C++より勝れている点を教えて下さい 無いと思いますが・・・
全くありません(-_-)
public int kazu(int da1,String st1,String st2) { return st1.indexOf(st2, da1-1)+1; } public int kazu(int da1,String st1,String st2) { int da2; da2=st1.indexOf(st2, da1-1)+1; return da2; } 文字の位置を1〜とだすルーチンですが 同じ値で前者は1、後者は0と違う値を返すことがありました 直接返すか、一度変数に代入するかの違いです これを説明できる方いますか?
もう一度やってみたのですがその時おかしくなった引数は失念してしまいました、ごめんなさい でも以前も同じようなことがあったんです 変数に代入しないと正しい値を返さなかったということが
99 :
86 :2009/09/17(木) 15:58:35
>>87 のことなんですが、JViewPortにJPanelを貼り付けてもJScrollPaneが動きません。
他の条件はすべて同じにして、JLabelを貼り付けてみたのですが、これだとうまくいきます。
JPanelをJViewProtに貼り付けることはできないのでしょうか?
>>99 JPanelのレイアウトマネージャはnullなんだっけ?
そのせいでJPanelの大きさを計算できないのかもしれない
JPanel#setPreferredSizeかJViewport#setViewSizeで大きさを指定してみたらどうかな
101 :
86 :2009/09/17(木) 16:28:00
>>100 レイアウトマネージャーはnullにしてあります。
JPanelのサイズは1,2ともsetBounds(new Rectangle(int,int,int,int));で設定してあります。
JViewportのサイズはsetViewSize(getViewSize())で設定しましたができませんでした。
>>101 setBoundsはJViewportに変更されるからだめ。
setViewSizeはJPanelのスクロールサイズを知らないJViewportにスクロールサイズを教えるために使うわけだから、JViewportからgetしても0が返るだけで意味がない。
自分の希望する値を指定しる。
103 :
86 :2009/09/17(木) 16:43:05
>>102 とりあえずsetBoundsをsetPreferredSizeにしてみました。スクロールできるようになりましたが
もっとスクロールできるはずなのに短い距離分しかスクロールしません。
わかりにくいですが、本来右に100スクロールするとしたら10くらいしかスクロールしません。数字は適当です。
setViewSizeは引数がDimensionとかで使いかたがイマイチよくわからないのですが
104 :
86 :2009/09/17(木) 16:56:01
>>102 できました。Panelのサイズを貼る画像のサイズにしたらうまくいきました。
ありがとうございます!
>92 >93 それじゃ、Javaの存在意義は? これからJavaを独学しようかと思っているのだが・・・・・・。 最初からCを覚えた方がマシ? テキストエディタを作りたくて、何か言語を覚えようかと思っている。 プラットホームに依存しないところがいいかなーと思った。 それと、Cに似ているとの事なので、Javaを覚えればCにもとっつきやすかなーとか、思った。 何か、大いなるカン違いしているのかな? ・・・・・・テキストエディタなんて、何で作っても大丈夫とか言われそうだが。
107 :
デフォルトの名無しさん :2009/09/17(木) 18:43:23
WebアプリならJAVAが一番良いよ
初歩的な質問で申し訳ないのですが、 "||"は「または」という意味がありますが、 "|"はどういう意味があるのでしょうか。 例などを教えていただけると嬉しいです。
>>108 論理和
例は検索すれば山ほど出てくるはず。
111 :
デフォルトの名無しさん :2009/09/18(金) 01:00:32
こんばんは JavaにはCのioctl関数のようなものはないのでしょうか?
標準APIにはないね。
113 :
111 :2009/09/18(金) 01:20:14
標準APIには無い…ということは 標準以外のAPIに存在する、または他に実現する方法があるということでしょうか? もしよろしければ是非教えて頂きたいです
JNI使えば何でもあり。
115 :
デフォルトの名無しさん :2009/09/18(金) 02:02:48
java勉強するには「プログラミング言語Java 第4版」ってのが良いね 最近これで復習中
116 :
111 :2009/09/18(金) 02:03:53
なるほど…直接Cのioctlを使うのですか JNIのwikiによると >標準クラスライブラリからはアクセスできないオペレーティングシステムの機能 とあるのですが…やはりJava自体にioctlの代わりはないのですね、ありがとうございました
おはようございます
>>115 「プログラミング言語Java 第4版」はamazonだと酷評だけどそんなに良いですか?
他者の感想を鵜呑みにするわけではないですが、やはり他者の感想も大事なので気になります。
良ければどの辺がいい点ですか?
119 :
デフォルトの名無しさん :2009/09/19(土) 00:38:41
Map#get最速にするにはMapのキーをIntegerにすればいいのかな? Integer#hashCodeとInteger#equalsがIntegerがラップしてるint valueをそのまま返すだけみたいなんで。
Integerが最速になるだろうね。 ただしIntegerをキーとして自然にマッピングできるようなケースは限定的な気がするけど。
123 :
デフォルトの名無しさん :2009/09/19(土) 02:44:58
下手な奴がコーディングすると Boxing/Unboxing 多発で ヒープのフラグメントで遅くなりそうな悪寒。あれって Integer.valueOf() みたいな簡易 Singleton 実装じゃないよね?
土曜だね
128 :
デフォルトの名無しさん :2009/09/19(土) 10:43:44
String[]を、空白区切りの一つのStringにしたいのですが どうコーディングするのが奇麗でしょうか。 尚、コーディング規約では、ループには基本的に拡張for文を使えということになっています…。
StringBuilder b = new StringBuilder(); for(int i=0; i<array.length; i++){ if(i != 0) b.append(' '); b.append(array[i]); }
>>129 ありがとうございます。ただ、配列の数が多い場合,
最初以外でカウンタが0かどうか判断するのは余計なステップになるかなと思いました。
そう思って、下記のような処理を考えました。
StringBuilder b = new StringBuilder();
b.append(array[0]);
int i=1;
while(i<array.length){
b.append(' ');
b.append(array[i]);
i++;
}
コストとしては多分こっちの方が少ないと思ったのですが、
配列の中身を書き出すappend文が別の箇所に出てくるようになりました。
ループの最初もしくは最後だけ特殊な場合は、ループの中でその判断を行うのが普通なのでしょうか。
それとも、ループの範囲自体から最初もしくは最後の部分を外して処理を切り出すべきなんでしょうか。
(後者は,保守性が下がる気がしますが…。)
その程度で保守性なんて大してかわらんよ、好きなほうにすればいい
拡張for文はどこ?
拡張for文を使うとこうかな StringBuffer b = new StringBuffer(); for (String s; array) { s.append(s + " "); } s.deleteCharAt(s.length() - 1); 最後は↓でもいい String v = s.substring(0, s.length() - 1);
いろいろ間違ってるな
exception raised when array.length == 0.
136 :
デフォルトの名無しさん :2009/09/19(土) 12:13:39
動けば良いよ
これでいいじゃん。きれいだろ? public static String join(String delim, Object... elements) { StringBuilder sb = new StringBuilder(); for (Object element : elements) { if (sb.length() > 0) sb.append(delim); sb.append(element); } return sb.toString(); }
elements[0] が "" だったらどうすんだよ
これでどうだ? public static String join(String delim, String... elements) { StringBuilder sb = new StringBuilder(); for (String element : elements) { sb.append(element).append(delim); } if (sb.length() > 0) sb.setLength(sb.length() - delim.length()); return sb.toString(); }
>>128 プロはこんなところでバグが出かねないコーディングはしない。
public static String join(String delim, String... elements) {
return org.apache.commons.lang.StringUtils.join(array, delim);
}
全部一人でやってる零細システムのプロ? この程度のコードでデプロイ管理チームに作業が降るようなやり方はしない。
プロの方、教えて下さい NetBeansのプラグインでエディタを操作する方法を教えて下さい エディタにコード補完のようなポップアップを表示したいんです
CommonsのLang、Beanutilsあたりは最初から入れておくだろJK
入れるのはかまわないが、それが前提で語るとかどこのプロ(wだよ
なんだ偽プロか
都合の悪い質問には答えられないのを隠す それがプロの美学なり
ローカル事情を世界の常識と勘違いしてる奴はプロはプロでもプロ派遣。 ゆるゆる規約のサーバサイドしかやったことがありません。
ネタだろ。 適用条件出したりヒヤリングもせず押しつける技術屋なんていねーよ。 ていうかプロって言いだけの社会人二年目くらいじゃ。
いまどきcommons-langすら使わない(使わせてもらえない)なんて…
金融系じゃ Commons 程度のライブラリは内部で作ってて当たり前。 単体アプリや組み込み開発に至ってはバカかと言われるレベル。 君の住んでる世界が全てじゃないんだよ。
>>141 > プロはこんなところでバグが出かねないコーディングはしない。
と言いつつも、書いてるコードが既にバグってるわけで、とてもプロが書いたとは思えないな。
世間知らずと低スキルっぷりがまんまどっかの社内SEっぽくてワロタw
Loggingは使うけどCommonsは最近はあんまり使わなくなったなぁ。 Java1.5以降は特にそうだ。
Commonsなんて必要な部分だけコピペして使うもんだろw
だな
157 :
デフォルトの名無しさん :2009/09/21(月) 21:55:52
10月からSeasarをやれと言われてるのですが、 サーブレット、JSP、JavaBeansで開発したことはあるけど、 StrutsもSpringもHibernateも使ったことない。 「Seasar入門 はじめてのDI&AOP」を読んでるけどさっぱりわかりません。 何かお勧めの勉強方ありますか?
飯でもおごって実際にシーサー運用してる人に見せてもらう
>>158 まわりにいないんですよ...
ちなみにStruts、Spring、Hibernateを先にやったほうがよい?それとも時間の無駄?
関係するプロジェクトが多いからSeasarの何を使うのかの確認からかな。 DIやAOPから入ると逆に分かりづらいかもしれない。
>>160 まだ不明。というか向こうも割り振り決めてないと思う。
DI、AOPでお勧めの本とかありますか?
DIなんて難しく考える必要ねーんだよ。 Factory書くのめんどくさいよねー。フレームワークに登録しといていつでもObject取り出せればよくね? ってのが出発点なんだし。あとはAOPするのに必要ってぐらいじゃん。 Seasarでスマートデプロイ(Hotデプロイ)使うと開発効率はかなりいいと思う。 推奨のパッケージ構成は、実際のプロジェクト規模に応じて適用性は考慮する余地がある。
あー。MVCくらいは理解してないときついべ。 Web層が無法地帯になるとまともなレイヤー構成が維持できなくなるとおも。 画面ポンなシンプル業務ならそれでもいいけど。 エンタープライズな業務ならActionから先で業務独自フレームワークを構築したほうがいい。 そっから先で業務ロジック+ドメイン+永続層を扱わせて、Web層はActionまでですっぱり分ける。 どうせWeb+バッチ処理+Webサービスみたいにプレゼンテーションが一本でおさまらないから。
>>157 具体的になにがわからないの?
実際の作業的には「Seasar2入門」のほうがわかりやすい(Ver的な意味で)
JTextAreaでデフォルトで付いているアクセラレータを削除したい場合はどうしたらいいんでしょう? アクションマップを取得して削除してみてもアクセラレータは動いてしまいました。。。
削除するんでなく、ダミーの何もしないアクションを作って入れてみたら?
やっぱり質問取り消します。。。
どこで質問したら良いか全く分からないのですが、ここで質問をさせて下さい。 私は情報科でJavaを学んできました。 今、大学の上司(?)のような立場の人から1つ課題を貰っていてその課題の実現方法が分からず困っています。 課題は、「特定のIEブラウザを定期的に更新(F5)する仕組みを作ってみて」というものです。 検索すると、その機能を持つフリーソフトやブラウザの情報が出てくるだけで、 自分でプログラミングして何とかするような情報は出てきませんでした。 どなたか「この言語でこういうロジックで出来るんじゃない?」とか、 「そもそもプログラミングなどせずにこうすれば要求を満たせるよ」など、助言をお願いできないでしょうか。 どうやって機能実現出来るのかさっぱり分からず手が出ない状態なのです。
>>171 仮想キーボードを作成して定期的に対象ブラウザに対してF5の仮想キーおくりゃいいじゃん
後はタイマー組み合わせれば出来るだろう
>>171 Javaで直接別アプリへキー送信するのは無理
普通はWin32APIを使って
IEのHwnd取得 → PostMessageでF5キー送信だと思う。
CがわかるならBorland C++ Compilerがフリーで落とせる。
またはC#のExpressで[DllImport("user32.dll")] すればOK
java.awt.Robot使えっていう意味なのかな…… それで出来るかどうか知らんが。
ああ、Javaで作れってことか? 無理やりなJNIとのハイブリッドか、174の言うような力技になるのかな。
176 :
171 :2009/09/22(火) 01:55:59
みなさんご意見ありがとうございます。全く道が見えてない状態なので助かります。
言語はJavaでは無くても問題無く、またF5キーにこだわる必要も無いと思われます。
多分、放っておくとタイムアウトしてしまうサイトに対して、
自動で定期的に更新をかけてタイムアウトしない機能が目的の様です。
情報が後出しですみません。
>>172 すみません、私が知識不足でよく理解できません。
言語やクラス等固有名詞があると調べやすくて助かります。
>>173 C++かC#ならIEのコントロールが出来て、定期更新が可能という事ですか?
Cはかじった程度なのですが難易度は高いのでしょうか?
>>176 それならjavascriptで定期的にサブミットしてやりゃええんじゃないかな
自サイトに仕掛けるもんじゃなかったらすまんが
>>177 すみませんl、対象サイトは一応外部のものです。
大学内部のイントラですが。
179 :
176 :2009/09/22(火) 02:40:38
>178
http://www.pagereboot.com/ie/ このサイトにURL入れれば勝手に更新してくれる。
同じようにブックマークレット(ショートカット埋め込みのJavaScript)
で自動更新用Frameを作って、イントラのページを更新かけてもいい。
詳しくはググッてくれ。
IEはWindowsアプリケーションなので、普通にいじろうとするなら
WindowsのAPIを利用することになる。
WindowsのAPIはC、またはVisual Studioファミリのなんらかの言語から
利用することができるので、そのような言語を使用することになる。
難易度的にはWindowsAPIの入門レベル。シンプルな実装なら30行で終わる。
爆釣とか
181 :
デフォルトの名無しさん :2009/09/22(火) 06:35:30
Java バイトコードを吐くCコンパイラを作れば、 JVMの上でCのプログラムを実行させる事が出来ますか?
Cソースから、Javaのバイナリ作ってことか。 機能を全部作れば出来るだろ。 それならJavの文法に従った方が楽だがな。
×Jav ○Java
より簡単なのは、CソースをJavaソースに変換すればいい。
お断りします。
189 :
デフォルトの名無しさん :2009/09/22(火) 11:10:58
(・)(・)
>>190 Javaでそういうグラフを描きたいということ?
drawLineで線描いたりfillRectで棒描いたりすればよいのでは?
192 :
176 :2009/09/22(火) 14:48:51
>>179 ありがとうございます。
C++でプログラミングして、教えて頂いたBorland C++ Compilerで
コンパイルするという方法でやってみようと思います。
ちなみにご案内頂いてるリンクページなのですが、
ページ下部のブックマークレットが上手く使えません。
下記の方法で正しいですよね?
@ページ下部ブックマークレットのリンクをお気に入りに追加
A自動更新させたいページに移動
Bお気に入りから追加したブックマークレットを選択
193 :
179 :2009/09/22(火) 20:26:40
>>192 スレ違いなんで簡単に。
まったく初心者がいきなり作るの大変だろうからちょっと助けてあげよう。
エラー処理やらタイマー、個別のIEウィンドウの選択は自分で実装してみてね。
#include <windows.h>
#include <stdio.h>
int main(int argc, char** argv) {
HWND foreHwnd = GetForegroundWindow();
HWND hwnd = FindWindow("IEFrame", NULL);//IEのウィンドウ(のうちどれか一個)を取得
SetForegroundWindow(hwnd);//キー送信のためのフォアグラウンドにする
hwnd = FindWindowEx(hwnd, NULL, "WorkerW", NULL);//キー送信対象になるIE内部ウィンドウを取得
char buff[256];
GetWindowText(hwnd, buff, 256);//取得したIEのウィンドウタイトルを取得してみる
printf("%s\n", buff);//タイトルを表示してみる
PostMessage(hwnd, WM_KEYDOWN, VK_F5, NULL);//F5キー押下情報をIEへ送信
PostMessage(hwnd, WM_KEYUP, VK_F5, NULL);//F5キー押上情報をIEへ送信
//ここでforeHwndをフォアグラウンドに戻してもいい
return 0;
}
ブックマークレットについてはただググって引っかかったサイト紹介しただけなのでスルーさせて。
実行の仕方は間違ってないはず。
194 :
179 :2009/09/22(火) 20:46:20
FindWindowExの行はprintfの後に移動してくり。 コメント書いてるときにずらしてしもーた。 スマソ。
コメントする前にスレタイを読みましょう
親フレームが持っているJTextFieldの内容を 親フレームが作成したダイアログからダイアログを閉じないで変更することは可能でしょうか?
可能です。
ヒントを教えて頂けないでしょうか・・・。
(ヒントを教えることも)可能です。
いやです
どういう状況で不可能だったのでしょう?
parentから、そのテキストフィールドをとってくりゃいいんじゃないの
203 :
デフォルトの名無しさん :2009/09/23(水) 09:04:40
メモリ内での挙動についての質問です。 以下のプログラムでb=a;が何をしているのかよく分かりません。 package sep10;//パッケージ名 class SimpleX {//変数xをもつクラスを定義 int x; } public class step005 {//クラス名 public static void main( String args[] ) { Simplex a = new SimpleX();//変数aをSimplXのインスタンスとして生成 Simplex b = new SimpleX();//変数bをSimplXのインスタンスとして生成 a.x = 100;//変数aのメンバ変数xを初期化 b.x = 200;//変数bのメンバ変数xを初期化 b =a;//変数bを変数aのメモリアドレスに変換? System.out.println(b.x); } } b=a;の考え方として、 変数bを変数aのメモリアドレスに変換していると考えるのでいいですか。 また、そうすることでメモリ内では何が起こっているのですか。 変数bをSimplXのインスタンスとして生成したさいのメモリアドレスはメモリ内に残っているのですか。 回答をよろしくお願いします。
204 :
デフォルトの名無しさん :2009/09/23(水) 09:12:56
これをコンパイルし実行したら例外が発生してしまったのですが、なにがいけないのでしょうか? class Henkan{ public static void main(String args[]){ float f = (float)(-100.0); String s = String.format("%08x", Float.floatToRawIntBits(f)); System.out.println(s); Integer i = Integer.valueOf(s,16); }
205 :
デフォルトの名無しさん :2009/09/23(水) 09:16:50
質問です。 long SessionID = (long)combo2.getSelectedItem(); の部分でObjectをlongにキャストできませんと コンパイルエラーがおきました。 どのようにすれば解決できるのでしょうか?
>>203 基礎的なことが書かれた入門書よんでこい
簡単に説明すれば
Simplex a = new SimpleX();//変数aをSimplXのインスタンスとして生成
これが間違い
Simplex a = new SimpleX();//SimpleXのインスタンスを生成して、変数aで参照する
したがって、
a = b; //変数bの参照先を、変数aで参照する
>>205 Java1.5以上にする
または
long SessionID = ((Long) combo2.getSelectedItem()).longValue();
ただし、実行時エラーがおきるかどうかは知らん
ごめ、1.5にしても通らないわ。 1.5なら、 long SessionID = (Long)combo2.getSelectedItem(); でOK
>>204 どこでコンパイルエラーが発生したかくらい書けよ
>>203 「javap -c」を調べてみましょう。
>>204 発生した例外の名前とおりの理由です。発生した例外クラスの説明はJavaのAPIリファレンスに書いてあります。
>>205 combo2が定義されいません。
私はコンパイルエラーを吐きます。
ファイルを複数個読み込むにはどうしたらいいのでしょうか? import java.net.*; import java.io.*; class Client { public static void main(String[] args) throws IOException { ObjectOutputStream 出力ストリーム; ObjectInputStream 入力ストリーム; String サーバのIPアドレス = args[0]; String ファイル名 = args[2]; String バッファ = null; int サーバのポート番号 = Integer.parseInt(args[1]); Socket サーバのソケット = new Socket(サーバのIPアドレス, サーバのポート番号); System.out.println("これからサーバに接続します"); 出力ストリーム = new ObjectOutputStream(サーバのソケット.getOutputStream()); 入力ストリーム = new ObjectInputStream(サーバのソケット.getInputStream()); 出力ストリーム.writeObject(ファイル名); 出力ストリーム.flush(); try { バッファ = (String)入力ストリーム.readObject(); } catch (ClassNotFoundException error_report) { System.out.println(error_report); System.exit(1); } System.out.println(バッファ); サーバのソケット.close(); } }
>ファイルを複数個読み込むにはどうしたらいいのでしょうか? 1つ読み込んで、終わったら次を読み込めばいい
213 :
デフォルトの名無しさん :2009/09/23(水) 09:32:05
javap -c とは何でしょうか?
(゚∀゚)
215 :
デフォルトの名無しさん :2009/09/23(水) 13:21:30
appletは無料HPで使用できるのでしょうか? また、なぜservletは使用できないのでしょうか?
アプレットは、ダウンロードしてブラウザ上で動かすので、ブラウザがアプレットを動かせるようになってれば動きます。 サーブレットはサーバ上で動かすので、サーバがサーブレットを動かせるようになってないと動きません。
appletを設置するのは画像を置くのと手間は変わらないし、 動作するのはブラウザの中だから鯖への負荷もない。 サーブレットは、認知度が低い・受け入れが鯖にとって面倒、 レンタル用の貧相な鯖でJava VMを動かす必要がある。 といったところか。
218 :
デフォルトの名無しさん :2009/09/23(水) 13:30:16
サーブレットを動かせる無料レンタルサーバーはありますか?
219 :
デフォルトの名無しさん :2009/09/23(水) 13:40:08
ないだろ
無料鯖でサーブレットも海外なら幾つかあるよ とはいえバージョンが固定されていたり使い物にはならない 基本的にVPSでもいいからルート権限のある有償鯖でないと無理 ちなみにちょっと試すならばAmazonがベスト
なんで無いんだろうね
売る側にしたらメモリもCPUも食いまくるJava売るよりも、PHPで大量に使わせたほうがいいだろ
223 :
203=13 :2009/09/23(水) 14:10:13
回答ありがとうございます。 何度も読み見返してみて以下のようになりました。 SimpleX a = new SimpleX();//SimpleX型の変数aをSimplXのインスタンスとして生成してそのメモリアドレスを参照する a = b; //変数aは変数bの参照先を、参照する でいいですか。 そのため、203のコードではインスタンスが2種類メモリに確保されるが、片方は使われないと考えていいですか。 javap -cはどうもDumpというメモリ内のデータを見れる方法みたいですが、後で調べておきます。
224 :
13 :2009/09/23(水) 14:15:29
解釈として以下のどちらが適切ですか? 1.SimpleX a = new SimpleX();//SimpleX型の変数aをSimplXのインスタンスとして生成してそのメモリアドレスを参照する 2.SimpleX a = new SimpleX();//SimpleX型の変数aはSimplXのインスタンスを生成してそのメモリアドレスを参照する よろしくお願いします。
>>224 3. SimpleXインスタンスを生成し、その参照を変数aに格納する。
>>204 変数とインスタンスは別だって解らないなら諦めた方がいいよ
227 :
13 :2009/09/23(水) 15:59:02
回答ありがとうございます。 今やっと、分かりました。 224はどちらも正しくありませんでした。 40時間程勉強してやっとここまできました。 今度はメソッドと戻り値を勉強してみようと思います。
JScrollPaneに貼り付けた画像に、 Java2Dのアフィン変換をかける方法ってありますか? 今はImageIconをJLabelに貼ってJScrollPaneに追加という形を 取ってるんですが、この方法だとpaint()の中でg.drawImage()しないので、 アフィン変換出来ないんですよね・・・ それから、画像に範囲指定枠などを重ねて表示したいんですが、 これも、上記の方法では実現出来ないんでしょうか??
貼る前のイメージ自体をAffineTransformOpかなんかでアフィン変換しておくとか 範囲指定枠もイメージ上に描いてしまうとか
って 一回言ってみたかったんだ、てへ
232 :
13 :2009/09/23(水) 18:37:48
コマンドプロンプトで javap -c Sep10.step005 を実行しました。 するとバイトコードが出てきました。 その中で b =a;//変数bは変数aの参照先を参照する。 System.out.println(b.x); にあたる部分が以下のものだと思います。 29: aload_1 //ローカル変数1をスタックに入れる 30: astore_2 //スタックから値を取り出し、ローカル変数2に入れる 31: getstatic #5; //Field java/lang/System.out:Ljava/io/PrintStream; //static変数を取り出す 34: aload_2 //ローカル変数2をスタックに入れる 35: getfield #4; //Field Sep10/SimpleX.x:T //変数bのメンバ変数xを取り出す 38: invokevirtual #6; ///Method java/io/Println:(T)V //インスタンスメソッドを呼び出し、表示する。 41: return これでなんとなく分かりましたが、実際にメモリを見てみたくなりました。 Dumpツールでお勧めのソフトはありませんか。
233 :
13 :2009/09/23(水) 18:45:06
いまいちよく理解できていないのが203のコード中の変数aと変数bのメモリの実態です。 b =a以前のコードでは 変数aには変数aのアドレスと100という数値が格納されていて 変数bには変数bのアドレスと200という数値が格納されているはずです。 b = a以後のコードでは以下のどちらになっていますか。 1.変数bには変数bのアドレスと100という数値が格納されている。 2.変数bには変数aのアドレスと100という数値が格納されている。 231のバイトコードを見る限りでは2のような気がします。 長文が続いてしまいましたが回答をよろしくお願いします。
もしかしてこいつは荒らし目的なんじゃないかと思い始めた
>>232-233 JITコンパイラがあるので、Javaのバイトコードがそのまま実行されるわ
けじゃない。なので、メモリをダンプしても無意味。
>>233 に関しては、どっちも違う。代入前で
・変数aはインスタンスAのアドレスを格納している。
インスタンスAは.xに100を格納している
・変数bはインスタンスBのアドレスを格納している。
インスタンスBは.xに200を格納している
だとして、代入後は
・変数bはインスタンスAのアドレスを格納している。
になると考える。
こいつ、まじうぜえな
たしかに
>>233 ダンプツールとしてはjmapが標準搭載されています。
根本的に変数とオブジェクト(インスタンス)の関係が理解できていないのではありませんか?
> 1.変数bには変数bのアドレスと100という数値が格納されている。
> 2.変数bには変数aのアドレスと100という数値が格納されている。
aもbも参照しか保持していません。上記はどちらも間違いです。
「bの参照先オブジェクトがもつxの値は100」は正しいです。
上記は住所と家の関係で考えるとよいかもしれません。
・住所欄に記入するのは住所です。
実際の家が住所欄に埋め込まれているわけではありません。
・あなたの住所は、引越しをする度に別の住所へ書き換えられます。
元の住所にあった家はそのままであり、
新しい住所の家に元の住所の家を移築するわけでは(普通)ありません。
・住所は家の位置を表していますが、家そのものではありません。
住所自体には風呂やトイレはついていません。
・履歴書の住所欄に記入した住所と、通販ページで記入した住所、
どちらも同じ住所であれば、同じ家をあらわしています。
・あなたがトイレに花瓶をおいたとしたら、
履歴書でも通販ページでも、
住所欄の住所に存在する家のトイレには花瓶が置いてあるでしょう。
*住所欄は変数、住所は参照、家はオブジェクト、花瓶は値に置き換えましょう。
自演乙
240 :
13 :2009/09/23(水) 20:57:37
分かりやすい説明をありがとうございました。 おかげで変数aのメモリ領域のすぐ後ろにインスタンスがあるのだと勘違いしていたことにやっと気が付きました。 以下のコメントで正しいですか。 package Sep10;//パッケージ名 class SimpleC {//変数xをもつクラスを定義 int x; } public class step005 {//クラス名 public static void main( String args[] ) { SimpleC a = new SimpleC(); //SimpleC型の変数aを宣言し、変数aのメモリ領域をメモリに確保する。 //SimpleCをインスタンス化(クラスSimpleCのためのメモリ領域を確保)しインスタンスaとする。 //変数aのメモリ領域にインスタンスaの先頭アドレスを書き込む。 SimpleC b = new SimpleC(); //SimpleC型の変数bを宣言し、変数bのメモリ領域をメモリに確保する。 //SimpleCをインスタンス化(クラスSimpleCのためのメモリ領域を確保)しインスタンスbとする。 //変数bのメモリ領域にインスタンスbの先頭アドレスを書き込む。 a.x = 110; //変数aに書き込まれたアドレス先のインスタンスaにあるメンバ変数xを初期化する。 b.x = 200; //変数bに書き込まれたアドレス先のインスタンスbにあるメンバ変数xを初期化する。 b =a;//変数bのメモリ領域に変数aに書き込まれたインスタンスaの先頭アドレスを書き込む。 System.out.println(b.x); } } よろしくお願いします。
荒らし認定
確実に
>>240 いいと思うけど、変数とインスタンスに同じa,bを付けると紛らわしいから、
インスタンスには別の記号(A,Bとかx,yとか1,2とかア,イとか)を付ける方がいいよ
あと、実際のプログラムにそのコメント量はウザイ
理解できたら、もう書かないように
何度も説明されている事をてめーが無視してんじゃねえかよw
>>193 大変遅れましたがご意見ありがとうございました。
コードを参考にさせて頂き、Cを勉強してみます。
質問です。 swingを使用しています。 トップ画面に戻るボタンがあり最初の画面では無効、別のボタンを押して画面が切り替わると戻るボタンが使えるようにしたいです。 回答をよろしくお願いします。
現在、どの画面にいるかチェックしてトップ画面以外にいるなら有効にしろ
なるほど、つまり定期的に表示画面のステイタスをチェックしてボタンの イネービリティをチェンジすれば良いわけですね。サーバを立てれば良いのでしょうか。
オブザーバ立てれば良いんじゃね。
アドバイザーだろ普通
じゃあ俺はバドワイザー!
切り替わる画面ってのが複数あるのなら 画面遷移の履歴をリストかスタックに入れといて、履歴が空なら無効、それ以外は有効にするとか。 それを判定するタイミングは画面を切り替えるボタンのアクションリスナーとか。
俺もバドでいいや
皆さんありがとうございます、がんばってみます
ボストンバスターとか。
256 :
デフォルトの名無しさん :2009/09/24(木) 08:08:32
257 :
デフォルトの名無しさん :2009/09/24(木) 10:07:58
public static void main(String[] args) { System.out.println("素人ばっかりだな"); }
public static void main(String[] args) {
System.out.println("
>>257 おまえモナー");
}
259 :
デフォルトの名無しさん :2009/09/24(木) 11:20:06
>>258 public static void main(String[] args) {
while(1) {
if (
>>257 == Hume.get()) {
break;
} else {
System.out.println("
>>257 は塵");
}
}
}
260 :
デフォルトの名無しさん :2009/09/24(木) 18:27:41
>>259 > while(1) {
コンパイルエラー
262 :
デフォルトの名無しさん :2009/09/24(木) 18:37:34
264 :
デフォルトの名無しさん :2009/09/24(木) 18:42:10
>>263 Javaしかできない汎用性もない低能か
>>262 >public static void main(String[] args) {
>System.out.println("
>>257 は塵");
Cねえ…
C じゃなおさら通らねぇだろw
267 :
デフォルトの名無しさん :2009/09/24(木) 19:00:39
ほんとだめだな 柔軟性がない
柔軟性のあるコンパイラを開発してくれ
269 :
デフォルトの名無しさん :2009/09/24(木) 19:05:20
うむ 俺には無理なんで、よろしく頼む 期待してるぞ
スペルミスを自動補正してくれるけど、コンパイルするたびに動作が変わったりするんだな
コンパイルするたびに賢くなるといいな
最終的には強い人工知能になるんですね、わかります
ほんとに初心者いるのここ なんか毎日入門書読みながら抽象クラスとかインターフェースとか勉強しつつ 簡単なプログラム書いて楽しんでんだけどこんなんでいいのか不安だ Cで計算機プログラミング?やってたときと同じことやってる気がSystem.out.println(); 一通り入門書読み終わったらみんな次どんなステップ踏んでるの? 分厚いウェブブラウザをつくるみたいな買って読んでんの?
辞書登録しててみすった System.out.println(); ↓ する に変換して読んでください
しすだろjk
いや、sで出るようにしてたんだw 将来的に作りたいのは、 ウェブ上でブレインストーミングできるようなものが作りたいなとおもってるんだけど 無理なのかな
動くものを作ったほうが楽しいのは確実。 だがウェブで動くものを作るのは色々と前提知識が多くて実は面倒。 つまり、創るJava最強
>>278 出来ればeclipseで創ってるもののほうがよかった
けど、amazonのレビューみたら結構評判良かったから
明日本屋で立ち読みしてくる
>>279 そうそう
もっと自由配置リアルタイム更新型のチャットみたいなのを
つくるイメージでいたけど、大体はこんな感じ
>>280 もう既に競合がたくさんいるのに、あえて後発組になって作るのか?
ビジネスじゃなくて趣味なんだったら何も言わんが。
>>281 あくまでも趣味というか勉強のため
というか
どのくらいのスキルで、
どのくらいのものが出来るのかまだわかってない
それ以外にもなんかの専ブラとか創りたいものはたくさんあるんだけど
1つ完成させれば色々応用聞くかなと思って
ビジネスは今の時点では考えてないから、
ソースごとxoopsのモジュールとかで無料配布して
自分のサーバーに乗せて仲間内で使ってねって感じで出そうかなとか思ってた
自営業の閑散期にそういう Web 系ツールいくつか作ってはみたけど、 どんなに本格的で良いツールでも営業とか広告とかマーケティング しねぇとユーザ集まらねーぜ? 勉強目的ならいいけどそこまでする気あるかい? 運営も鯖のメンテ面倒だし。
いいんじゃねーの? 好きなだけやって飽きたら辞めれば それに運用することで得られるスキルは確実にあるわけだから無駄ではない
>>283 現時点ではない
30人に使ってもらえたら自分としてすごくうれしいという感じだから
しかも自分はプロじゃないから
>本格的で良いツール
がすぐには実現できないと思う
もし出来たらそういうことも考えようと思ってるけど
まだまだ先の話だと考えてる
> もし出来たらそういうことも考えようと思ってるけど > まだまだ先の話だと考えてる 俺も昔Webサービス系で夢を追いかけたクチから、 本気でやる時のためにアドバイスをやる。 まずビジネス側面から考えろ。 「使いたい人だけ使えばいい」 なんてものを作ってもそれはオナニーだ。 そんなものは一人も使わん。一人もだ。
>>283 だけど
>>286 には全面的に同意しておく。
商用でなくてもオープンコミュニティで必死こいてサポートしないと
今時は一人も来ないんだよな。
そんなんよりエロ動画のダウソアプリ作った方がよっぽど利用者多い罠。
291 :
デフォルトの名無しさん :2009/09/24(木) 23:30:50
うわぁ…
まあ評価するのはあくまで素人プログラマーじゃなくユーザだしな がんばれ
javaだとCのように単純なXOR交換はできませんか? XOR R1, R2 XOR R2, R1 XOR R1, R2 の手順でやっても変数が0になってしまうのですが・・
ふつうに交換できるよ。 (R1とR2ではなく)R1とR1だと両方ゼロになる、 というXOR交換の仕様の話じゃないよね?
JavaでPOSTすると日本語の値が受信側のreq.getParameter()で 取得した値が???になるんですけどどこを疑えばいいでしょうか? 送信側は値をURLエンコードしています。 URLエンコードしてるのでASCII文字を送信してるので 化ける理由がわからないので困ってます。 よろしくお願いします。
>>294 int i = 1, j = 2;
i ^= j; j ^= i; i ^= j;
System.out.println(i + "," + j);
でできる。もしかしてXOR交換を
i ^= j ^= i ^= j;
のように記述していない?
Cならこの書き方でもできるけどJavaではCと評価順序が違うのでできない
req.setCharacterEncoding("Windows-31j");
300 :
デフォルトの名無しさん :2009/09/25(金) 21:34:22
JLabelで文字列を表示しているのですが、 文字列が長くなってもJLabelのサイズを、初期のままにする事は出来ますか?
setPreferredSize()
windowsでjavaを使ってみたけど、Linuxより速いのは気のせいか?
Windows だからという理由で何でも遅いと思ってるバカはただの厨房だから無視して良し。
305 :
303 :2009/09/25(金) 22:33:58
>>304 >Windows だからという理由で何でも遅いと思ってるバカはただの厨房だから無視して良し。
はてなダイアリーでwindowsのswing(どのコンポーネントかは知らん)が10倍速くなったって記事を読んだから(本当なのか?)
windowsの方が早い気がするってレスしたんだけど
私のレスがあなたにとって何か問題がありますか?
306 :
デフォルトの名無しさん :2009/09/25(金) 22:43:06
windowsのswingはDirectXで描画しているらしい
307 :
デフォルトの名無しさん :2009/09/25(金) 22:47:12
ヽ|・∀・|ノ
φ(゚Д゚ )フムフム…
>>305 オメーの事じゃねぇよ。そういう話をしてる奴が居たらという話。
310 :
303 :2009/09/25(金) 23:02:37
>>306 windowsのJREはDirectXで描写しているのか、それは知らなかった
そんじゃ、本気出せば.netと同じくらいの速さにできる可能性があるってことか
しかし、M$はそんなことを許してくれないと思うけど
.netってとても遅く感じてたけど どっちが速いの?
実際 Linux なんて Unix 風 OS の中でも LWP の実装がかなり遅かったから スレッド使いまくりの Java がまともに使える環境としてはかなり後出だったな。 GUI に関してもグラボのアクセラレーションは期待できないし、取り立てて I/O が強いわけでもない。
>>313 誤解が解けたなら良いじゃねぇか。落ち着けよチンカス
Eclipseもwindowsの方が速いらしいし、 もうちょっとwindows以外のOSにも力を入れてくれれば面白いのにな〜
取り立てて遅いのは Linux みたいな I/A のフリー Unix 環境だけだろ。 OSX や商用 Unix あたりの、ハードに対応した専用ドライバがあって それ向けに実装された JDK を持ってる環境で遜色を感じた事はない。 GUI なしなら変わらん、と言いたいところだが AIX なんかの商用 Unix に比べて高負荷でアップアップ状態に陥るのも早い。 だから使えねーというレベルはないが。
どうやったら、ガーベジコレクションを促すことができるの?
>>317 促されたからといって、するとは限らない。
じゃあどうすればいいの?
320 :
317 :2009/09/26(土) 01:26:55
>>319 俺が質問したいことはその通りなんだが、
俺の代わりに書き込むなよ
System.gc() 仕様上は確実に実行されることが保証されていないが、大抵の実装では直ちに実行される。
322 :
317 :2009/09/26(土) 01:56:38
eclipse.orgのサイトが重すぎなんですけど… トップページ表示するだけで数十秒待たされる 昔からこんな感じなんですか?
んなこたーない
Javaのプロセスで全てのスレッドから使用できるListを作りたいのです。 どうすればよいのでしょうか? 多くのスレッドが一度に書き込み、読込みを行うので、効率よくそのListに アクセスする方法も教えていただきたいです。 よろしくお願いします。
>>325 普通に変数を作れば、その変数がスコープに入る全てのスレッドからアクセスできる。
ただ、ArrayList とかを工夫無しに皆でアクセスすると、競合する(誰かがかきかえてい
>>326 書き換えている最中に読んでしまう)ので、
synchronized() で括ってアクセスするようにするか、Vector を使うなどする。
328 :
デフォルトの名無しさん :2009/09/27(日) 11:07:33
>>325 implements List
java.util.ArrayList
java.util.concurrent.locks.ReentrantReadWriteLock
で自分で作れば?
継承するか実装するのかは個人の自由だけど。
スレッドセーフだけどListに入れた物を処理途中で消す処理があるなら
Queueとか使ったほうがいいと思うけど。
ご回答ありがとうございます。
>>326 普通にArrayListの変数を宣言した場合、複数のクラスから
使用することができませんでした。
ArrayListの宣言したクラスを使用するとき、そのクラスをnewするため、
新しいArrayListができて、複数のクラスから使用できなかったのです。
(複数のクラスで複数スレッドを動かし、プロセス内のスレッドが
1つのListにアクセスさせたいのです)
クラスとインスタンスとスレッドの区別が付いてないような。
シングルトンすら理解できていないバカもいるのか
>>331 すみません、まだ勉強中です。
シングルトンで実装すれば、staticのようにJVM内で全てのスレッドにより
参照可能なのでしょうか。
staticでListを宣言するのは、あまり見たことがないので、ためらっていました。
プロセスリスト?だかをシングルトンで実装すれば済むでしょ あとは適当にgetInstance().get()とかで好きなようにやればいい
>>332 別にstaticでも良いと思うけど。
駄目な理由なんてないでしょ。
>>332 static にすればアクセスし易いが、必要が無い。
アクセスする人に変数を渡すなりすればいいだけ。
これはスレッド云々の話ではない。
336 :
デフォルトの名無しさん :2009/09/27(日) 12:01:18
使い方によっては static final List<Object> hoge=new ArrayList<Object>(); でも正解だったりするわけで
337 :
デフォルトの名無しさん :2009/09/27(日) 12:02:50
finalじゃ、プロセス更新できねーよw プロセスは常に同じと考えているのかね
ArrayListじゃ同期は保障されてないよ。 頭の悪い塵がいるようだね。
やべぇ。超レベル低いなw
>>338 格納されているオブジェクトもイミュータブルですか?
Collections.synchronizedList(ArrayList)
344 :
デフォルトの名無しさん :2009/09/27(日) 13:10:04
>>337 使い方によってはと書いてるだろ?
素人君はもっと勉強したまえ
>>344 質問内容と関係ないでしょ。
本筋からそれてる内容で君のような低能じゃレスするまでもないよ。
346 :
デフォルトの名無しさん :2009/09/27(日) 14:04:05
>>344 お前みたいな奴が質を下げてるの自覚したほうがいいよ
どうせメソッド内の全アクセス範囲で synchronized で囲まなきゃならないのに 宣言も Collections.synchronizedList() 使ってる人はたまにに見かける。 そういうのってよくわからずどっかのコーディング規約でつけた知識なのだろう。
Collections.synchronizedList()で同期化をとれないのですか? CopyOnWriteArrayListだといけるのですか? それともaddメソッドをsynchronizedで囲めば大丈夫なのでしょうか?
少しは自分で調べろよ 馬鹿じゃねーの
>>348 Collections.synchronizedList()でも、Iteratorでまわしながら更新とかしているとダメ。
普通にaddするだけなら、大丈夫だと思うけど。
わかりました。ありがとうございます。
>>348 個々のオペレーションで同期化されていても、プログラムとして正しいとは
限らないぞ。どこからどこまで他のスレッドに割り込まれてはいけないかを
考えて実装する必要がある。
1: value = list.get(0);
2: value += 10;
3: list.set(0, value);
なんて実行しているとき、1と3との間に別スレッドでlist.add(0, hoge)とか
実行されたら明らかに不味いけど、特にエラー等が出るわけじゃない。
わかりました。ありがとうございます。
てか Collections.synchronizedList() 付けるだけで済む状況の方がまれだろ。 他のコレクションと同期取ったり、forで廻しながら特定の要素だけ抽出・削除したり。 はっきり言って Collections.synchronizedList() なんか付けるより個々の操作で synchronized 付ける方が多い。
Javaから複数スレッドでファイルを読み込むとき、別スレッドが書き込み中であれば ロックされて読み込みできないのでしょうか? OSはLinux(RedHat)で、JavaのVersionは1.4です。
実装依存。 書き込み中でも読み込みしたいのなら FileChannel で共有ロックでもかける。
357 :
デフォルトの名無しさん :2009/09/27(日) 19:29:26
自分で試せば?
java.nio.bytebuffer で任意の位置から指定された長さのByte[]データを得るにはどうすればいいのでしょうか? 例えば オフセットが10から18のデータと オフセットが19から30のデータを取得したいのですが
buffer.get(buf, 10, 9); buffer.get(buf, 19, 12);
もう少し詳しくお願いします 補足が有ると助かります
いやです。
回答者も含めて初心者が集うスレだったのか。 理解してなかった。
ここはそろそろ初心者じゃなくなったかな?ってころに腕試しするところだろ。 まちがったらたまに熟練工が訂正してくれる。
Javaプログラマは頭が悪いと聞きましたが 先輩方もやはり頭が悪いのでしょうか?
このスレは色々教えてくれたり、アドバイスしてくれたり みんな良い人ばかりだよ。 たまに荒らそうする人もいるけど。たぶん、そういう人は童貞なんだろうね。 童貞ほど悲惨なものは存在しないからね・・・。 で、Java5からsynchronizedは使わなくなったのですか? 使っていると「遅れてるぅ!」と言われたのですが・・・。
ワクワクしちゃうバグとか〜グダグダすぎる例外と〜♪ 全部キャッチして〜かっこで綴じちゃおう! 今日の出来事思い出して〜いつも心がキュンとなって♪ もう資源がないけどリリースしなくっちゃ! ララ☆また明日♪
Javaに限らず頭悪いのは多いだろ。 ほんの一握りの出来る人たち以外は コンピュータの基本も知らん素人ばかりだよ。 勉強もしねーし。
おいおい、初心者が質問しやすい雰囲気をつくろうぜ!
いいえ、派遣が初心者叩いて喜ぶスレです。
>>366 んなこたねーよ。
セマフォ作ってみましたとかならともかく。
>>366 使わなくても、他の方法で書けるようになった。
別に使っても使わなくてもどちらでもよい。
ただ、timerとか使っているとダサいかも・・・。
何で?
SwingTimer・・・
何で Swing 前提なんだ
すまん・・・
>>366 ReentrantLockはtry-finallyを書くのが面倒だ。
シンタックスシュガーでいいから専用のブロック構文を用意して欲しかった。
>>366 > 使っていると「遅れてるぅ!」と言われたのですが・・・。
そいつはバカだから適当にスルーしておけ
カスタムタグ作りたいんですけど、どうしたらいいんでしょ。
作り方調べて作ればいいと思うよ
381 :
デフォルトの名無しさん :2009/09/28(月) 19:49:25
>>380 所詮はその程度か
知ってて質問してみりゃ自分がしらねーもんだから曖昧表現だしな
このスレJ2EEには弱いやつしかいねーしな
次の方どうぞ〜
随分昔ならいざしらず、最近のJ2EE開発でカスタムタグ作るのってレアじゃない? 何したいのか知らんけど、Viewであまり特殊なことしないほうがいいよ。
触るなって
何で?
eclipseのコンパイラってjavacじゃないんだな。初めて知った。
だから触るなw
何で?
>>387 出力されるバイトコードレベルで癖が違ったりしてるか?
javac も Java だからコンパイラエンジンとしてそのまま中で使っていると思う。
レキシカルアナライザか構文チェックあたりの癖はちょっと違っているが。
JavaからActiveDirectoryにアクセスするには何がお勧めですか? JNDIというのでいいですか?
いいですよ
それでいいと思うよ
>>393 ,394
そうですか。ではこれでいきますね。
396 :
デフォルトの名無しさん :2009/09/28(月) 21:10:53
>>391 javacにないバグ(逆も秦)があることはあるよ。
以前JDTのコンパイラのバグを見付けてjavacとの動作の違いを
レポートしたことがある。
JDTが数値かどうかをCharacter.isDigitで判定していたせいで、
全角数字でリテラルを作れたとゆーw
数値リテラル、ね。
そんな細かいコンパイラの違いに気付くほど精密なプログラミングをしてるのか君達は
そうですよ
文字コードがEUCのものってjavaで扱うと勝手にjavaで使える文字コード(UTF-16とか)に 変換されちゃうんですっけ? DBで文字コードがEUCの文字をSELECTして、EUCの文字コードのままファイルに書き込むのは不可能?
何でもかんでもUTF-8にしときゃいいんだよ
>>402 前者の変換はその DB の JDBC ドライバが勝手にやります。
後者は書き込むときにプログラマが EUC-JP を指定します。
>>402 です。
JDBC ドライバが、EUC→UTF-8に変換させた時って
”梶hとかの特殊な文字だと文字コードが死んじゃいませんか?
僕の勘違いですかね・・・
JavaよりJavaScriptのほうが使い前があるような気がする
>>409 JDBC ドライバが文字コード決めてるんじゃないよ?
Oracleで言えばインスタンス単位で文字コード決める訳よ
全く話がバカレベル
>>410 JavaとJavaScript(JS)hくぁ別物だよ。
>>397 あったあったw
あと break;; とか throw ...;; とかすると 2 つめのセミコロンで「到達しない構文」でエラーに
なるのは今でもそうかな。javac 使ってた頃のプロジェクトのソース持ってきた時に 2 つ 3 つ
引っかかったおかげで形式上の障害票書いた事がある。
バイトコードに癖は見られなかったし、コンパイルオプションや IDE 上でエラー箇所示
したりするために構文解析モジュール付近だけ独自実装したような感だけど、ソース読んだ
わけじゃないのでフルスクラッチで作ったかまではシラネが。
>>407 おまえは糞の役にも立ってねぇなw
てか、JDBC使ってる現場がおかしーんじゃねーの
>>412 すごく似てるよ。ほとんど一緒。
Javaはコンパイルだとか、なんだかんだ大掛かり。
その点、JavaScriptとPHPがいいのかなあと考えているよ。
自分で楽しむ分には、JAVAは重い
>>409 それはEUC-JPに含まれない文字だ。x-eucJP-Open でも使っとけ。
また自分の周囲が世界の標準と勘違いしてる蛙か…
JDBC使わなかったら何使うの?
>>417 素人乙ってるな
PHPまでと一緒にされてるとはw
この馬鹿は放置のがよかったか
>>421 iBatisなんかでかぶせればいいでしょ。
にぎわってるね
馬鹿とか言わないでよw この頃つくづく思うのね WEBにちょっと貼ろうにもJAVAだと簡単にいかない、 その点JAVASCRIPTだとスイスイいくよ。 PHPも簡単そうだし、ニーズもありそう。
日本語訳: サンダルが楽だからコンビニ行くのにも山登るのにも便利
>>425 趣味サイトにJava使う奴なんていないよ…
自分のサイトにちょっと手を加える程度にサーブレットとか使ってたらただの馬鹿だ
凝ったサイトにせいぜいrailsとかそこら辺じゃないのかな
javaをWEBに貼ろうと思ったらJSPとかいう意味フなの使わないといけないし 面倒だよね。ふつうにさHTMLにぺたっと貼りたいね。
429 :
デフォルトの名無しさん :2009/09/28(月) 22:20:43
>>425 Java,PHPとJavaScriptで同等って馬鹿じゃないの?
サーバとクライアントの違いも分かっていないのかね
そうだね。次の方どぞー
どうして平気に、人に馬鹿とかいうの? それでいいのかな。おらは言えねえねえ
あなたの部下じゃないもーーーーーーん
ぶっちゃけ馬鹿の書くコードにうんざりしてる業界の人って多いでしょ。 もう超人が書いたコード読むの嫌だよ。 なんだよ4000行のメソッドと8段のインデントって。
わざとやってる釣りなんだから相手しなきゃいいだけ
437 :
デフォルトの名無しさん :2009/09/28(月) 22:31:08
strutsのリクエストプロセッサー拡張してんだけど、 メソッド呼び出しで困ってるんだけど、 struts.xmlに記述でメソッド名で呼び出したい 順序も記述通りにしたい 諸先輩方お願いします
>>435 そりゃカッペが書いたコード
1メソッド100行が妥当だな
メソッドってなんだろ?ActionMethod? DispatchAction系を使えばいいんでないの? 2系は知らんけど。
おら4000行のコードのほうが見やすいね。 空白行やコメントはキライ。ぎっしり詰まったのがいいね。 好みは個人差があるね。
444 :
デフォルトの名無しさん :2009/09/28(月) 22:36:56
>>439 アホかディスパッチャーの上から実装したことないのか
お前じゃFW作れないな
そんなん結局はActionのexecuteメソッド叩かれるだけなんだから、 メソッドのシグニチャを決められたパラメータ名で渡して、 executeメソッド内から参照->Dispatchすればいいんじゃないの? リクエストプロセッサに何させたいのかな。
あ、444詳しいみたいだから頼んだ。 俺一応某企業のStruts系Webアーキテクトだけど ディスパッチャーの拡張なんてしたことないや。つか必要がなかったしw
>>445 あれは偽物だ
pojo
struts1.3系で2系みたいなことをやらせたいようだ
そういう用途ならSAStruts使えばいいんじゃないの。 あれ1.2系で完全pojo実装でいけるよ。 外部フレームワーク依存が嫌ならソースみるだけでも参考になるっしょ。
449 :
デフォルトの名無しさん :2009/09/28(月) 22:43:50
まぁさすがに一人分かっているだろう人しかいなかったか 他は何だとばかりにアホ面ならべてるだけだしな 簡易な質問には稚拙な回答で飛びこむ姿勢がうざいんだよ
>>448 SAStrutsなんぞ馬鹿でも使わんよ
おら思うんだけどpure JavaにStrutsなどの厚化粧したら、 もはやJavaではないと思うのね。フレームワーク完全依存で、 もうpureには戻れない。中毒患者のよう。 戻れないのだからJavaじゃない。Struts言語だよね。
はぁ。そうですか。w
>>447 キミはいい線いってたよ
知ったかで適当なこと言ってる奴が多くて罠貼ったが
誰もこない、つまり無能だったと
キミは理解していたよ、知らないふりして悪かったな
>素人はロムってろ 裏ロムですか?ロムってのはですね、 不揮発性の素子なんですよ。作れますか? ロムるという表現は幼稚ですねえ。 2チャンネルの影響を受けすぎですから自分をしっかり持って 生きていく決心を固めてください。期待しています。
で、俺スゲーな君は今後このスレで活躍してくれんの? 随分気合入ってるな。まかせたぞ。
Javaでスレッドの優先度はJavaVMが決めてるんですか?OSが決めてるんですか?
プログラマブルな部分ではプログラマー その参考値で実際にどう重み付けするかは OS
ttp://xy.yu.to/ 寂しい人向け
混む時間帯は人気ありすぎて定員オーバーで入れん
24時間荒れ放題の超カオスな絵チャット
本当の本当に完全無法地帯の絵チャット
(2ちゃんとは比較にならない)
荒しとプログラマーと防衛プログラマーの攻防戦
防衛側が強し、求む強力荒しプログラマー
しかも外国サーバー(イギリス)で管理人は荒し容認
殺人予告すらOKっぽい。ログなんて当然取ってないし
javaの入門書一通り読み終わって、 次webアプリケーションつくりたいなと思うんだけど 良い入門書ある?
>>460 こんなとこまで宣伝に来るなよ。どんだけ必死なんだお前
AJP13 (ProxyPass) で Apache - Tomcat を繋げて全部リクエストを Tomcat で処理している 状態なんだけど、特定のファイルやディレクトリへのアクセスを禁止したい場合ってどうする のが良いかね? 例えば *.ini とか */tmp/* とか。 default サーブレットじゃ禁止パターンとか指定できないし、個別に ProxyPass ... ! でブロック するしかない?
>>463 お前はapacheの勉強をしたほうがいいな
>>461 書籍なんぞその時はちょっとは使えるかも知れんがすぐ時代遅れだよ。
TomcatのWebアプリケーションでアプリケーションを複数作っても セッション変数は共通になってしまいます。 セッション変数をアプリケーションごとで別々にしたい場合は どうすればいいでしょうか?
>>466 コンテキストを別にしてもダメなのかい?
Windowsでドメインにログインしている場合、IEがServletに そのユーザー/パスワード/ドメインを自動的に渡すことって できないでしょうか?
うざ
>default サーブレットじゃ禁止パターンとか指定できないし 出来るだろう。 JavaScript+PHPがいいみたいですよ
次の方どぞー
ハッキリいってJavaScript+PHPさえあれば他はいらないみたいですよ
そうですねー
475 :
デフォルトの名無しさん :2009/09/29(火) 17:54:07
相変わらず無能な素人ばっかりだな
>>469 UNIXでNTLM認証ならApacheのモジュールが存在するよ。
pythonで実装されたNTLMプロキシもあったはず。
>>469 できたよ。
昔やったことがある。
詳しいやり方は全く覚えてない。
はい次の方どうぞー
>>479 お前はただの無能だろ
いらんレスするな
インターネット上のあるサイトでの検索結果を取得したいです。 そのサイトで、それぞれプルダウンや入力値を設定し、 検索ボタンを押下した際に表示されるページの、値を取得したいです。
483 :
481 :2009/09/29(火) 23:26:59
そのサイトは、strutsで作成されているように思われます(URLが〜doの為) URLの後ろに、パラメータを指定して(name=satou&addr=sinagawa 等)初期表示した際に、 画面に値が埋め込まれた状態で表示できるのはわかるのですが、 そこから「検索」ボタンを押下したのと同じ処理を実行させる方法がわかりません。 よろしくお願いします。
485 :
483 :2009/09/29(火) 23:42:58
>>484 ありがとうございます。
参考に、試してみようと思います。
ConcurrentHashMapは複数スレッドから同時に書き込み、読込みを行う際、 外部で同期化をしなくても大丈夫なのでしょうか?
いいんじゃない?
>>486 個々のオペレーション単独での原子性は保証されてる。
が、読んでから書くまでの間に別のスレッドが割り込まれたら不味い場合は排他制御が必要。
×別のスレッドが ○別のスレッドに
490 :
デフォルトの名無しさん :2009/09/30(水) 00:20:47
どうでも良い質問だけど 64bitのWindowsにしたら8GB以上、javaで使えますか? Unixじゃないとダメですかね?
メモリーの事です EEのEclipseの起動も変更なしで出来るんでしょうか?
それなんてHOME BACIC?
493 :
デフォルトの名無しさん :2009/09/30(水) 08:29:59
エクリプスのEEのインストールすれば分かるが、メモリー不足で起動しない メモリーが沢山あれば、あのままで動く環境があるはず
ArrayIntListを最大10個くらい使うときがあるんだけど、 Mapみたいなクラスに入れるのとArrayIntListの配列のどっちがいいと思う? 限られたスコープでしか使わないので、速度を重視して配列がいいと思うけど オブジェクト指向という点で考えて見たら?ってアドバイスを受けたよ
オブジェクト指向はぜんぜん関係ないですね、と答えれば良いと思うよ。
あえてオブジェクト指向の立場でいうと、 性能(速度やメモリ)よりもインターフェイス設計を重視。 性能はあとインターフェイスを変えずに改善。
オブジェクト指向も分かってない奴らがいるな
オブジェクロを指向するだけで、 いい加減な概念だよね。 オブジェクト指向を知りたいならPHPがいいね。
499 :
デフォルトの名無しさん :2009/09/30(水) 12:17:57
配列はないわ
こんなクソの先みたいなもん配列で十分だっつーのw
ケースバイケースでしょ 頭でっかちなコードは迷惑なだけですよ
好きにしろよw こんなもんほぼ決めの問題とか個人の趣味レベルで どっちでも良いしすぐ修正出来るだろ。こんなもんにいちいちケースバイ ケースとか言って答保留してる奴がアフォ。
503 :
デフォルトの名無しさん :2009/09/30(水) 15:31:13
JFreeChartでグラフを再描写したいんですが、 参考になるサイトはありませんか?
アフォではない方がお答えになられます。 暫くお待ちください。
505 :
デフォルトの名無しさん :2009/09/30(水) 17:56:34
506 :
デフォルトの名無しさん :2009/09/30(水) 18:06:45
質問です。 Htmlのフォームから、Java Applicationを呼び出すことは技術的に可能でしょうか? AppletやServletのようにhtmlのフォームを変数にいれてApplicationを起動させたいのですが、 記述方法がいまいちわかりません。 なにかやりかたがありましたらご指導お願いいたします。
ローカルアプリケーションの GUI に HTML を使いたいって意味だろうか…
Java Web Startとか?
>>506 まず質問を簡潔にしろよ
色々ととれるぞ
PHPってコンパイルしないといけないのですか???
512 :
デフォルトの名無しさん :2009/09/30(水) 20:32:25
コンパイル不要=糞言語
静的型付けの重要性は大規模な開発をしてみれば身にしみるはず。 しかし動的言語の初期生産性もやはり大きな魅力ではある。
最近シェアかなりPHPに食われてない? webに限るけど・・・
public Hoge(String patternA) {} public Hoge(String patternB) {} みたいに、コンストラクタのシグネチャが同じになった時どうやって回避してる? public static Hoge getInstancePatternA(String pattern) {} public static Hoge getInstancePatternB(String pattern) {} みたいなメソッドを作ってインスタンスを生成するといいよ とか言う記事を読んだことがあるんだけど
String の場合は他に適切な型があるんじゃないかと考えてみる (Pattern とか Document とか File とか)。 どうしても同じになってしまうならその下のようにファクトリメソッド化。 一回実行のどうでも良い作り捨てのプログラムならフラグ渡して コンストラクタ内で A, B 動作選択。
Javaは第二のCOBOLらしいね。 JaBolかCovaにしたらいいね バックヤードに向いていると思う WEBはPHPが断然動きやすい。
PHP使ってたから、今更サーバサイドJava始めようとは思わないんだよな。 だれかそんな俺にガツンと言って。
519 :
515 :2009/09/30(水) 22:21:54
>>516 レスありがとうございます
factory methodはどの例を見ても、継承がなんちゃらって書いてありますが
自分自身をnewして返すってのはバカバカしい事なんですかね?
>>519 そもそも別々の引数を個別に渡すコンストラクタの意味ってなんだろう。
あるインスタンスから見た時、他方のインスタンスが注目している内部状態とは
まったく別の内部状態にしか関心がないのなら、それらが同一クラスである必要はないのでは?
522 :
デフォルトの名無しさん :2009/09/30(水) 22:57:19
PHPは重いんじゃないの?
Shift_JIS→Unicodeにするとデータのサイズって替わりますかね?
変わると思っていい。 たとえばUTF-8であれば、1-4バイト(日本語は3バイトと思っていい) Shift-JISは全角2バイト、半角1バイト
525 :
デフォルトの名無しさん :2009/10/01(木) 01:14:21
Dateを1日前の日付にしたいんですが、簡単な方法ないですか? 1日だったら、月を1つ減らして、その月の最後の日にする。 1月1日だったら、さらに年も1つ減らすって処理をすればできますが、 メソッド一発でもっと簡単にできるようなのはないでしょうか?
526 :
523 :2009/10/01(木) 01:15:37
>>524 わかりました。ありがとうございます
br = new BufferedReader(new InputStreamReader(getInputStream(), "Shift_JIS"));
while((str = br.readLine()) != null) {}
みたいな感じで、shift-jisのデータを読み込んでいるんですが
shift-jisで何バイト読み込んだか知りたいんですが、どうにかなりませんかね?
shift-jisのままbyte配列かByteBufferつかうとか?
>>525 Calendar(暦法計算機)クラスのインスタンスに
対象日付を放り込んでマイナス1日を加える。
>>525 >528の処理を書いたメソッドを作成する
530 :
526 :2009/10/01(木) 01:43:52
>>527 あんまり、そこら辺は気にしてません
楽にサイズを取得できそうなら別に、何でもいいです
なにやりたいのかわからんけど、半角文字の文字数カウントして計算するとかでいいんじゃね?
str.getBytes("Shift_JIS").length を合算すればいいんじゃないの? br.readLine()の結果には改行付いてないので、実際に読んだ量にする 場合はそこも忘れずに。 というか、元データの改行が1バイトなのか2バイトなのかは分からんような。 あと、サイズには影響しないけど、大抵の場合は Shift_JIS といいつつ Windows-31J。
533 :
530 :2009/10/01(木) 02:05:12
>>532 >元データの改行が1バイトなのか2バイトなのかは分からんような。
特定のコンピュータから発生するデータなので、
事前に調べておけば問題はなさそうです
ありがとうございました
534 :
デフォルトの名無しさん :2009/10/01(木) 16:41:33
>>532 なんでそんな基礎をべらべら言ってんの?
JavaDoc嫁で終わりでしょ
ガキは覚えた言葉を言いたがるというが、お前はそれに該当する
脱童貞するとセックスについて話したがるのと同じだ
>>534 スレタイ嫁
お前はガキじゃないからこのスレじゃお断り
>>536 初心者ってなんだ?一通り理解しているのが初心者だろ
お前含め低能に分かりすく言えば、水を飲みたいがどうすればいい?ってもんだぞ?
なんならスレタイを無能専用に変更したらどうだい?
538 :
デフォルトの名無しさん :2009/10/01(木) 17:22:06
API見ながら自分で考えられないのは確かに初心者ではないね。 思考回路がちょっと悪い素人といったところかな。
>初心者ってなんだ? 宇宙刑事「ためらわないことさ」
541 :
デフォルトの名無しさん :2009/10/01(木) 17:47:16
荒らしはほっとけよ
最近荒らしばかりだな そもそも【初心者専用】を付けたのが悪い
理論で返せないと荒らしってのもおかしいとおもうよ
まぁ
>>1 のスレタイが糞ってのもあったろうけど
基礎と馬鹿にするだけで、なんら有効な手法を示すわけでもない。 無能や低脳と罵るだけであれば、そこに返すべき理論は存在しない。
InputStream→InputStreamReader→Stringじゃなくて、 InputStreamReaderを使わずにInputStreamからStringを取り出す方法を教えてください
548 :
デフォルトの名無しさん :2009/10/01(木) 20:15:10
>>547 InputStreamはインタフェイスだぞ
低能乙ったな
550 :
デフォルトの名無しさん :2009/10/01(木) 20:21:53
>>549 ステップ1
InputStream→InputStreamReader→String
スッテプ2
InputStreamReaderを使わずにInputStreamからStringを取り出す
馬鹿か?
>>547 どんな状況でも使える汎用的な方法はない。
文字列の長さもエンコーディングも既知の場合なら
byte[] array = new byte[文字列の長さ];
inputStream.read(array);
String str = new String(array, エンコーディング);
ほかにもエンコーディングがISO8859_1限定で
文字列が改行かファイル終端で終わるならDataInput#readLine()使う、など。
自前でやりたいって話なんじゃないの? InputStreamReaderのソース読め、で終わりだけど。
>>552 なぜASCII限定なんだい?
バイナリでエンコーディングwwww
>>551 完全なデータのサイズが必要なため
InputStreamReaderを使うと誤差が発生するから
>>552 わかりました
ありがとうございます
>>555 InputStream→FilterInputStreamを継承した読み込みバイト数を数える自作クラス
→InputStreamReader→Stringはどうかの?
>>555 そういう用途なら
InputStream→org.apache.commons.io.input.CountingInputStream→InputStreamReader→Stringして、
全部読み終わった後にCountingInputStream#getByteCount()でバイト数取ってくる方が楽かも。
558 :
デフォルトの名無しさん :2009/10/01(木) 20:55:49
冗長な回答しかないな 所詮は無能スレか
wktk
560 :
555 :2009/10/01(木) 21:02:24
>>556 FileterInputStreamを継承するのは、ちょっと面倒くさそうですが
少し調べてみることにします
>>557 commons ioにそんな便利なクラスがあったとは知りませんでした
IOUtils.closeQuietly()とかコピー関係のメソッドはよく使いますが、それは知らなかった
561 :
555 :2009/10/01(木) 21:25:51
>>557 の方法を実践してみたら、欲しい値を求めることが出来ました
ありがとうございました
class クラスA { public void メソッドA() { クラスB.メソッドB(); 次の処理 }} class クラスB { public void メソッドB() { Thread t = new Thread(new Runnable() { public void run() { } t.start(); }} とすると、メソッドBの処理が終わっていなくても「次の処理」をやってくれるの?
メソッドBの処理が終わらないと次の処理は進まんよ お前さんが聞きたいのはメソッドBの処理ではなくてrun()の中の処理の話だろ? それならばBのメソッドを抜けているか、次の処理に進んでいるかなどに関わらず並列に処理される。 ただし、どっちが先に実行されるかとかは制御しようとしない限りは不明(VM次第)
>>552 read() がマルチバイト挟んだら文字化けするだろ素人
このスレは初心者専用です。 玄人はこのスレにレスすべきではありません。
567 :
デフォルトの名無しさん :2009/10/02(金) 00:15:16
意味がわからない 中括弧の位置もおかしいし、セミコロンの位置もおかしい コンパイルエラー
スキルの効果時間っていつから増えたの?
マジレスすると効果時間は増えたんじゃなくて減った。 すごい勢いでスキルの陳腐化が進むように変更されて、 業務以外でも勉強できる人じゃないと前衛に出せない。 新仕様導入されたのは10月1日からってうわさ。
実装は来年だよ どうせバグだらけだろうけど
571 :
デフォルトの名無しさん :2009/10/02(金) 09:17:54
素人ばっかりだな
572 :
506 :2009/10/02(金) 10:00:26
詳細遅れて申し訳ありません。 やりたい事としては JavaSwingのインターフェースをhtmlのフォームに置き換えたいと思っています。 そこで、formtype button や submit などで、JavaApplicationを起動し、引数にパラメータを入れたいな と考えています。 このようなことは、可能でしょうか?
無理です。
574 :
デフォルトの名無しさん :2009/10/02(金) 10:02:35
>>572 つまり鯖側でappをkickするんだな?
受け口からjavaコマンド発行すればいいだろ
JAppletにしちゃうのやダメ?
>>575 htと書いてあるだろ
http使うんだろ
頭悪い奴は黙ってろ
アプリケーションと言うのが、サーバー側なのかクライアント側なのか、はたまたhtml文書事態ローカルなのかさえ分からないしな。 そもそも、そうすることでどんな良いことがあるのか知れない。
>>572 アプリケーションの一部にブラウザを組み込むってこと?
コマンドの書き方や機能の起動のしかたはともかく、そのブラウザはどこから持ってこようとしているの?
表示はブラウザと関係無くて、同じマシンなりサーバなりのモジュールと HTTP 通信をしたいだけなら簡単な話だけど。
アプリケーションの一部にWebサーバーを組み込むってことでしょ よくあうじゃん
JEditorPaneを使うんじゃない?
Swing つってるからスタンドアロンアプリの GUI を HTML で組めないかって話だろ。
例えばeclipseはヘルプを表示するためにhttpサーバを内蔵している よくある方法かどうかは知らない
アプレットでなら似たようなことやったな。キックするのがウェブってだけで後はほとんど通常のSwingアプリ状態。
アプレットなんてカスしか使わないよ
5年前の話だが、普通に業務アプリとしてお客のところで動いてたぞ。
まだawtの時代にアプレット作ったな うんこみたいな仕事だったよ
590 :
デフォルトの名無しさん :2009/10/02(金) 18:54:00
線と線の当たり判定を提供していて、かつ線の太さまで加味したクラス、メソッドってありませんか? また、こういう処理って Java ではどう書くのがベターなんでしょう?
Line2DをBasicStroke#createStrokedShapeに渡した戻り値のShapeを使ってintersectsするといいと思う
と思ったけどShape同士のintersectsは無かった そのShapeからAreaを構築してArea同士でintersects
593 :
デフォルトの名無しさん :2009/10/02(金) 19:06:40
自分で作るって工夫はできないのかね? 頭悪すぎる
>>591-592 ありがとう。その辺を試してみます。
>>593 利用できるものが用意されてるなら、それを利用したいと思ったまでですよ。
いたってふつうの考え方では?
自分で調べてなきゃお前の能力がそれまでなんだろ 自分で考えられず猿真似を繰り返す低能じゃ迷惑なだけだよ
synchronizedをgetメソッドに付ける意味がわからない というか、synchronizedを付けないと問題が発生する処理の書き方がわからない
?
>>596 setter にも synchronized が付いていれば、どこかのスレッドが setter を呼び出して変数を半分だけ書き換えたところで、
get してしまあ
うことを防げる。
600 :
596 :2009/10/02(金) 20:54:53
jakarta commonsのコードを読んでいたら、getXXXXにsynchronizedが付いていた
PHPはコンパイルしなくて使えるの?
ところでお前らは、break ラベル;を使っていますか?
>>602 CLDCな環境向けにxmlパーサ書いたときに使った
>>593 おまいのような奴が既にあるものを自作した挙句にバグを埋め込むんだ。
CSVのリーダ/ライタなんか典型例。
>>592 目的を達成できたので結果報告をば。それと、実はやりたいことが微妙に間違っ
てまして、線と四角の intersects でした。
結局 Area ではだめで、GeneralPath を使いました。Area は線みたいな閉じ
ていない Shape を元に作ろうとすると、空になってしまうぽいです。
GeneralPath ではこの辺をカバーできたので、こちらを使いました。こんな感
じに、うまくいってるぽいです↓
Line2D line = new Line2D.Double(1, 1, 3, 3);
Shape ss = new BasicStroke(2).createStrokedShape(line);
GeneralPath gp = new GeneralPath(ss);
Rectangle2D rect = new Rectangle2D.Double(0, 0, 0.9, 3);
System.out.printf("line.intersects(rect): %s%n", line.intersects(rect));
System.out.printf("gp.intersects(rect): %s%n", gp.intersects(rect));
>line.intersects(rect): false
>gp.intersects(rect): true
貴重なヒントをありがとうございました。
>>596 ソースみてないからわからんけど、おそらく同期処理の本質が理解できてないと思う。
Javaのメモリモデルとメモリの可視性について勉強してみ。
回答が客観的過ぎる もっと具体的にアドバイスしろ
×客観的 ○抽象的
質問が個別具体(たとえばソースを貼るとか)じゃないから、具体的といわれても難しいな、と思った。 まあ、質問者の聞きたいこととはズレているだろうことは認識してるんだけどさ。
だったら書くな。このやろー
また素人がきてるのか
毎度お世話になっています Shift_JIS関係で質問した者です ネットワーク(Shift_JIS)→java(Unicode)→HDD(Shift_JIS)と文字コードを変換すると ファイルのバイト数が替わってしまうので ネットワーク(Shift_JIS)→java(Unicode、Shift_JIS)→HDD(Shift_JIS)と、 JavaでUnicodeとShift_JISデータを持ってShift_JISのデータだけをHDDに書き込もうと考えています そのため、FilterInpuStreamを継承したクラスを作っているですが public class Hoge extends FilterInputStream { ArrayByteList byteList = new ArrayByteList(); public Hoge(InputStream in) { super(in); } @Override public int Read(byte[] b) throws IOException { int temp = super.read(b); for(int i = 0; i < temp; i++) { byteList.add(b[i]); } return temp; InputStream→Hoge→InputStreamReader→BufferedReader.readLine()の順番で使おうと考えています という事をやって、Unicodeに変換してしまう前にShift_JISを違う場所に保存しようという作戦です しかし、public int read()はbyteではなく戻り値がintなのでどう扱うかわかりません エロい人ヒントをください
readの戻り値は EOF のときに -1 を返すために int になってるだけだから -1 の判定した後は byte にキャストしていいよ
ところで逆に質問だけど、Java上でテキスト(文字列)として扱う必要がある転送なの?
616 :
613 :2009/10/03(土) 14:02:24
>>614 @Override
public int Read() throws IOException {
int temp = super.read();
if(temp > -1 ){
byteList.add((byte)temp);
}}
こんな感じにしてみました
このコード何か勘違いをしてるよう気がする
もしかしたら、
>>613 の書き方(説明)が悪かったかもしれません
>>615 文字を表示する事がメインの処理なのですが、表示した文字(ネットから送られてきたデータ)も保存しないといけないんです
しかも、保存する時はネットから送られてきたデータと同じサイズで保存しないといけない
本当はネットワーク(Shift_JIS)→Java(Unicode)→HDD(Shift_JIS)にして、メモリ&CPU?を無駄に消費させないようにしたかったのですが
技術が無いので、FilterInputStreamを継承したクラスを通すことにしました
いったんバイト列のままファイルに保存して その後で勝手に String にするほうがいいんでない。
ネットワークからデータが来るのにFileInputStreamを拡張してんの? なにがしたいのかわからない。 普通はバイナリデータとしてByte列をメモリ上に保存 1、そのデータをファイルに書き出し 2、文字列へdecodeして表示 のステップでいいと思うが。
俺が勝手にFileInputStreamと勘違いしただけだった 吊ってくる。
ClientSocketから直だししない意味が分からない 無能ほど冗長なコードが増えるからな
ClientSocket?
622 :
613 :2009/10/03(土) 19:27:27
private static class Hoge extends FilterInputStream {
ArrayByteList byteList = new ArrayByteList();
public Hoge(InputStream in) { super(in); }
public int read(byte[] b) throws IOException {
int temp = super.read(b);
if(temp > -1) {
for(int i = 0; i < temp; i++) {
byteList.add(b[i]);
}}
return temp;}
public int read(byte[] b, int off, int len) throws IOException {
int temp = super.read(b, off, len);
if(temp > -1) {
for(int i = off; i < temp; i++) {
byteList.add(b[i]);
}}
return temp;}
public ArrayByteList getByteList() {
return byteList; }
public void resetByteList() {
byteList.clear();}}
コードが読みにくいのは2ちゃんねるなので、あきらめてください
>>618 うちのネット回線、すごい遅いんですよ
動画共有サービスで音楽を流しているだけで、ページを開くのがすごく遅くて
>>620 確かに無駄に増えますね、しかもメモリも無駄に使います
でも、苦肉の策なのでやりたくてやってるわけではないんです
623 :
デフォルトの名無しさん :2009/10/03(土) 20:24:24
>>622 実際動かしてみればわかると思うけど
20/100点位ってとこか。
まあ、個人の自由だから好きにやればいい
>>623 既に動かしてみましたが、やっぱり苦肉の策なので
そのうち暇になったらまた考え直します
625 :
デフォルトの名無しさん :2009/10/03(土) 21:09:27
質問させて下さい。 「あいう」というような文字列に対して 文字コードへの変換(UTF-8)をしてやることで、 「%E3%81%82%E3%81%84%E3%81%86」という文字列を得たいのですが、 これはどのようにしたら実現可能でしょうか。
java.net.URLEncoder.encode("あいう", "UTF-8");
質問よろしいでしょうか? ユーザー管理用のマスタを作成して、そこに、ユーザーIDとパスワードを登録しておこうと思うのですが セキュリティのため、パスワードは暗号化してマスタに登録したいのです。 そして、ログイン時に、暗号化したマスタのパスワードを復号化して入力されたパスワードと比較したいのですが どのようにすればよいでしょうか?
>>628 "java 暗号化" でググれ。
多分、JCEとかいうのを使えばできる。
ふつうは、 * 復号する方法のない(一方通行の)方法で暗号化して保存。 * 入力を同じ方法で暗号化して一致するかどうかを見る。 とやる。
オブジェクトを作るファクトリーメソッドでインスタンスを作るメソッドは それぞれの作るもので違うメソッドを作るのか、一つのメソッドで引数によって 違うインスタンスをつくるのかどうか教えてください。
どちらもありうる 例えば Charset#newDecoder() とか Charset#newEncoder() は前者の例 Calendar#getInstance(Locale) とか Cipher#getInstance(String) は後者の例であろう
最近 IDE (NetBeans) を使い始めました。 ちょっとした作業をするプログラムを手早く書きたいだけでも プロジェクトを作成する必要があるのでしょうか? プロジェクトとは無関係の独立したソースを作成して (あるいは別のエディタで書いたソースを開いて)、 ちょっとコードを書いて、コンパイルする、といったことは出来ますか?
俺はeclipseだけど、そういう作業専用のプロジェクトを作ってあって、 ちょっとしたプログラムは全部そこに無造作に放り込んである
作業用プロジェクトで作業するのが普通だな 結局はファイルがあちこち散乱するわけでどっかのプロジェクトに入れておく方が便利
636 :
633 :2009/10/04(日) 16:06:13
なるほどそういう方法があるんですね。 ありがとうございました。
NetBeansなんて早く窓から投げ捨てろ
NetBeansいいよ
NetBeansはアウトラインの切り替えが楽 重いけど 全体セーブもしやすい
NetBeasnでjviを使っていると、IDEごと死ぬ時があるので勘弁してくれ
ここって初心者とは思えないほどレベル高くない?
2ch自体がレベルの高いインターネットだからな
ていうか専門的でオタクばっかりってところだろ それに極めの極地にいる奴ばかりで頭おかしいのも多い 2CHやりすぎると頭が馬鹿になっちゃから気をつけたほうがいいよ
やってると一定確率で頭おかしいのに遭遇するよなw 2chどっぷりで頭おかしくなってしまってる輩に… 数少ない優良板だけ利用するのが吉
馬鹿と天才は紙一重
たまにフラッシュで細々生計立ててるおっさんが出没するよね。ここ 質問に答えるわけでもなく、javaの愚痴だけいってすぐどっか行っちゃうけど 何あれ?2chやりすぎの馬鹿?w
HashMapは複数のスレッドが同時に書き込んだり削除したりすると データが壊れるときいたのですが、読み込むだけだったら大丈夫なのでしょうか?
書き込む人が誰もいなくてみんな読み込むだけなら大丈夫
>>650 ありがとうございます。
書き込んでいる間に読み込んでも、値は保障されなくなるのでしょうか?
Java5のConcurrentHashMaoを使えば、複数スレッドの同時書き込みや
書き込み時に読み込んだりしても大丈夫なのでしょうか?
iteratorもあって難しいですね。 removeはどうですか?
どうって何がどうなのかわからん どのremoveかもわからんし 言葉を省略しすぎだ 質問は具体的に
Iterator.removeはどういうときを想定して設計したのかいまいち分かりませんでした。
2次元のベクトルのクラスを作りたいのですが、携帯Javaでバージョンが1.4なので ジェネリクスが使えません。 動作の内容が同じでint、floatかだけが違うようなクラスを作る際に Vector2DI、Vector2DF みたいに沢山作るのは面倒です。 何か良い方法ないでしょうか
バージョンを5にする
ポリモーフィズムで解決する
>>656 単にエディタで型名を一括置換すれば済むんじゃないか?
ふつうにObjectでもたせてキャストすればいい
boxing ?
class Hoge { private URL url; public getURL() { retrun url; } URL sdf = hoge.getURL(); sdfのメソッドを使う処理 って処理をやったとする。この処理をするとHoge.urlに変更が加わるわけじゃん もしも、Hoge.urlがHogeクラスの中で重要な役割を果たしていたら動きが変になるわけで どうやって対処すればいいの? public getURL() { return new URL(url.toString()); } ってのは出来ればやりたくない
>>662 コンパイル通るのかと思って、試してみちゃったじゃないか。
java.lang.URLはimutableじゃなかったっけ?
> return new URL(url.toString()); > ってのは出来ればやりたくない なぜ? mutableなオブジェクトを副作用させないように外部公開するときの定石だろうが。 そもそもURLはimutableだと思うがね
× imutable ○ immutable
キね
Java厨ってどうして頭悪いの???
669 :
662 :2009/10/05(月) 19:05:42
適当にURLクラスを選んだだけだから、
>>663 スマソ
>>665 単純にオブジェクトを作りたくないだけ
static ファクトリーメソッドを使うとなんちゃらってのが本に書いてあった気もするし
なぜオブジェクトを作りたくないのかわからない。大量に呼ばれるとか? 属性として保持するオブジェクトに対して、外部から操作されることで 自身のデータ一貫性が破られる恐れがあるのなら、 採りうる方策としては普通以下の2パターン。 ・そもそもオブジェクトを外部に公開しない ・外部にはCloneされたオブジェクトを渡す(Sharrow、Deepコピーを含む)
訂正。スマソ Sharrow -> Shallow
哀れなスズメ
>>669 インスタンスの作成くらい気にしていたら何も出来ん
パフォーマンス?
バグ仕込むのとどっちがいいか考えろ
どうせ数ナノ秒しか変わらん
そういえばJavaのcloneってshallow copyなんだっけ? すごく使い辛い(というか使えない)と思うんだけど、deepじゃない理由って何かあるの?
>>676 下手すると一撃でメモリを馬鹿食いするし、複製しちゃいけないもの(singletonとか)を複製して破綻する可能性があるし、そもそも全要素をdeep copyしないといけないケースなんてすごく限られてる。自クラスのインスタンスを引数にしたコンストラクタで十分だろ。
deep copyされる方が困るだろ・・・ まあ、cloneを使うよりは自前でコピーコンストラクタ作る方が圧倒的に多いけどね
なぁなぁ、お前らjavaの文法を教える時どうやってる? 友達にStringは==で比較すんな、拡張for文とか基本的な事を教えた どうやってそいつに、コンストラクタの概念とnewについて教えるか困っている
ヒープのメモリ図を描きながら説明する。 newでオブジェクトを作るとヒープに新しい領域が確保されて・・・という感じ。 下手な例え話するより聞き手も感動してくれる。
文法っていうか概念だよな クラスローダの大雑把な仕組み、ヒープとスタックの仕組み、GCの大雑把な仕組み、あたりを680のように図に書いてやるのがベスト 細かいことはいいからオブジェクトの生成については早めに教えるべき ついでにStringだけは特殊なんだといえば==で比較とか馬鹿なやつは生まれない
クラスローダについて教えてくれ
クラスローダ(初心者向け解説) クラスのメタデータ(設計図)を管理する仕組み 基本的にはなんらかのクラスがはじめて使用されるタイミングで、クラスのメタデータがclassファイルからロードされ、クラスローダに蓄積される クラスのインスタンスを作成する場合、クラスローダ内のメタデータからどんなフィールドを持っているかを元に必要なメモリをヒープに確保する ただし、メソッド情報などは全てのインスタンスで変わらないため、クラスローダ内のメタデータに保持され、共有して使われる 正確性はともかく、初心者でもこのくらいは知っておきたい部分ね
さっぱりわかりません。
>>680-681 ヒープの話してわかるかな?
基本情報技術者なのに今度で3回目のチャレンジの人だよ
クラス関係を教えるのは気が重いので、
今日はintとIntegerの違いを(順番おかしい?)教えてみるわ
2人教えているうちの1人は、for文(拡張じゃないよ)の使い方に悩んでいたので
本当にお前ら情報系の学生?って思うわ
コンピュータサイエンス学科の過半数はfizzbuzzが出来ないという有名な記事があったけど、やはりそうなのか 教えるのも大変そうだな
687 :
デフォルトの名無しさん :2009/10/06(火) 10:43:14
. 1. HTML で検索した結果 1〜10件目 / 約5,040,000,000件 . 2. PHP で検索した結果 1〜10件目 / 約2,970,000,000件 . 3. Java...... で検索した結果 1〜10件目 / 約 835,000,000件 . 4. Forth. で検索した結果 1〜10件目 / 約 323,000,000件 . 5. Ruby.. で検索した結果 1〜10件目 / 約 275,000,000件 . 6. perl..... で検索した結果 1〜10件目 / 約 245,000,000件 . 7. Python... で検索した結果 1〜10件目 / 約 204,000,000件 . 8. pascal... で検索した結果 1〜10件目 / 約 170,000,000件 . 9. Delphi で検索した結果 1〜10件目 / 約 127,000,000件 10. VisualBasic...で検索した結果 1〜10件目 / 約 121,000,000件 11. lisp... で検索した結果 1〜10件目 / 約. 26,700,000件 12. fortran で検索した結果 1〜10件目 / 約. 21,300,000件 13. COBOL で検索した結果 1〜10件目 / 約. 18,500,000件 14. HSP で検索した結果 1〜10件目 / 約. 12,300,000件 15. FreeBasic.. で検索した結果 1〜10件目 / 約 6,320,000件 16. Tcl/Tk. で検索した結果 1〜10件目 / 約 4,940,000件 17. QBasic で検索した結果 1〜10件目 / 約 4,190,000件 18. VisualC.... で検索した結果 1〜10件目 / 約 1,360,000件 19. DarkBASIC. で検索した結果 1〜10件目 / 約 1,320,000件 20. BasicStudio で検索した結果 1〜10件目 / 約 304,000件 21. N88basic. で検索した結果 1〜10件目 / 約 215,000件 22. f-basic で検索した結果 1〜10件目 / 約 109,000件 23. ActiveBasic で検索した結果 1〜10件目 / 約. 89,800件 24. 99BASIC.... で検索した結果 1〜10件目 / 約. 11,500件 3Dprogramming で検索した結果 1〜10件目 / 約794,000件 2Dprogramming で検索した結果 1〜10件目 / 約. 57,400件 intel で検索した結果 1〜10件目 / 約729,000,000件 amd で検索した結果 1〜10件目 / 約355,000,000件
688 :
デフォルトの名無しさん :2009/10/06(火) 10:46:57
なにこのスレ違いの流れ
>>688 質問スレッドでむしろスレどおりの話題では?
690 :
685 :2009/10/06(火) 10:50:47
>>686 VBで課題を作れと言われて、
Dim rnd AS Random みたいにnewをどのタイミングで入れるのわからなくて
ずーっと違う所を見ている奴がいてなorzそいつが俺の友達
だから、どうやってnewとかコンストラクタの概念を教えるか困ってるわけ
せめて、for文くらい迷わず使えるようになれよwwwみたいな
>>690 vbとjavaを並行して習ってるの?
混乱してるのはそのせい?
>>685 わかるかな?じゃなくて理解してもらわなければどうにもならんだろ
>for文(拡張じゃないよ)の使い方に悩んでいた
それは明らかに採用が悪い
意味の分からんペーパーテストとかコミュ力とかを測る面接で採用したお前の会社が悪い
30分でもコード書かせれば適正なんて解るだろ
>>679 newってやるとオブジェクトがメモリにぽこんと作られる
newってやる時の初期化とかできるのがコンストラクタ
コンストラクタは必要なければ作らなくても動く
適当に紙に絵を書きながらこんだけ伝えれば大丈夫だろう
昔の2種はコード書かないといけなかったけど 基本情報はマークシートだからな
696 :
デフォルトの名無しさん :2009/10/06(火) 13:27:31
vectorにオブジェクト(BigInteger32個ぶんくらいであまり大きくない数値が入っている)を 入れていくと4000個くらい入れたあたりから急に処理が遅くなって一個入れるのに5秒くらい 掛かるようになります。 どうしたらいいですか? メモリーは2ギガあります。
>>696 capacity()であらかじめ十分なサイズを指定する。
Vectorのコンストラクタに予定個数を渡す
>>696 JavaVM内のヒープ不足、OSのメモリ不足、CPUのアドレス空間不足
などの可能性はある。
とりあえず、SunのJavaVMなら -Xmxオプションをいじってみたら?
いまのところ new Vector(10000,1000); ってやってたけどだめでした。 それはこれとは違うんですか?
ArrayListを使う
伝家の宝刀 「設計が悪い」
確かにその程度で5秒もかかるなんて、重大な欠陥を持っていそうではあるな
1秒もかからなかったよ ArrayList<Test> al = new ArrayList<Test>(); System.out.println("start!"); for (int i=0; i< 4000; i++) { al.add(new Test()); } System.out.println("end!");
ハードの問題だろw
>>706 Testのメモリーの使用量がが小さい。
>>706 そもそもソースが汚い
コーディング規約をどこでも意識してない奴は無能だと言う
というか、これよりいい設計なんていうのは メモリーに保存しないでハードディスクに書き込むくらいしか思いつかない。 つまり、ハードディスクに保存するベクターがあればいいと思う。
>>709 じゃあ、ちょっと直して見せてもらおうか。
<Test>←1文字だろうが。
Testはこうだよ public class Test { ArrayList<BigInteger> al = new ArrayList<BigInteger>(); public Test() { for (int i=0; i<32; i++) { al.add(new BigInteger("0")); } } }
714 :
デフォルトの名無しさん :2009/10/06(火) 14:20:38
>>711 int i=0; i< 4000
この辺とかイラっとするね
ひでぇよこれは
アホか0はスターティック関数になってるから同じオブジェクト参照なんだよ。
?
int i=0; i<4000
int i = 0; i < 4000; が一般的だろうね
単なるマイルールじゃねーかよ
getとsetをつけるメソッドはフィールドのオブジェクトを取る用で それ以外には使うなと、このスレ言われました。 かわりに何を使えばいいですか?
コーディング規約も知らないのかここの奴らは。
725 :
デフォルトの名無しさん :2009/10/06(火) 14:41:59
身勝手コードな例: int i=0; i< 4000 どっちつかずwwww 俺なら修正してコミットかけるね
1000bitのBigIntegerを50000個追加で1秒 public static void main(String[] args) { Vector<BigInteger> list = new Vector<BigInteger>(); Random rng = new Random(); long start, end; start = System.nanoTime(); for (int i = 0; i < 50000; i++) { list.add(new BigInteger(1000, rng)); } end = System.nanoTime(); System.out.println((end - start) / 1000000000d); }
int i= 0;i <4000
>>726 その場合は、
144000回繰り返さないといけない。
730 :
706 :2009/10/06(火) 14:58:52
何を盛り上がってるのかと思えばスペースかよw もっと根本的なところが糞コードかと思ったのに。
>>728 じゃあこんな感じで
public class Test {
ArrayList<BigInteger> list = new ArrayList<BigInteger>();
Test(int num, int bits, Random rng) {
while(num-- > 0) {
list.add(new BigInteger(bits, rng));
}
}
public static void main(String[] args) {
ArrayList<Test> list = new ArrayList<Test>();
Random rng = new Random();
long start = System.nanoTime();
for (int i = 0; i < 10000; i++) {
list.add(new Test(32, 4096, rng));
}
long end = System.nanoTime();
System.out.println((end - start) / 1000000000d + "秒");
System.out.println(Runtime.getRuntime().totalMemory() + "バイト");
}
}
意識付いてないということはド素人だね。 たかが書き込みでもプロは気にするね。
733 :
706 :2009/10/06(火) 15:09:49
まあ、俺は回答する身分じゃなく質問する身分
なんかよく分からんし再現もしないから、 再現するソースとOSやJavaのバージョンの情報をうpして。
test
src.zip(JDK)を見ていたらストリームを使い終わった後に、変数にnullを入れていた br = null; ストリームはbr.close()した後でも、インスタンスをGCが削除してくれない可能性があるって事なのか? GCのタイミングが〜、とかってのはなしで
brのスコープ次第では?
>>737 なるほどね、確かにそのストリームもフィールドに宣言してあった
これからはフィールドにストリームを宣言した時は、nullを入れるようにするわ
Fileクラスのlist()でディレクトリ内のファイル名を取得してそのファイルを処理してるんだけど ファイル数が膨大過ぎてメモリ不足で落ちてしまう(String配列の取得し過ぎで)。 ってな状況なんだけど、なんか解決策ありませんか(´・ω・`)? ちなみにそのフォルダに投げ込まれるファイルの名前はランダムです。 1件1件取得してく方法とかないでしょうかね?
どんだけ詰め込んだらlist()だけで落ちるんだよ・・・ 全部処理しなければならないのか? もし、処理している中で落ちるならば処理の方に問題はないか?
あと実行時のヒープサイズと実行環境のスペックもよろしく
>>739 当然起動時にオプションでヒープサイズは増やしてるよね?
(´・ω・`)
744 :
739 :2009/10/06(火) 21:52:34
実際にぽんぽん落ちてるわけではないんだけど 落ちる可能性を考慮して組まなきゃい状況なんです。 が、その考慮が思いつかなくて・・・ 全部処理しなければならないんですが 処理してる最中についての異常系処理(?)はしてあります。 list()で取得する部分だけが思いつかないのです(´・ω・`)
URL、ページのタイトル、更新日の3つで1セットStringがあるんだけど これを、30〜50セットくらい作らんといけない たぶん、4つ目の項目は追加しないと思うし、基本的には参照するだけ ・List x3でデータを管理する ・適当にクラスを作る ・その他 お前らだったらどうする
(^ω^)
クラスにする。
749 :
745 :2009/10/06(火) 22:13:22
>>748 参照だけなのに、構造体みたいに使うには抵抗があるから
List<String> urlList = new ArrayList<String>();だとちょっと使い辛い気もするけど
夏休み中と比べるとこのスレかなりレベルが上がってきた気がする
変なのも減ったし
>>744 FilenameFilterでstartsWithすればいいんじゃね。
String[] list(FilenameFilter filter)
そもそも手法そのものを見直したほうがいいと思うけど。
>>749 振る舞いのないObjectがあっていけない理由はないでしょ?
このスレかなりレベル上がってきた気がする(キリッ
データを保持するだけのオブジェクト 何も問題無いだろw
753 :
745 :2009/10/06(火) 22:22:27
>>747-748 ,
>>750 レス見ているとクラス作った方が、楽そうだからクラスを作ってみる事にした
クラスが必要ないと思ったら、List x3にすればいいだけの話だし
トンクス
というかArrayListもクラスなんですけど。
>>753 それがいいと思うよ。
ちなみにJ2EEなんかではDTO(DataTransferObject)というのがあってだね、
こいつはまさにデータを保持するだけのオブジェクトだったりするのよ。
(本来の意味はもうちょっと深いんだけど)
バリューオブジェクトとなにが違うの?
名前空間に関する質問です インターフェースクラス及び、インプリメントするクラスに package com.mod.live; この宣言がしてあります c:\package com.mod.live; この配下でコンパイルをするのですが、「シンボルを見つけられません」とエラーがでてしまいます。 package com.mod.live; この行をコメントアウトしますと、コンパイルできるのですが、 当該行をコメントアウトせずに、コンパイルできる正しい方法を教えてもらえないでしょうか。
Eclipseを使うか、階層構造とパッケージの関係について調べてこい
>>748 すまない(´・ω・)
全部処理しなければならない。
処理してる中で落ちるわけではない。
ヒープサイズは増やしてない。
>>750 ちょっとよくわからないが、調べて見る。
手法そのもの見直したほうが良いのは深く同意なんだが
時間が・・・orz
>>745 publicのクラスを作りたくないならインナークラスでもいいだろ
別々に管理する方がややこしい
>>760 標準のJREだとヒープは32MBくらいしかとらない
でかい処理するんだったら128MBくらいとっておくべき
何やるんだか知らないからいくつが適当かは知らん。
あとおまじない程度だが、1ファイル処理した後にループの最後、gcを宣言しておくと改善するかもしれない
>>756 初耳だな。
つかAWTでプロセスやらコネクション跨ぐシチュエーションって
パターン化するほど普通に出てくるの?
>>757 明確に区別されてる(されるべき)と思う。
ValueObjectはどちらかと言うとプリミティブな値に近い存在で、
immutableとかsingletonにデザインされている(されるべき)なんでは。
>>758 c:\package com.mod.live;
が何を意味しているのかわからない。
たとえばInterfaceがFoo.java、実装クラスがBar.javaとする。
C:\src\com\mod\live\Foo.java
C:\src\com\mod\live\Bar.java
にファイルを保存し、
> C:
> cd C:\src\
> javac C:\src\com\mod\live\Bar.java
と実行しよう。
>>763 ValueObjectは別にimmutableやsingletonである必要は全くないな
そうであったほうが良いケースはDTOに比べれば多いけど
クラスとしては振る舞いをほとんど持たないデータクラスであることは変わらないが、
DTOはデータベースなどの永続化システムから、画面などに表示されるまでのデータを一時的に格納する目的で使われるって違いがある程度。
ValueObjectは一般的に値がぶっこまれている程度の緩い定義。
とはいえ、いろんな属性がてんこ盛りだったり子データを持つような場合はあんまりValueObjectとは言わないと思う
C++のconstみたいのってJavaにはないんですか? メソッドで返したクラスの内容を一切変更されないようにしたいです。 (getter以外にはアクセス不能にしたい)
ない
C++のconstって例えばconstメンバ関数? あれって高機能なクラスでまともに機能させるのは大変なんじゃない? Javaでは防御的にオブジェクトをコピーして返す方法が一般的。 コピーならいくらでも非constメソッド(まぁJavaにはないけど)呼ばれても平気だしね。
「final」じゃだめなの?
>>767 getterのみのインターフェースかぶせて、そのインターフェースの型でやりとりするとか。
>>770 1、クラスに付いていたら継承できなくするため。
2、メソッドに付いてる場合は継承先でOverrideさせないため。
3、仮引数に付いている場合は引数の代入をできなくするため。
4、変数の宣言部で付いてるときは変数の値を再代入できないようにするため。
どれもsetterのようなオブジェクトの内部状態の変更を禁止する用途ではない。
4、のパターンを言ってるのかもしれないけど、
「参照の代入ができるかどうか」、というのと、
「ある参照が指すオブジェクトの属性を書き換えられるかどうか」は別ものかと。
finalでどうやったらconstメンバ関数を実現できるのか?
できない
>>771 そのやり方には本質的な問題がある。
仮に、悪意のあるクライアントがInterfaceで隠蔽されたオブジェクトの本当の型を知っていた場合、
本来の型にキャストした上でオブジェクトの内部状態が変更される可能性がある。
その参照が他のコンテキストからも使用されている場合、
同じ参照を利用する全てのクライアントに影響が及んでしまう。
ある特定のクライアント自身の意思(責任)でオブジェクトの内部状態を変えるのであれば、
その影響が意図しない別のクライアントに及ぶ可能性があってはいけない。
JDK1.5でコンパイルしたファイルってJDK1.4で実行はできないものなんでしょうか? JKD1.5特有の記述がなければ動くってことはないのでしょうか?
>>777 別にソースを見てJVMが動くわけじゃない
JDK1.5でも1.4互換でコンパイルすれば動く
classの先頭にバージョン番号が打ってあって、JVMより新しいバージョンだと普通動かない。 できればJDKと実行環境のバージョンはそろえたほうがいいけど、 コンパイル時にオプション「-source 1.4 -target 1.4」を渡せば実行可能なclassは生成できるはず。
>>764 >>758 です、どうもありがとうございます
コンパイルは成功し、いろいろ調べて
cd \src
>java com.mod.live.Bar
このように実行しますと
Exception in thread "main" java.lang.NoSuchMethodError: main
このようなエラーになるのですが?
>>782 それは、Barの中にmainが無いからだろ
>>782 です
Bar.java のmain メッソッド部分が
public void main(String[] args)
このようになっています
public static void main(String[] args)
このように修正したら、コンパイルも実行も成功するのですが?
これが正解ですよね?
>>784 オマエの正解は知らないが、試してみればよい話では?
786 :
デフォルトの名無しさん :2009/10/07(水) 11:12:14
MIDletにmain書いてeclipseでrun as...したら自分で書いた方のmainが実行されてフイタことならある。
Helloworldとコンソールに出したいのですが HelloWorldとなってしまいます。 どうしたらいいのでしょう。 public class Test { public static void main(String[] args) { System.out.println("HelloWorld"); } }
プログラミングを諦めるのがいいと思います。
もうすこしひねりが欲しいですね。まったくおもしろくないですもの。
>>789 Helloworldはかなり難しいから素人にはオススメできない。
10年くらいのキャリアがあってやっと書けるかどうか。
俺はまだ8年くらいだからかなり無理した。
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
public class Test {
public static void main(String[] args) {
PrintStream ps = System.out;
ByteArrayOutputStream src = new ByteArrayOutputStream();
System.setOut(new PrintStream(src));
System.out.println("HelloWorld");
byte[] baa = ("Helloworld" +
System.getProperty("line.separator")).getBytes();
byte[] ba = src.toByteArray();
for (int i = 0; i < ba.length && i < baa.length; i++)
if (ba[i] != baa[i]) ba[i] = baa[i];
ps.println(new String(ba));
}
}
>>792 お前天才だなww
俺にはとてもそんなコードは書けねぇwww
APIスパゲッティ(笑)
public class Test { public static void main(String[] args) { System.out.println("Helloworld"); } } でいけるだろ。馬鹿じゃねーのか
796 :
メ欄嫁 :2009/10/07(水) 20:15:01
面白いわw
求む、DarkBASIC・3Dプログラマー。 学歴:高校生程度 必要な知識:三角関数の簡単な知識 求めるもの:広範な探究心
800 :
デフォルトの名無しさん :2009/10/07(水) 20:53:53
受信したメールをDBに登録したいんですが…、どなたかアドバイスを頂けませんか?
>>800 使われ方をよく考えてテーブルを設計しろ
何で検索したいかは重要だ
なにが問題なのかが解りません
804 :
デフォルトの名無しさん :2009/10/07(水) 22:27:32
>>801 javaでやる必要があるかどうかは分かりませんけど…、受信したメールをDBに登録して、DBに登録してあるWEBアプリケーションを作りたいです。
>>802 テーブル設計は既に終わっています。
フリーメール等で受信したメールを自動的にDBに登録したりする為にはどうすればいいですか?
メールとJavaプログラムの連携の仕方を聞いてるんだろ それぐらい察して適切な回答しろや
806 :
デフォルトの名無しさん :2009/10/07(水) 22:28:50
>>801 誤字がありました。
DBに登録してあるメールを表示させるWEBアプリケーションを作りたいです。
「java mail」と「jdbc」でググレ
>>806 何が聞きたいのかよくわからない。
具体的に質問したほうが回答付きやすいよ。
JavaMailで受信->永続化のためにデータコンバート->JDBC/適当なORマッパでDBへ永続化
でいいんじゃないの?
自動的にDBに登録っていうのが気になるけど。
メールサーバからメールを受信してDBに放り込む、というプログラムなら
>>808 氏の通り
すでに一般のメールクライアントで受信済みのメールをDBに放り込む、なら
・・・やり方わからん
>>806 メールサーバ立ててメールはそこに転送する
で、その鯖に適当なWebメールクライアント突っ込む
でいいんじゃない?
Java が御所望なら JAMES があるし
当然分からないことはぐぐってから質問してるよな?
意味が分からん。 Javaでメールを受信するのか? Gmailとかで表示しているメールをどうにかしたいのか? Outlookとかで受信したメールをどうにかしたいのか?
baka
フリーメールって言ってるからwebメールなんじゃね? 自サーバーではなくヤホーとかぐーぐるとかのwebメールを何とかして取り出してDBに入れたいんだろ
815 :
デフォルトの名無しさん :2009/10/07(水) 23:10:09
言葉足らずで申し訳ございません。 フリーメールで受信した内容を何とかして取り出してDBに入れたいんですが…、無理でしょうか?
YahooならPOPで取り出せるけど
ウェブ系のフリーメールの場合でも、 通常はPOPプロトコルによるメール受信が可能になっている。 POPで受信するだけならJavaMailで簡単に実装できる。
818 :
デフォルトの名無しさん :2009/10/07(水) 23:22:35
皆様回答ありがとうございます。 >POPで受信するだけならJavaMailで簡単に実装できる。 その後DBに登録するのも簡単にできますか?
DBへの保存はJDBCで簡単に出来るよ。 もちろんSQLの基本も理解してないと無理だけど。 テーブル設計できるなら大丈夫だよね?
そろそろググれこのやろー
ぶっちゃけ総合的に知識が少なすぎると思われ まずは、JavaMaildでぐぐってお前さんのメールをダウンロードしてテキストファイルにでも出力とか、そこまでやってみたら? DB云々はその後に調べて、解らなければまた質問 順番に1つづつ解決していくべき
822 :
デフォルトの名無しさん :2009/10/07(水) 23:36:40
本当に皆様稚拙な質問に、回答してくださってありがとうございます。
とりあえず作成してみます。
>>819 今一イメージがわかないのでとりあえず作ってみます。
JDBCとSQLは問題なく大丈夫です。
>>760 VisualVMあたりでメモリの消費状況見ながら評価しとけ。
C:\Program Files\Java\jdk1.6.0_NN\bin\jvisualvm.exe
「これくらいヒープとっとけば大丈夫」くらいの当たりは付くだろ。
825 :
デフォルトの名無しさん :2009/10/08(木) 07:56:49
内部じゃJDBCだろうけど通常はO/Rマッピングでやるよ iBatisとか 直接いじるくらいならコネクションプール自作できるくらい理解してるのかな? 俺はできるが、オラクルのインスタンスも自在だけどね
JTAとか使うって意味かな
俺はできるだけ生が好きだからJDBC生でやるよ。
>>828 Webサーバでメールが読めるようにって言ってるから、
むき身のJDBCだと大変なのかな?
勉強になるからかえっていいんじゃね
>>831 大変うんぬんではないよ
俺が察するにDMデリバリーシステムとして稼働させるつもりなんだろう
俺もかつて作ったことあるけどJDBCが問題なのではない
語弊があったのならすまん
>>832 それも正解だ
最初はJDBCを理解した上で使うもんだと俺も思う
なんだこのレベルの低さは
っていうかO/RマッパなんてJavaでしか流行ってないし
837 :
デフォルトの名無しさん :2009/10/08(木) 09:47:51
>>836 スレタイ読めないking of stupid
839 :
デフォルトの名無しさん :2009/10/08(木) 12:20:07
JAVAはメモリーがデフォルトで64メガしか使えないみたいだけど、 いちいち使うときにオプション追加してくださいって書くの? 実行時にふやせないんだろ? 64メガ以下しか使わないしょぼいプログラムばっかみんなやってんの?
>>839 ランチャも作って設定ファイルから読み込めるようにするとか
exe化ツール使うとメモリ設定できるのもあった気がする
>>839 あなたのしょぼい脳と同程度のプログラムばかり制作しております。
>>839 運用時は勝手に拡張されるがな
Tomcatなんかの場合は指定しないとエラー出るけどな
846 :
デフォルトの名無しさん :2009/10/08(木) 18:06:29
>>845 お前は存在価値すらないけどな
たいしてJavaできないくせに
なんつーかこいつの寒さは、ノリノリっていうか70年代のノリなんだよね… どうせこのバカ、平成ゆとりなんだろうけど、どこにでもいるゴミって感じ
848 :
デフォルトの名無しさん :2009/10/08(木) 18:11:49
>>847 お前はそのゴミの中のカスだよ
無能とは怖いね、自分の無知を知らないことは一番恐ろしい
ファイルを読み込んでいる時に、データが壊れる可能性ってあるけでしょ そのデータをクラスが読み込んでしまった時、どのように出しているわけ IOExceptionを出そうかと思うけど、チェックするのが面倒くさい
Eclipse+Tomcat+MySQLでデータソースを利用してデータベースにアクセスすることをしてますけど Cannot load JDBC driver class 'com.mysql.jdbc.Driver' というエラーがでます。 EclipseでMySQLのドライバー定義は済ませていて、データベース開発パースペクティブからはデー タベースを操作できてます。(アプリディレクトリ)/WebContent/META-INF/context.xmlに以下を記述 して実行すれば良いんですよね? <?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="jdbc/selfjsp" auth="Container" type="javax.sql.DataSource" username="root" password="*******" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/selfjsp?useUnicode=true&characterEncoding=Windows-31J" maxActive="4" maxWait="5000" maxIdle="2" /> </Context>
852 :
851 :2009/10/08(木) 19:07:39
Resourceの属性はドライバ定義のものを使用してます。 独習Javaサーバサイド版を参考にしているのでデータベース名がselfjspになってます。
>>851 単純にtomcatからJDBCドライバが見えないとかはないの?
Tomcat インストールディレクトリ\lib に jdbc ドライバをコピー
855 :
851 :2009/10/08(木) 19:33:15
プロジェクトの設定で"Java Build Path"のLibrariesタブの"Add External JARs"を 押しmysql-connector-java-x.x.x-bin.jarを"Java Build Path"に追加してますが駄目 ですか? そういえば"Build Path"だから実行時には影響しないですかね。 (アプリディレクトリ)/WebContent/WEB-INF/libにもconnector-javaは置いてあるの ですけど。
856 :
855 :2009/10/08(木) 19:41:02
>>854 仰るディレクトリにjdbcドライバをコピーしたらドライバがロードできました。
(アプリディレクトリ)/WebContent/WEB-INF/libに置くならTomcatの場合web.xmlになんらか
追加する必要があるということですか?
>>856 auth="Container" だから、コンテナがロードする場所に置いておく必要があるのだと思う(多分)
auth="Applicatoin" なら WEB-INF/lib でいい(多分)
858 :
857 :2009/10/08(木) 23:44:51
自己レス データソースを利用する場合、DB アクセスはコンテナが行うので コンテナの CLASSPATH 上に JDBD ドライバが必要
新手の構ってちゃんだろ こういう奴が一番醜い死ね
861 :
デフォルトの名無しさん :2009/10/09(金) 03:53:55
Yahoo!プログラミング言語検索ランキング(今回2009/10/9、前回2009/10/6) . 1(. 1) HTML 約5,030,000,000件(約5,040,000,000件)- . 2(. 2) PHP 約2,980,000,000件(約2,970,000,000件)+ . 3(. 3) Java.... 約 832,000,000件(約 835,000,000件)-- . 4(. 4) Forth. 約 322,000,000件(約 323,000,000件)- . 5(. 5) Ruby.. 約 274,000,000件(約 275,000,000件)- . 6(. 6) perl..... 約 244,000,000件(約 245,000,000件)- . 7(. 7) Python... 約 205,000,000件(約 204,000,000件)+ . 8(. 8) pascal... 約 170,000,000件(約 170,000,000件)0 . 9(. 9) Delphi 約 127,000,000件(約 127,000,000件)0 10(10) VisualBasic... 約 121,000,000件(約 121,000,000件)0 11(11) lisp... 約. 26,700,000件(約. 26,700,000件)0 12(12) fortran....... 約. 21,300,000件(約. 21,300,000件)0 13(13) COBOL..... 約. 17,900,000件(約. 18,500,000件)-- 14(14) HSP 約. 12,300,000件(約. 12,300,000件)0 15(15) FreeBasic.. 約 6,310,000件(約 6,320,000件)- 16(16) Tcl/Tk...... 約 4,940,000件(約 4,940,000件)0 17(17) QBasic..... 約 4,180,000件(約 4,190,000件)- 18(18) VisualC.... 約 1,340,000件(約 1,360,000件)-- 19(19) DarkBASIC . 約 1,330,000件(約 1,320,000件)+ 20(20) BasicStudio 約 302,000件(約 304,000件)-- 21(21) N88basic...... 約 217,000件(約 215,000件)++ 22(22) f-basic....... 約 109,000件(約 109,000件)0 23(23) ActiveBasic 約. 90,100件(約. 89,800件)++ 24(24) 99BASIC.... 約. 11,300件(約. 11,500件)-- 3Dprogramming 約790,000件(約794,000件)-- 2Dprogramming 約. 57,600件(約. 57,400件)++ intel 約726,000,000件(約729,000,000件)-- amd 約352,000,000件(約355,000,000件)--
C 約13,400,000,000件
863 :
デフォルトの名無しさん :2009/10/09(金) 07:39:24
( ゚-゚ )
Z 約4,430,000,000件
A .で検索した結果 1〜10件目 / 約31,100,000,000件 I ...で検索した結果 1〜10件目 / 約17,700,000,000件 S .で検索した結果 1〜10件目 / 約14,100,000,000件 C . で検索した結果 1〜10件目 / 約13,400,000,000件 E.....で検索した結果 1〜10件目 / 約11,500,000,000件 O . で検索した結果 1〜10件目 / 約. 9,970,000,000件 M....で検索した結果 1〜10件目 / 約. 8,740,000,000件 P .で検索した結果 1〜10件目 / 約. 8,650,000,000件 D .で検索した結果 1〜10件目 / 約. 8,440,000,000件 B .で検索した結果 1〜10件目 / 約. 8,420,000,000件 U .で検索した結果 1〜10件目 / 約. 7,980,000,000件 N .で検索した結果 1〜10件目 / 約. 7,960,000,000件 T .で検索した結果 1〜10件目 / 約. 7,530,000,000件 Y .で検索した結果 1〜10件目 / 約. 7,490,000,000件 X . で検索した結果 1〜10件目 / 約. 6,850,000,000件 W で検索した結果 1〜10件目 / 約. 6,770,000,000件 L .で検索した結果 1〜10件目 / 約. 6,700,000,000件 V . で検索した結果 1〜10件目 / 約. 6,620,000,000件 F .で検索した結果 1〜10件目 / 約. 6,570,000,000件 R . で検索した結果 1〜10件目 / 約. 6,400,000,000件 G....で検索した結果 1〜10件目 / 約. 5,950,000,000件 H . で検索した結果 1〜10件目 / 約. 5,290,000,000件 K . で検索した結果 1〜10件目 / 約. 5,000,000,000件 J .で検索した結果 1〜10件目 / 約. 4,850,000,000件 Q....で検索した結果 1〜10件目 / 約. 4,300,000,000件 Z .で検索した結果 1〜10件目 / 約. 4,430,000,000件
866 :
デフォルトの名無しさん :2009/10/09(金) 09:42:59
文字化けを回避したいんですけど中々うまくいきません。 DB(文字コード:EUC) ↓ JDBC ↓ SELECT文で’梶fという値を取得 ↓ System.out.printlnで見ると’梶fが’?’に化ける SELECTで取得した’梶fの値に文字コード変換をかけて回避しようとしたのですが・・・ 〜 String value = list.get(0); //SELECTで’梶fという値は取得済み、valueに挿入 System.out.println(value): //この時点で’?’に化けている value = new String(getByte(value, "EUC_JP"), "8859-1"); //文字コード変換処理 System.out.println(value): //別の変な文字に化けている’。ゥ’のような 〜 文字コード変換が不可能なら’梶fという文字がきたら’(’、’株’、’)’みたいに3つに分けた文字に変える 方法をとりたいのですが、’梶fの文字がきたというのを判断する方法jが分かりません。 どなたか詳しい方アドバイスをお願い致します。
868 :
デフォルトの名無しさん :2009/10/09(金) 12:40:07
表示に使ってるフォントに鰍ェ無いとかいう話じゃないだろな
870 :
デフォルトの名無しさん :2009/10/09(金) 12:42:21
>>867 てか、普通utf-8使うけどね
なぜEUCを使わなければいけない理由を作る方が難しいよ
全角文字の一バイト目を切り出し、その切り出したものをnew Stringすると、対応する文字コードがないので?にへんかんされてしまいます。 一バイト目をバイナリコードとしてStrlngを作る方法はないでしょか。
UTF-8に鰍チてあるの?
これでよし System.out.println(new String(s.getBytes("Windows-31J")));
>>874 UTF-8にはある。EUC-JPにはない。
878 :
デフォルトの名無しさん :2009/10/09(金) 12:58:21
>>874 あります。"\xE3\x88\xB1"
PostgreSQLのデフォはEUCです
>>880 変更できるしEUC_JPでない理由にはならない
System.out.println(new String(s.getBytes("UTF-8"))); でできました。
コード表に鰍ェ複数あって難渋したことがあったっけな。
>>867 です。
>>868 文字コードを調べたらたしか’6311’みたいな感じだったと思うんですけど、
’@’←これも同じ値になったので特定ができない気がしました。
ちなみに’@’も文字化けします。
〜
char c = value.toCharArray();
int num = 0;
for(int i = 0; c.length > i; i++){
num = c[i];
System.out.println(num);
}
〜
上記で調べました。
コーディングちょっと違うかもです、すみません。
>>870 客先の環境なのでDBの文字コードは変更できないのです。
DBには鰍ェ入っていないと見た
まがいなりにもプログラミングで金もらってる人間がこんなところでつまらん質問するなよ。 初心者が許されるのは俺達のような小学生までだ。マ板に帰れ。
JREはGtkに依存しているよね kde4を使っている俺としては、qt4版みたいなのがあればいいと思うんだけど 何かない?
889 :
888 :2009/10/09(金) 17:19:28
誤爆した
>>884 SQL文の時点でUTF-8に変換して取得してみたらどう?
継承はスーパークラスのコードを自動生成する機能だと聞きましたが、 このときインスタンスはどうなるのでしょう? クラスAを継承したクラスBがあって、クラスBをnewすると、 クラスBのインスタンスができるだけでなく、クラスAのインスタンスもできるということですか?
自動生成というよりは引継いでいるというイメージ。 継承先は元クラスの派生という存在で、is-aの関係と呼ばれる。 派生クラスBのコンストラクタが呼ばれると、明示的/暗黙的に親クラスのコンストラクタも 呼ばれるため、親クラスのインスタンスも生成されている。
>>891 できるインスタンス自体はクラスBのものだけですが、
クラスBはクラスAの機能をすべて受け継いだ上で追加の機能を備えたものですので、
追加の部分を見ないことにするなら単にクラスAとして扱うこともできます
たとえば
A a1 = new A(); //これは普通
B b1 = new B(); //これも普通
A a2 = new B(); //!?
>>892 >親クラスのインスタンスも生成されている。
これホント?
当然ウソ
なんか嘘呼ばわりされて悲しいけど、ちょっとテストコード書いて見たよ。
public class Test {
public static void main(String[] args) {
new Concrete();
}
public static class Super {}
public static class Concrete extends Super {}
}
上記コードを実行
java -agentlib:hprof=format=b Test
jhatで分析
jhat java.hprof
http://localhost:7000/にアクセス ↓その結果
All Classes (excluding platform)
Package <Default Package>
class Test [0x500002fc]
class Test$Concrete [0x50000362]
class Test$Super [0x50000361]
内部インスタンスとしてTest$Superが生成されていることがわかる。
>>896 勘違いしてるな。
それはクラス定義が0x50000361にロードされていることを示しているだけだ。
インスタンスが見たいなら、Test$Superのリンク先でInstancesの中を見ないといけない。
当然サブクラスのインスタンスしか存在していないことがわかる。
baka
これがクラスローダという奴か
だって間違ってんじゃねーかw
メモリにロードされることをインスタンスが出来ると言うのではないの? サブクラスにはスーパークラスのフィールドとメソッドが含まれている以上、 スーパークラスのコードもロードされなければコンピュータはスーパークラスの処理を使えないのでは?
わろす
>>902 しか読んでないがスーパークラスのクラスがロードされてるんじゃないの?
スレタイの【初心者】【専用】って、回答する側も初心者でなきゃならないってことだったのか。
906 :
デフォルトの名無しさん :2009/10/10(土) 00:54:12
こんにちわ。 mainpanelをJPanelにて作成し、レイアウトにGridBagLayoutを設定しました。 表状にデータが表示されたのですが、その表示エリア部分の高さが mainpanelの中心部に表示になってしまっております。 表示エリアはmainpanelの最上部から表示させたいのですが、 良いやり方があれば教えていただけませんでしょうか
909 :
デフォルトの名無しさん :2009/10/10(土) 02:08:27
無能糞乙
自己紹介乙
今不思議なバグに遭遇した aに6が入ってる状態で b=a; としたらbは6が代入されたがaは1減って5になった デバッグでステップ実行しても同じ、途中で他の割り込みに飛んでる様子もない ためしにこう実行してみても b=a; a=b; aは5から変化はなかった 環境が壊れてるとは思えないし不思議だ
912 :
デフォルトの名無しさん :2009/10/10(土) 13:46:14
Eclipseを使って簡単なアプレットに挑戦している 超初心者です。 実行すると”アプレットが開始されました”という 表示がビューアに出ますが、背景が真白で何も表示 されません。init()以下のコードも何度も見直しましたが、 間違いないとおもいます。試しに無料サイトでアプレットを ダウンロードして実行してみると表示できるので環境は 問題ないとおもいます。 環境、ソースコードの間違い以外で考えられることを 教えてください。
アプレットで表示されないのはいろいろ考えられるんですよ。 だからいろいろな可能性があってイチイチ面倒なので、このスレで叩かれる前にちゃんと表示できる程度のスキルをつけてから来たほうがいいですよ。
914 :
911 :2009/10/10(土) 14:05:54
メイン部とキー割り込み部が同時に並列で動いてしまうのだろうか? keyPressed割り込みを一時的に禁止するにはどうすればいいですか?
>>914 排他制御に失敗してるだけじゃないのか? 再現コードがなきゃわからねーよ。
このスレは初心者が質問すると荒れるね
ということは初心者専用っていうのは熟練者が質問して初心者が答えることを想定したスレってことか
XMLでDocumentを作ったんだけど、 普通はデータを参照する時にsaxとかdomに変換するのか
あたりまえだのクラッカー
saxとdomは同じレベルのクラスという事は分かるんだが、 DocumentとJaxpの関係がいまいちわからん アプリケーション -------- sax dom -------- jaxp みたいな感じでおk?
SAXとDOMは同レベルではないんだが、SAXのほうが低レベル。
そうなのか、知らなかった
眠いから寝る
>>923 thx
DOM(Document Object Model)は、XMLの木構造をクラス化したもの。 DOMで操作する、というのは「XMLファイル全体を読んで要素をツリー 化してから操作する」ということ。 SAX(Simple API for XML)は、XMLを頭から読んで、要素開始、テキスト 開始、テキスト終了、要素終了のようなタイミングごとにやることを指定 して処理する方法。
つーかその程度のレベルは自分で調べろよ低脳
>>922 SAX/DOMの実装依存部分を吸収する目的で定義されたインターフェースがJAXP
Sunのリファレンス実装以外に、ApacheのXerces2とかも提供している。
SAXとは何かを初心者レベルでもわかるように説明しろっつってんだよクズ
SEX
class Sampleb { public static void main(String args[]) { int num; num =3; System.out.println("変数numの値は" + num + ); num =4; System.out.println("新しい値は" + num + "です"); } } 式の開始が不正と出ました。
で?
どこが間違ってるか教えてください。
その行のprintlnの中身。
詳しく教えてください。 手抜きは止めてください。
932です。 全く検討がつきません。
+で終わってるとこ。その+を取るか、後ろに何か足すモノを書け。
「開始が不正」ってのは分かりづらいかもな。 javacの視点で見ると、「+」があったので、次に何か足す式が来る、と思うわけだ。 ところが次に来たのは閉じカッコ。 「ありゃりゃ? 閉じカッコで終わる式なんかありませんよ」というエラー。
なんだかわかりません。 ここは初心者ですよね?手抜きは止めてもらえますか?
まちげーた。 「閉じカッコで*始まる*式なんかありませんよ」ね。
>>936 JAVAって優秀なんですよね?
それぐらい出来ないんですかぁ?
なるほど!出来ました。 +の意味がわかりました。 ありがとうございます。
WTPでmysqlの使い方説明してるサイトとかありませんか?
ここは初心者じゃないんですか?
>>944 【初心者】【専用】は上級者から見た初心者であって、
文法とかJavaの一般常識は身につけてて当たり前の人が、質問するスレです
946 :
sage :2009/10/11(日) 18:07:08
javamailを利用して、フリメのメール自動で受信する方法をご教授頂きたいんですが…。 今のプログラムでは、手動で受信しなければいけません。 メールサーバーにメールがきたら、自動で受信するようにしたいんですがどうすればいいでしょうか?
ご教授は大学でお求め下さい 准教授の場合お安くできますのでご検討下さいますようお願い申し上げます
>>946 そんなの、面倒くさいからcronで妥協すればいいじゃん
メールクライアントを常駐させておき、 一定時間間隔で新規に受信があったかどうかをクライアントから確認にいく。 一定間隔でなくてもいいけど。
>>948 javaで実現するのはあまり良いやり方ではないんですか?
cronで設定するのが一番いいんですかね?
>>950 そんなの、お前じゃないから知らんがな
でも、俺だったら面倒いから作らないで、cronを使うな〜
メモリとかの事を考えたら、cronの方が少ない気もするし(本当か?)
>>950 しらねーよ
Javaでスケジューリングしてやってもいいしやらなくてもいい、他の奴が決める話じゃねぇ
ちょっと質問なんですけど。 以下の条件で 1.OracleのDBの文字コードがEUC 2.クライアント側はSJIS 3.扱う文字は’梶f 普通にDBから’梶f取得して出力させたら’?’になるんですけど、 これはjavaの内部コードがUTF-16で、まずEUC→UTF-16の変換が行われて、 UTF-16に’梶fが対応していないので文字コードが失われる。 結果デフォルト表記である’?’になってしまう。 ということはJavaで文字コード変換をかけるのは無意味(文字コードが失われているので)。 ちなみにこれまでの調べによるとSJIS→UTF-16でも’梶fが対応していないので、 上記のDBの文字コードが仮にSJISであっても同じことがおこる(出力結果は’?’)。 っていう個人的な結論が出たんですけど合ってますか?
何このデジャブ。もしかして同一人物の長ったらしい釣りなのか?
分からないならレスしなくていいです。
★Java2SEのソースコードについて質問です java.util.Arraysクラスのメソッドsortのソースコードが知りたいのですが、 公開しているサイトはありますか? Arraysクラスに限らず他のクラスのソースコードも読んでみたいので、 知っている方がいましたら教えてください よろしくお願いします。
>>957 Eclipseで見れたキガス(バージョン高いやつじゃないとダメかも)
違ったらごめんなさい
>>955 釣りじゃないです必死なんです
SDKの中に含まれているだろ・・・お前はなにを言ってるんだ?
>>960 せめてjavaでの回避が不可能という確証が得られれば
代案を提示できるんですけど
もし現行案で回避できると後で分かったらあの先輩に何を言われるか・・・
もう胃が痛いです
>>954 postgresqlでutf8のDBで鰍ヘ表示できたよ。
知らんがな
だから >UTF-16に’梶fが対応していないので文字コードが失われる。 ってことはないんじゃないかと
元データが壊れてんじゃないの? 検証できないんだから調べようがないわ
すみません、質問です。 【やろうとしてること】テキストファイルの入力 【ハマってること】FileInputStreamのコンストラクタで「ソースが見つかりません」となる 【ソース】 import java.io.*; public class practice { public static void main(String[] args) { File f; FileInputStream fis; f = new File("a.txt"); System.out.println(f.getName()); // [1] fis = new FileInputStream(f); // [2] } // try~catchは省略 すみません、、 なんとか自分で調べて解決しようとしていたのですが、 半日ほど調べても原因がさっぱりわからなかったので質問しました。 [1]では正常にファイル名が出力されますが、[2]でエラーとなります。 【やってみたこと】 FileReaderを使う → × ファイル名にフルパス → × FileInputStreamのコンストラクタにフルパス → × FileInputStreamのみでデバッグ中に対象ファイルをリネームしようとしたら Windowsに怒られたので、ファイルは掴んでいるようなのですが、、、 JavaDocでは「FileNotFoundException - ファイルが存在しないか、普通のファイルではなくディレクトリであるか、またはなんらかの理由で開くことができない場合」 と有るのですが、ファイルは存在しますし(前述)、普通のテキストファイルです。 「なんらかの理由」??であるとすると見当がつきません。 長文で失礼しますが、何卒ご教示のほどよろしくお願いいたします。
>>965 まずはjavaで鰍書き込んでみるこった。
>>967 まだ開いていない (FileInputStreamを呼べていない) 段階でファイルを掴んでいるはずはないので、
他のプログラム (テキストエディタとか) がそのファイルを掴んでいるのではないか?
画像を多めに開いた場合のフリーズするトラブルは、x64化すると解決することが多い
スレッドとかよくわからないんですけどわかりやすく教えて下さい 入門本がなんとか分かるぐらいの人対象の説明でおねがいします わかりやすい説明が書かれたサイトの紹介でも可
UTF-16に’梶fが対応していないのではなく DB(EUC)→Java(UTF-16)のマッピングに’梶fの対応が無い という表現が正しい気がしています。 結局Javaでは無理という結論なのですが(Javaに渡った時点で文字コードが失われているため)。
二番煎じだとネタにもならんな
>>971 PCの中では、たくさんのプログラムが同時に動いてるだろ
今見てるブラウザの後ろで、メディアプレイヤーが音楽鳴らしながら、
メールソフトがメールチェックしてて、タスクバーの時計が時間を刻んでて、って感じで
ブラウザだけでも、マウスやキーボードの入力を処理しながら同時にサーバとの通信も処理してるだろ
そんなふうにPCの中で同時にたくさん動いてる処理のそれぞれがスレッド
同時に3つの処理をしたい場合は、3個のスレッドを使う
1つしか処理をしない場合でも、1個のスレッドを使っている
そんな馬鹿っぽい質問にマジレスとか優しすぎる
>>972 バイト列として直接引っ張り出してこちら側で変換するとか。
"株 EUC"で検索してみると判るけど、
「(株)」はJIS的には2つコードポイントがあって、
それが面倒な話に繋がっているのかもしれない。
select convert(hoge, 'UTF-8') from tbl じゃ、だめ?
>>972 せめて同じスレのレスくらい見直せ。
Unicode(UTF-8/16/32)には「梶vがある。
Shift_JISには「梶vは無いが、Windows-31Jには「梶vがある。
EUC-JPには「梶vは無いが、x-eucJP-Openは「梶vがある。
でもjava以外からは鰍ェ見えてるんだよね?
>>957 C:\Program Files\Java\jdk*\src.zip
*の部分はバージョン依存 (最新は1.6.0_16)
Swing等、src.zipに無いものは、
http://openjdk.java.net/ (Sunが配布してるバイナリと100%一致してるわけじゃないけど)
データの変換に失敗したみたいなチェック例外ってない?
OracleのJA16EUCを、EUC-JPとして扱っているJDBCがおかしいってことか。 JA16EUCが、あくまで文字エンコーディングしか規定しないのかもしれないけど。 Oracleが文字セットを正しく認識した上で扱っているのなら、 >977 の方法でうまくいきそうだな。
>>982 コネクションに鰍読めるキャラセットを指定しなきゃダメなんじゃないの。
生のバイト列取ってきて文字コード見ればいいんじゃね?
Calendar cal = Calendar.getInstance(); System.out.println(cal.get(Calendar.YEAR)); System.out.println(cal.get(Calendar.MONTH)); System.out.println(cal.get(Calendar.DATE)); なんで、2つめの出力の時に9がでるのさ? PCの時計はちゃんとした時間なんだけどな〜何でだろ
>>985 それは Calendar.OCTOBER が 9 だからだ
>>986 なるほど、カレンダーなんて意識した事がなかったからな〜
thx
意識しなくともおかしかったらドキュメント嫁や
Yahoo!プログラミング言語検索ランキング(今回2009/10/12、前回2009/10/9) . 1(. 1) HTML 約5,020,000,000件(約5,030,000,000件)- . 2(. 2) PHP 約3,000,000,000件(約2,980,000,000件)++ . 3(. 3) Java.... 約 832,000,000件(約 832,000,000件)0 . 4(. 4) Forth. 約 324,000,000件(約 322,000,000件)++ . 5(. 5) Ruby.. 約 274,000,000件(約 274,000,000件)0 . 6(. 6) perl..... 約 245,000,000件(約 244,000,000件)+ . 7(. 7) Python... 約 209,000,000件(約 205,000,000件)++ . 8(. 8) pascal... 約 168,000,000件(約 170,000,000件)-- . 9(. 9) Delphi 約 128,000,000件(約 127,000,000件)+ 10(10) VisualBasic... 約 120,000,000件(約 121,000,000件)- 11(11) lisp... 約. 26,600,000件(約. 26,700,000件)- 12(12) fortran....... 約. 21,300,000件(約. 21,300,000件)0 13(13) COBOL..... 約. 17,100,000件(約. 17,900,000件)-- 14(14) HSP 約. 12,400,000件(約. 12,300,000件)+ 15(15) FreeBasic.. 約 6,300,000件(約 6,310,000件)- 16(16) Tcl/Tk...... 約 4,820,000件(約 4,940,000件)-- 17(17) QBasic..... 約 4,160,000件(約 4,180,000件)-- 18(18) VisualC.... 約 1,340,000件(約 1,340,000件)0 19(19) DarkBASIC . 約 1,330,000件(約 1,330,000件)0 20(20) BasicStudio 約 302,000件(約 302,000件)0 21(21) N88basic...... 約 218,000件(約 217,000件)+ 22(22) f-basic....... 約 109,000件(約 109,000件)0 23(23) ActiveBasic 約. 90,600件(約. 90,100件)++ 24(24) 99BASIC.... 約. 11,300件(約. 11,300件)0 3Dprogramming 約792,000件(約790,000件)++ 2Dprogramming 約. 57,100件(約. 57,600件)-- intel 約714,000,000件(約726,000,000件)-- amd 約349,000,000件(約352,000,000件)--
>>969 殿
原因は別にありましたが、無事解決しました。
お騒がせしてすみませんでした。
992 :
デフォルトの名無しさん :2009/10/13(火) 09:26:58
993 :
デフォルトの名無しさん :2009/10/13(火) 10:55:43
JavaやっててUTF-8統一しないのはカスである
OracleにEUCのDB作ってみたけど鰍ヘ?になるな。 getBytesで取り出したらefbc9fになるな。 こりゃどうしようもないな。
>>994 DBのエンコードがなんだろうが、文字化けせずに取り出せるよ
>>994 insertの時点で化けてなんじゃないの?
>>996 sqlplusでinsert into tbl values ('');
select test from tbl;
ですでに?になる。
>>997 じゃあ、sqlplusとDBが噛み合っていない
winのクライアント使ってるならデフォルトでSJISになってるはず
どうやったらかみ合うんかなー
1000 :
デフォルトの名無しさん :2009/10/13(火) 12:08:19
>>999 sqlplusの設定あるだろ
teratermなんかに似ている
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。