★★Java質問・相談スレッド137★★
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/03/16(火) 10:23:04JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理 ttp://pc11.2ch.net/hp/
Webプログラミング ttp://pc11.2ch.net/php/
をご利用下さい。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
ttp://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
★★Java質問・相談スレッド136★★
http://pc12.2ch.net/test/read.cgi/tech/1265541019/
次スレは>>950あたりで。
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
ttp://www.wikiroom.com/java/
0002デフォルトの名無しさん
2010/03/16(火) 10:24:00■ AWT と Swing は --
Java低速GUI Swing 9
http://pc12.2ch.net/test/read.cgi/tech/1261232019/
■ SWT は --
Java 高速GUI SWT 3
http://pc12.2ch.net/test/read.cgi/tech/1164877399/
■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part20
http://pc12.2ch.net/test/read.cgi/tech/1253532993/
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 9
ttp://pc12.2ch.net/test/read.cgi/tech/1249357352/
■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 68 ★★
http://pc12.2ch.net/test/read.cgi/tech/1248012902/
■ NetBeansに関する雑談は --
NetBeans Part5【Java/C++/Ruby/Python/PHP】
http://pc12.2ch.net/test/read.cgi/tech/1247926906/
■ Eclipseに関する雑談は --
Eclipse統合M28【Java/C++/Ruby/Python/Perl】
http://pc12.2ch.net/test/read.cgi/tech/1247051216/
0003デフォルトの名無しさん
2010/03/16(火) 10:26:00■ J2SE 5.0 (1.5.0)
ttp://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
ttp://java.sun.com/javase/ja/6/
**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja
0004デフォルトの名無しさん
2010/03/16(火) 11:44:20_ノ _ノ _ノ ヽ/| ノ ノ 。。
/\___/ヽ
/ノヽ ヽ、
/ ⌒''ヽ,,,)ii(,,,r'''''' :::ヘ
| ン(○),ン <、(○)<::| |`ヽ、
| `⌒,,ノ(、_, )ヽ⌒´ ::l |::::ヽl
. ヽ ヽ il´トェェェイ`li r ;/ .|:::::i |
/ヽ !l |,r-r-| l! /ヽ |:::::l |
/ |^|ヽ、 `ニニ´一/|^|`,r-|:
0005デフォルトの名無しさん
2010/03/16(火) 21:09:570006デフォルトの名無しさん
2010/03/16(火) 21:36:13>クラスに属さないメソッドって作れないの?
PHPやらVBみたいなグローバルfunctionや
C#みたいなデリゲートやラムダ式のこと言ってるなら無理
できて匿名クラスつくってメソッドを定義するくらい
0007デフォルトの名無しさん
2010/03/17(水) 09:42:44これやると砂箱で動かなくなるんだっけ?
0008デフォルトの名無しさん
2010/03/17(水) 09:43:510009デフォルトの名無しさん
2010/03/17(水) 09:45:410010デフォルトの名無しさん
2010/03/17(水) 10:36:39SunのJREのXSLTって中身はXalanだよね?
XalanのXSLTCは使えないんだっけ?
0011デフォルトの名無しさん
2010/03/17(水) 18:10:270012デフォルトの名無しさん
2010/03/17(水) 22:23:11リソースファイルを2つ使いたくてstruts-configに下記のように記述しました。
/********************* struts-config *******************/
<message-resources parameter="ApplicationResource" />
<message-resources parameter="resources.application" key="hoge" />
でjsp側で下記のように記述して取り出そうとしたんですけど何れも上手くいきませんでした。
/************************* jsp ***********************/
<bean:message key='hoge' name='errors.Data' />
<bean:message bundle='hoge' name='errors.Data' request='scope' />
ちなみにリソースファイルの中身です
/********************* application.property *******************/
errors.Data=不正なデータです
Struts1.2を使用しているのでこのバージョンではリソースファイルを切り分けて使えないということでしょうか・・・
知ってる方いらっしゃいましたらお教えて頂けないでしょうか。
※参考にしたサイト
http://konnichiwa-dou.cocolog-nifty.com/blog/2006/06/post_3b7c.html
http://d.hatena.ne.jp/catseye88/20080116/1200487568
http://slashdot.jp/~kappatottaotoko/journal/393935
http://fireball.loafer.jp/kes/article_494.html
0013デフォルトの名無しさん
2010/03/17(水) 23:02:28<taskdef>のところで詰まってしまうのですが、教えてください
Antは1.7.1つかってます。クラスパスが通ってないことはさすがに
ないとおもいます。
taskdef A class needed by class com.sun.tools.xjc.XJCTask
cannot be found: org/apache/tools/ant/DynamicConfigurator
using the classloader AntClassLoader[D:\...略...\jaxb-api.jar;
D:\...略...\jaxb-impl.jar;
...略...
]
0014デフォルトの名無しさん
2010/03/17(水) 23:23:500015デフォルトの名無しさん
2010/03/17(水) 23:45:01サンプルはJAXBのフォルダの中にはいっていまして、
サンプルのbuild.xmlではそのまま動くように相対パスでつながっています
#jaxbフォルダ
# +lib
# jaxb-xjc.jar
# *.jar
# +samples
# +class-resolver
# build.xml
# +other-sample
# build.xml
0016デフォルトの名無しさん
2010/03/18(木) 03:32:28うぅっ、やっぱりそうでしたか・・。
友人から種をもらったので軽い気持ちで育ててしまいましたが、
よく考えれば当たり前ですよね・・。
しかし、成体になるまで育ててしまったものを今さらどうしていいのやら・・
日曜の朝、エサを用意しわすれてでかけたら、
夜帰った時には80cm以上も移動していました・・・。
0017デフォルトの名無しさん
2010/03/18(木) 11:01:14△△もっとStruts2の良さを教えてくださいSsssion6
0018デフォルトの名無しさん
2010/03/18(木) 11:25:34jaxb-impl.jarがlibにない。
というかググレカス。いくらでも出てくるわ。
0019デフォルトの名無しさん
2010/03/18(木) 23:48:20あるよ
jaxb2.2にあるlibフォルダには以下6つが最初からはいってる
https://jaxb.dev.java.net/
activation.jar
jaxb1-impl.jar
jaxb-api.jar
jaxb-impl.jar
jaxb-xjc.jar
jsr173_1.0_api.jar
0020デフォルトの名無しさん
2010/03/19(金) 01:21:50void a(){}
class B{
void a(){}
void b(){
a(); /**/
}
}
}
/**/の部分はBのa()が呼ばれるじゃないですか
ここでAのa()が呼ばれるようにしたいんですがどうすればいいでしょうか
0021デフォルトの名無しさん
2010/03/19(金) 01:48:56002215, 19
2010/03/19(金) 03:25:20ライブラリいれちゃだめなのかも・・・
0023デフォルトの名無しさん
2010/03/19(金) 07:15:090024デフォルトの名無しさん
2010/03/19(金) 09:12:34どうもです
0025デフォルトの名無しさん
2010/03/19(金) 09:55:35Collection results = (Collection)query.execute();
for (Iterator i = results.iterator(); i.hasNext();){
処理部分
}
JDOでこのように値を取得しました。
parametor1はString、parametor2はlongです。
処理部分のところにブレークポイントを設定したところ、i.nextの部分にobject[ String, long]と値が確かに入っている事が確認できました。
この二つの値を取得または書き換えたいのですが、どうすればいいのでしょうか?
0026デフォルトの名無しさん
2010/03/19(金) 10:33:58シリアライズするとき送受信するクラスのバージョンわ合わせないといけないって聞いたことがあります。
そこで疑問ですが、
引数がString、Date、List、Mapの基本形の場合はJDKのバージョンが違うものでも
問題なくシリアライズできますか?
シリアライズでエラーになる場合というのは、JDKのバージョンじゃなくクラスの型の定義が変わったときでしょうか?
0027デフォルトの名無しさん
2010/03/19(金) 11:36:41やってみりゃいいじゃん
Javaのバージョンにもよると思うよ
おれならreadObjectとwriteObjectを書くよ
002825
2010/03/19(金) 14:23:18失礼しました。
0029デフォルトの名無しさん
2010/03/19(金) 14:29:57JDK のバージョンは関係ない。クラスの型定義が変わると互換性がなくなる。
JDK のバージョンアップで String, Date などの型の内部構造が変われば受信側で復元不能。
003015, 19
2010/03/20(土) 09:55:44Webの資料が古かったんだろう
0031デフォルトの名無しさん
2010/03/20(土) 11:18:12はあ?
0032デフォルトの名無しさん
2010/03/20(土) 14:57:050033デフォルトの名無しさん
2010/03/20(土) 15:34:19MacのJ2SEはsrc.jarが入っていないという話はあるが・・・
0034デフォルトの名無しさん
2010/03/20(土) 19:23:41行ズレ起きまくりだが無いよりマシと何とか推測しながら見てる。
0035デフォルトの名無しさん
2010/03/20(土) 21:14:02今、Linux上でゲームを作ってるのですが、
ウインドウを最小化した後、元に戻すとキーイベントを感知してくれず無反応になります。
Windowsでは再現しない、Linux特有の物のようなのですが・・・
いろいろ調べた結果、フォーカスを失った時に一度キーリスナーの登録を消して、
またフォーカスを得た時に、キーリスナーを登録すればいいという記事を見つけ改良してみました
しかし、それでも症状は改善されません・・・
どなたか、アドバイスいただけませんでしょうか?
0036デフォルトの名無しさん
2010/03/20(土) 21:34:470037デフォルトの名無しさん
2010/03/20(土) 21:50:51「ウチでは再現しない」で終わりそうだが。
0038デフォルトの名無しさん
2010/03/20(土) 21:55:46>Linux特有の物のようなのですが・・・
そんなバグあるんだね〜
もしかしたら、linuxでも他の環境だったら動くかもしれないから、
*.jarに固めてうpしてみたら?
003935
2010/03/20(土) 22:35:50少し長いです・・・
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class Hoge extends JFrame {
public static void main(String[] args) {
new Hoge();
}
public Hoge() {
this.setSize(200, 100);
this.add(new MainPanel());
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev) { System.exit(0); }
});
this.setVisible(true);
}
}
004035
2010/03/20(土) 22:36:36KeyListener kl=null;
public MainPanel() {
kl=null;
setFocusable(true);
this.addFocusListener(this);
}
public void focusGained(FocusEvent ev) {
if (kl==null) {
kl=this;
this.addKeyListener(kl);
this.setFocusable(true);
}
}
public void focusLost(FocusEvent ev) {
this.removeKeyListener(kl);
kl=null;
}
public void keyPressed(KeyEvent ke) {
//super.keyReleased(ke);
int kc=ke.getKeyCode();
System.out.printf("key:%x\n", kc);
}
public void keyReleased(KeyEvent e) { }
public void keyTyped(KeyEvent e) { }
}
004135
2010/03/20(土) 22:38:19でも、一度最小化などすると無反応になります・・・
0042デフォルトの名無しさん
2010/03/20(土) 23:00:51これって、ウインドウをクリックすればいいだけ何だよね?
一応、コンソールに何か出力されるか見ていたけど、特に何も表示されなかった
起動した直後でも
0044デフォルトの名無しさん
2010/03/20(土) 23:03:26あぁ、ごめんキーボードを押すんだね
クリックだけしてた
コードを読んでないもので
004535
2010/03/20(土) 23:19:50ウインドウを最小化した後に、またウインドウを元に戻せばいいんだよね?
その後に、エンターキーを押したら普通に動いたよ
$uname -a(の略)
Linux yamada 2.6.32-gentoo-r7 x86_64 Intel(R) Core(TM) i7 CPU 860 GNU/Linux
kde 4.4.1
sun-jdk 1.6.0.17
------------------------------------------------------------------------------------
どうでもいいことなんだけどさ、
>public void windowClosing(WindowEvent ev) { System.exit(0); }
これって、System.exit(0);は必要ないんじゃね?
>KeyListener kl=null;
>public MainPanel() {
>kl=null
3行目のkl = nullってまったく意味ないじゃん
0046デフォルトの名無しさん
2010/03/20(土) 23:22:25HashSetを使いますがうまくいきませんです。
String[] h1 = {"a","b","c"};
String[] h2 = {"a","b","c"};
String[] h3 = {"a","a","a"};
Set<String[]> set = new HashSet<String[]>();
set.add(h1);
set.add(h2);
set.add(h3);
set.add(h1);
System.out.println("サイズ="+set.size());
Iterator ite = set.iterator();
while(ite.hasNext()){
String[] obj = (String[])ite.next();
System.out.println(""+obj[0]+"/"+obj[1]+"/"+obj[2]);
}
これを実行すると
サイズ=3
a/b/c
a/b/c
a/a/a
になります。h1とh2が別物とされてるみたいですが、
これを回避するにはどうすればいいですか?
004735
2010/03/20(土) 23:27:02見ていただいてありがとうございます
あれ?
最小化して、また戻してもうまく動きました?
おかしいなぁ・・・
Linuxでもディストリで違うのかな・・・
ubuntuだけで出るのかな・・・???
$uname -a
Linux laptop 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686 GNU/Linux
その他、意味のない部分とかは・・・
症状の出る最小コードを適当に作った時のゴミが残ってたりするので
あまり気にしないでください^^;
0048デフォルトの名無しさん
2010/03/20(土) 23:34:24h1 != h2
0049デフォルトの名無しさん
2010/03/20(土) 23:43:50ああ、どうすればという話かスマソ。
デリミッタで繋いで比較か、equalsをオーバーライドして比較出来るようにした
クラスに格納して突っ込む。
005046
2010/03/21(日) 00:09:18大馬鹿者に教えるつもりで
御指導ねがいます。
0051デフォルトの名無しさん
2010/03/21(日) 00:21:15static class Comp {
public String[] val;
public Comp(String[] val) {
this.val = val;
}
public boolean equals(Object o) {
if (!o.getClass().equals(Comp.class)) {
return o.equals(this);
} else {
Comp c = (Comp)o;
if (c.val.length!=val.length) return false;
for (int i=0; i<val.length; i++) {
if (!val[i].equals(c.val[i])) return false;
}
return true;
}
}
public int hashCode() {
return 0;
}
}
として、
set.add(new Comp(h1));
して
Comp c = ite.next();
String[] obj = c.val;
0052デフォルトの名無しさん
2010/03/21(日) 00:39:46比較しても良いなら
static class Comp extends HashSet<String> {
public String[] val;
public Comp(String[] val) {
this.val = val;
for (String str : val) {
add(str);
}
}
}
とすることもできる。
色々な条件が考えられるので、ここでは考え方だけね。
005346
2010/03/21(日) 00:57:35力技なんですね。。。
回答頂きありがとうございましたん。
0054デフォルトの名無しさん
2010/03/21(日) 00:59:56他に複数のリナックス環境(ハードソフト共に)で出るかどうか確認してみては?
環境依存かもしれない。
0055デフォルトの名無しさん
2010/03/21(日) 04:08:20全画面描画にして、ウィンドウマネージャの管理下から外れたら?
0056デフォルトの名無しさん
2010/03/21(日) 04:53:03するなら単にフォーカスが失われたままになってるだけだからウィンドウマネージャの問題だと思う。
0057デフォルトの名無しさん
2010/03/21(日) 06:20:50絶対ですか?
005835
2010/03/21(日) 09:01:18ちゃんと文字列出すんですよ
失う時にも、ちゃんと文字列を出します。
でも、なぜかキーリスナーだけ登録してもキーを拾わないのです・・・
この症状、誰か他にも上記のソースで出てる方います??
0059デフォルトの名無しさん
2010/03/21(日) 10:32:35006035
2010/03/21(日) 10:46:50まさしくソレ!
30分ほど前に、それに気づいて今改良してました^^;
IBusに切り替えたら、コロっと改善されました
調べていると、一応JAVAのバグっぽいですね
SCIMで対応するか、JAVAで対応するかになるようですが、
SCIMはもうメンテしてない様子・・・
JAVAの方でも、バグとして認識はあるようですが、
修正優先度の低いバグと捉えてるようですね
IBusは、「・」を打とうとすると「/」が打たれるので気に入らず切り替えてました
ありがとうございました〜
やっとゲームのシステムの開発に戻れる・・・
この、キー入力で3日悩みましたよ><
0061デフォルトの名無しさん
2010/03/21(日) 21:01:58大は小をかねるで、J2EEにしておけばいいのでしょうか?
0062突っ込んでみた
2010/03/21(日) 22:31:01ということで、J2ME
0063デフォルトの名無しさん
2010/03/21(日) 22:33:58006461
2010/03/21(日) 23:49:03サーバ用途というのは、単にサーバ機上で(単体で)動作させるだけというのではなく
クライアントと交信する場合という理解でいいですか。
0065デフォルトの名無しさん
2010/03/22(月) 00:06:24ただ、Socketベースの低レベル通信(TCP,UDP)はJ2SEで。
0066デフォルトの名無しさん
2010/03/22(月) 07:44:54以下のコードでJTextField1の文字列をUNICODE(UTF-8)で
クリップボードにコピーすることはできたのですが、
ペースト先がShift_JISしか使えないため文字化けしてしまいます
これをUNICODEではなくShift_JISでクリップボードにコピーすることは
できないでしょうか?
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
StringSelection selection = new StringSelection(JTextField1.getText());
clipboard.setContents(selection, selection);
以下のように文字コード変換しようとしたのですが
うまくいかずやはり文字化けしてしまいました
try {
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
StringSelection selection = new StringSelection(new String(JTextField1.getText().getBytes("Shift_JIS"), System.getProperty("file.encoding")));
clipboard.setContents(selection, selection);
} catch (UnsupportedEncodingException ex) {
すみません、よろしくお願いします
0067デフォルトの名無しさん
2010/03/22(月) 08:58:18以下のようなエラーが出ます:
>javac Sample016.java
Sample016.java:3: パッケージ javax.servlet.http は存在しません。
import javax.servlet.http.HttpServlet;
EclipseでTomcatを起動したときは問題なく動くんですけど、コマンドプロンプトからjavacだと動きません。
多分、classpathの設定に問題があるんでしょうけど、servlet-api.jarとjsp-api.jarへのclasspathはちゃんと設定されています:
>set classpath
CLASSPATH=.;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip;
C:\Program Files (x86)\Java\jdk1.6.0_17\lib\tools.jar;
C:\apache-tomcat-6.0.26\common\lib\servlet-api.jar;
C:\apache-tomcat-6.0.26\common\lib\jsp-api.jar;
スペック:
Windows XP (64-bit)
apache-tomcat-6.0.26-windows-x64.zip
jdk-6u17-windows-i586.exe
jre6
javac -cp (上記のパス) Sample016.java でも同じエラーが出ます。
…後は何を確認すればよいのでしょうか?
必要であれば補足しますので、どうか助けてください。お願いします。
0068デフォルトの名無しさん
2010/03/22(月) 10:32:00servlet-api.jarをC:\Program Files\Java\jdk1.6.0_17\jre\lib\extに置いたらどうかな?
006967
2010/03/22(月) 10:46:22仰る通りにしたら、コンパイル出来ました!!!1!
これはどういう意味ですか?
C:\Program Files (x86)\Java\jre6\lib\ext
にはクラスパスが通っていて
C:\apache-tomcat-6.0.26\lib
にはクラスパスが通ってな・・・って、あれ?commonは?
あーっ、すみません!
C:\apache-tomcat-6.0.26\common\lib\servlet-api.jar;
じゃなくて
C:\apache-tomcat-6.0.26\lib\servlet-api.jar;
でした!
環境設定のシステム変数も訂正したら-classpathなしでもコンパイルできるようになりました。
昨晩からあの手この手を使って調べてましたが原因が分かりませんでした。
そうやって調べればよかったんですね。さすがプロです。脱帽です。
本当に本当にありがとうございました!
0070デフォルトの名無しさん
2010/03/22(月) 16:29:57http://pc12.2ch.net/test/read.cgi/tech/1268243411/
推薦図書/必読書のためのスレッド 55
http://pc12.2ch.net/test/read.cgi/tech/1190032149/
***Javaのオススメ入門書*** 『創るJava』 3.0
http://pc12.2ch.net/test/read.cgi/tech/1260645926/
英語の技術書読めちゃうプログラマ
http://pc12.2ch.net/test/read.cgi/tech/1256579677/
洋書推薦図書/洋書必読書のためのスレッド 1
0071デフォルトの名無しさん
2010/03/22(月) 18:07:530072デフォルトの名無しさん
2010/03/22(月) 18:11:070073デフォルトの名無しさん
2010/03/22(月) 18:16:17netbeans java の検索結果 約 3,530,000 件中 1 - 100 件目 (0.74 秒)
もうちょっと頑張りましょうレベル。まだまだ比較にならない。
せめて2倍差くらいまで詰め寄らないと。
0074デフォルトの名無しさん
2010/03/22(月) 18:19:23jdeveloper java に一致する日本語のページ 約 332,000 件 (0.54 秒)
だから、オラクルががんばっても日食の猛威は崩せないだろうね。
0075デフォルトの名無しさん
2010/03/22(月) 18:21:03C# の検索結果 約 45,800,000 件中 1 - 100 件目 (0.65 秒)
JavaとC#も比較にならないなぁ。実はC#派だったりするんだが・・・
0076デフォルトの名無しさん
2010/03/22(月) 18:24:49それ、日本語のページを検索になっとる・・・
jdeveloper java の検索結果 約 623,000 件中 1 - 100 件目 (0.43 秒)
jbuilder java の検索結果 約 1,010,000 件中 1 - 100 件目 (0.56 秒)
0077デフォルトの名無しさん
2010/03/22(月) 21:48:55まぁそんなのどうでもいいけど
0078デフォルトの名無しさん
2010/03/22(月) 21:55:46先輩からEclipse薦められたけど、業務で使う場合IDEは選べるの?
0079デフォルトの名無しさん
2010/03/22(月) 22:18:39でもさ、NetBeansって超モッサリしてない?
Eclipseに移行したくなってきたわ
0080デフォルトの名無しさん
2010/03/22(月) 22:22:53だ・か・ら!PCの性能が低すぎるんだってば!
0081デフォルトの名無しさん
2010/03/22(月) 22:31:40NetBeansでモッサリしてるなら、
エクリプスもモッサリしてる。
0082デフォルトの名無しさん
2010/03/22(月) 22:39:50008379
2010/03/22(月) 22:57:43普通にcore i7 860を使っているんだけど
不必要な所は入れてないけどね
>>81
それでも、少しはEclipseの方が軽いじゃん
0084デフォルトの名無しさん
2010/03/23(火) 00:12:54逆にコードバリバリ書くならEclipse一択なわけ。
どっちも大事なんだよ。
0085デフォルトの名無しさん
2010/03/23(火) 00:22:520086デフォルトの名無しさん
2010/03/23(火) 00:39:02win32apiじゃ駄目とか。
008735
2010/03/23(火) 00:55:43いろいろアドバイスもらったりしてすごく助かりました。
そして、やっと作っていたゲームが完成しました^^
http://toku.xdisc.net/cgi/up/qqq/nm21949.zip
ぜひ見ていただいてご感想ください〜
ソースも同封してますので、お時間ある方はアドバイスいただけると助かります^^
さて、がんばって次のゲーム作るお!
0088デフォルトの名無しさん
2010/03/23(火) 01:52:04そんな機械作業に工数割くわけねーだろ
0089デフォルトの名無しさん
2010/03/23(火) 01:53:40どこの素人だよ。
0090デフォルトの名無しさん
2010/03/23(火) 02:10:23おお、良いんじゃね。Mac OS X で動いてるよ。
2000 年頃にこういうドラクエ�U風 RPG 型仮想空間 SNS 作ろうとして挫折したなー
0091デフォルトの名無しさん
2010/03/23(火) 02:45:150092デフォルトの名無しさん
2010/03/23(火) 02:55:480093デフォルトの名無しさん
2010/03/23(火) 03:04:26>>87
起動して速攻死んで戸惑ったw
プレイしただけだけど結構完成度高いと思った。
柵に触ると死ぬのはファミコンゲームみたいでいいなw
0094デフォルトの名無しさん
2010/03/23(火) 03:09:320095デフォルトの名無しさん
2010/03/23(火) 03:47:06いくつかのファイルに分けてプログラミングすることに
あこがれる
ファイル拡張子が
MF、SF、DSAとか
いっぱいあるけどなんだろうな〜と思ってみたり
classもいっぱいあるし
あれができるようになるのに、
お勧めの書籍ありますでしょうか
javaに限らず)
0096デフォルトの名無しさん
2010/03/23(火) 10:20:28絵の書ける友達がいてるというのが羨ましい
ゲーム自体は何てことはない、そこらにある内容だけど
150点くらい取ったが、脱ぐ気配はないな
0097デフォルトの名無しさん
2010/03/23(火) 11:39:32うわ、想像してた以上に面白いw
0098デフォルトの名無しさん
2010/03/23(火) 13:27:310099デフォルトの名無しさん
2010/03/23(火) 13:52:490100デフォルトの名無しさん
2010/03/23(火) 14:23:32自演辞めれ・・・
0101デフォルトの名無しさん
2010/03/23(火) 14:25:500102デフォルトの名無しさん
2010/03/23(火) 15:30:52C:\apache-tomcat-6.0.26\webapps\myapp\WEB-INF\classes\com\gokuiSample025.javaには
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//パラメータ取得
String person = request.getParameter("person");
//コード変換
person = new String(person.getBytes("8859_1"),"SJIS");
//出力
response.setContentType("text/html;charset=Shift_JIS");
PrintWriter out = response.getWriter();
out.println("<html><head><title>サンプル025</title></head><body>");
out.println(person + "さん、こんにちは");
out.println("</body></html>");
out.close();
}
・・・というコードが含まれていて、実行させるにはpostメソッドが必要みたいです。
そして、Sample025.htmlというファイルは
<form method="post" action="Sample025">
お名前:
<input type="text" name="person" size="20">
<input type="submit" value="OK">
</form>
・・・というコードが含まれています。
ただ、このSample025.htmlを「どこに置いて」「どう実行させればいいのか」分かりません。
C:\apache-tomcat-6.0.26\webapps\myapp\の直下に置いて
http://localhost:8080/myapp/Sample025.htmlとやっても「ファイルが無い」と言われます。
「どこに置いて」「どう実行させればいいのか」を教えてください。
因みに、http://localhost:8080/myapp/Sample025だとサーブレット単体では動くのですが、
「HTTPステータス 405 - HTTPのGETメソッドは、このURLではサポートされていません。」と言われます。
では、お願いします。
0103デフォルトの名無しさん
2010/03/23(火) 16:01:44>http://localhost:8080/myapp/Sample025.htmlとやっても「ファイルが無い」と言われます。
ふつーはこれでいいはずなんだが
web.xmlを見せてみ
もしくはmyapp直下にWebContentsとかってディレクトリがあったりする?
>因みに、http://localhost:8080/myapp/Sample025だとサーブレット単体では動くのですが、
サーブレットのdoPostメソッドしかオーバーライドしてないから
0104102
2010/03/23(火) 16:09:54ありがとうございます。myappの直下にはwork(SESSIONS.serのみ含む)とWEB-INFの二つのディレクトリしかありません。
C:\apache-tomcat-6.0.26\webapps\myapp\WEB-INF\web.xmlの内容は以下の通りです:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>DefaultServlet</servlet-name>
<servlet-class>com.gokui.Sample022</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DefaultServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Sample025</servlet-name>
<servlet-class>com.gokui.Sample025</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Sample025</servlet-name>
<url-pattern>/Sample025</url-pattern>
</servlet-mapping>
</web-app>
0105102
2010/03/23(火) 16:14:39<welcome-file>index.html</welcome-file>
は今のところ、一度も表示されたことはありません。 ←これも置き場所で迷ってます
<servlet-class>com.gokui.Sample022</servlet-class>
はURLのファイルが見つからなかった場合に表示されます。 ←http://localhost:8080/myapp/Sample025.htmlで表示されるのがこれです
<servlet-class>com.gokui.Sample025</servlet-class>
<url-pattern>/Sample025</url-pattern>
が、今回のサーブレットです。
・・・必要であれば補足しますので、どうかお願いします。
0106デフォルトの名無しさん
2010/03/23(火) 16:20:5813行目の<servlet>
から
28行目の</servlet-mapping>
まで全部消してtomcat再起動してみて
http://localhost:8080/myapp/Sample025.html
にアクセスするとどうなる?
0107デフォルトの名無しさん
2010/03/23(火) 16:21:44<servlet-name>DefaultServlet</servlet-name>
<servlet-class>com.gokui.Sample022</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DefaultServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
を消せばいい
0108102
2010/03/23(火) 16:39:48表示されました!
しかも、名前を入力すると
>名無しさん、こんにちは
・・・Sample25も動きます!
問題解決です。
デフォルトが邪魔していたんですね。
大変助かりました!
本当にありがとうございました!
0109デフォルトの名無しさん
2010/03/23(火) 20:03:53String#replaceAll("<!--[^-->]*-->", "") をつかいました。
Google アドセンスのコードの一部を削除してしまうのではないかと思いましたが、予想に反してGoogle アドセンスのコードはそのまま残ってました。
詳しい方、その残っていた理由を教えてもらえませんでしょうか。
0110デフォルトの名無しさん
2010/03/23(火) 20:55:05以下のコードでは分割前と分割後に文字数が2文字前後違ってしまいます
どこがいけないか教えていただけないでしょうか
int nextIndex = 0;
while (nextIndex < content.length()) {
try {
list.add(content.substring(nextIndex, nextIndex + splitSize));
nextIndex = nextIndex + splitSize + 1;
} catch (Exception e) {
list.add(content.substring(nextIndex, content.length()));
break;
}
}
0111デフォルトの名無しさん
2010/03/23(火) 21:06:48その残ったGoogleアドセンスのコードとやらをさらせ
0112デフォルトの名無しさん
2010/03/23(火) 21:07:05見た感じだと1文字すっとばしてる。
"0123456789".substring(0,3) ... "012"
"0123456789".substring(0+3+1,3) ... "456"
"0123456789".substring(0+3+1+3+1,3) ... "89"
0113デフォルトの名無しさん
2010/03/23(火) 21:09:29> nextIndex = nextIndex + splitSize + 1;
nextIndex = nextIndex + splitSize;
0114109
2010/03/23(火) 21:13:48<script type="text/javascript"><!--
google_ad_client = "pub-?????????????";
/* 468x15, 作成済み 08/05/21 */
google_ad_slot = "xxxxx";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="//pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
0115デフォルトの名無しさん
2010/03/23(火) 21:41:14nextIndex = nextIndex + splitSize
ご指摘どうりでした
どうもありがとうございました
0116デフォルトの名無しさん
2010/03/23(火) 22:01:37つか、その正規表現おかしくないか?
[^]はかっこの中にない任意の1文字だぞ
<!-- comment -->
は削除されるけど
<!-- com-ment -->
だと削除されなくなるだろ
おれなら正規表現をあきらめるけど
あんまり複雑な正規表現は保守性がよくないし
0117デフォルトの名無しさん
2010/03/24(水) 05:47:32バイナリファイル内での文字列の置き換えをしたいのですが、
byte配列として読み込んで、その後の肝心な置き換え処理が早くも分からない状態です
拾いものですがPHPだとこんな感じです
$fp = fopen("binaryfile","rb");
$size = filesize("binaryfile");
$search = bin2hex("foo");
$replace = bin2hex("bar");
$data = fread($fp, $size);
$data16 = bin2hex($data);
$data16 = str_replace($search, $replace, $data16);
$data = pack('H*',$data16);
echo $data;
これをJavaで実現する方法を教えて頂けますか?
011835
2010/03/24(水) 08:30:38でも、質問スレで晒す物じゃなかったですね反省します^^;
また何かがんばって作ってきます
ありがとうございました〜
0119デフォルトの名無しさん
2010/03/24(水) 14:09:20★★ Java の宿題ここで答えます Part 69 ★★
0120117
2010/03/24(水) 14:25:140121デフォルトの名無しさん
2010/03/24(水) 20:52:31<などに変換をしたいのですが
if(list[row][colum].matches("'|<|>")){
list[row][colum] = list[row][colum].replaceAll("<",">"); 以下略 }
としてfor文の中にif文を入れているのですがif文に引っかかってくれません。
配列要素に対してうまく置換する方法をご教授下さい。
環境 Java1.4
0122109
2010/03/24(水) 20:54:48参考になりました。ありがとうございます。
0123デフォルトの名無しさん
2010/03/24(水) 21:05:49matches() は全体一致。やるなら ".*['<>].*" だがその条件判定自体が無駄。
list[row][column] = list[row][column].replace("<", ">"); だけで良いだろ。
きちんとするなら、3 文字程度なら 1 文字ずつトラバースしてエスケープするコード書けよ。
0124デフォルトの名無しさん
2010/03/24(水) 22:29:010125デフォルトの名無しさん
2010/03/25(木) 10:03:46JDKでももっと簡単なものや他のライブラリで使い勝手いがいいものはあるでしょうか?
0126デフォルトの名無しさん
2010/03/25(木) 10:15:25が出たとき、情報源がclassやjarしかない場合、どのバージョンなら動くかって確認する方法ありますか
0127デフォルトの名無しさん
2010/03/25(木) 14:40:12今ならもしかしたらもっとエレガントな確認方法があるのかもしれない
1.3 : CA FE BA BE 00 00 00 2F
1.4 : CA FE BA BE 00 00 00 30
5 : CA FE BA BE 00 00 00 31
6 : CA FE BA BE 00 00 00 32
0128デフォルトの名無しさん
2010/03/25(木) 14:53:38正規表現使うこと自体が無駄過ぎる
>>126
classファイルにjava class versionが埋め込まれてるからそのクラスバージョンに対応してるjavaコマンド使え。
javaVMが何に対応してるかはシステムプロパティ全部列挙すればみれる。
0129デフォルトの名無しさん
2010/03/25(木) 14:58:420130デフォルトの名無しさん
2010/03/25(木) 17:16:210131デフォルトの名無しさん
2010/03/25(木) 21:24:36var needPassword = "%u30D1%u30B9%u30EF%u30FC%u30C9%u3092%u5165%u529B%u3057%u3066%u304F%u3060%u3055%u3044%u3002";
var badPassword = "%u30D1%u30B9%u30EF%u30FC%u30C9%u304C%u6B63%u3057%u304F%u3042%u308A%u307E%u305B%u3093%u3002";
0132デフォルトの名無しさん
2010/03/25(木) 21:51:040133デフォルトの名無しさん
2010/03/25(木) 21:53:04var badPassword = "パスワードが正しくありません。";
0134デフォルトの名無しさん
2010/03/25(木) 21:55:270135デフォルトの名無しさん
2010/03/26(金) 02:32:43http://pc12.2ch.net/test/read.cgi/tech/1197720520/
Java勉強するから支援おね
http://pc12.2ch.net/test/read.cgi/tech/1228452306/
Javaやらないか(超初心者向け)
http://pc12.2ch.net/test/read.cgi/tech/1190032149/
***Javaのオススメ入門書*** 『創るJava』 3.0
http://pc12.2ch.net/test/read.cgi/tech/1110180044/
java講座を一緒に受けよう!
0136デフォルトの名無しさん
2010/03/26(金) 17:03:47class A {
----void test(){
--------B object = (B)this;
--------object.test();
----}
}
class B extends A {
----void test(){
----}
}
0137136
2010/03/26(金) 17:06:45new されるときに親でnewされてるとダメっぽい
0138デフォルトの名無しさん
2010/03/26(金) 17:38:390139デフォルトの名無しさん
2010/03/26(金) 18:09:33A a = new A();
A b = new B();
System.out.println(a instanceof A);
System.out.println(b instanceof A);
System.out.println(a instanceof B);
System.out.println(b instanceof B);
0140デフォルトの名無しさん
2010/03/26(金) 18:18:29結局ログ出力ができるよ〜くらいしか分からないままなんですけど。
0141デフォルトの名無しさん
2010/03/26(金) 19:53:08親クラスが子クラスのまねをしてもダメ。
0142136
2010/03/26(金) 20:39:57融通がきかねーなー
0143デフォルトの名無しさん
2010/03/26(金) 20:59:46Aspect単独はあんまり使わない
DIと合わせる場合が多い。まあSeasar使えばいい。
0144デフォルトの名無しさん
2010/03/26(金) 22:15:02っていうか、なんで親クラスで子クラスのインスタンスを呼ぶ必要があるの?
0145デフォルトの名無しさん
2010/03/26(金) 22:51:42設計がゴミなだけ
0147デフォルトの名無しさん
2010/03/27(土) 01:47:39親クラスでダウンキャスト。
0148デフォルトの名無しさん
2010/03/27(土) 04:45:46つーか、クラスって定義だがら
中でキャストしたって駄目だろ
クラスを使う側でキャストするなら分かるけど
0149デフォルトの名無しさん
2010/03/27(土) 04:46:37まあ単純な流れのプログラムなら、そういうのも使わずに済むんだろうけどねえ。
大概のシステムで使うよねw
0150デフォルトの名無しさん
2010/03/27(土) 04:51:03mainメソッド側でキャストすれば良いじゃん
0151デフォルトの名無しさん
2010/03/27(土) 04:52:220152デフォルトの名無しさん
2010/03/27(土) 06:02:030153デフォルトの名無しさん
2010/03/27(土) 06:11:49----void test(){
--------B object = (B)this;
--------object.test();
----}
}
class B extends A {
----void test(){
----}
そもそも
Aをnewした時、Aのオブジェクトの中でthisはAを指してる
でもAにBは含まれてないから(B)にキャストできない
0154デフォルトの名無しさん
2010/03/27(土) 06:52:030155デフォルトの名無しさん
2010/03/27(土) 06:54:28どんだけ虐げられてるんだよw
0156デフォルトの名無しさん
2010/03/27(土) 07:12:45レベル低いんでw
0157デフォルトの名無しさん
2010/03/27(土) 07:19:370158デフォルトの名無しさん
2010/03/27(土) 07:19:510159デフォルトの名無しさん
2010/03/27(土) 07:22:450160デフォルトの名無しさん
2010/03/27(土) 12:03:300161デフォルトの名無しさん
2010/03/27(土) 17:14:47それは知ってる。
0162デフォルトの名無しさん
2010/03/27(土) 17:16:26大概はAPIドキュメント読むだけで十分。
0163デフォルトの名無しさん
2010/03/27(土) 17:34:14え?え?
0164デフォルトの名無しさん
2010/03/27(土) 19:41:07ここからファイル読み込みつつ検索を行いたいのですが、
高速な方法ってどんなものが考えられるでしょうか?
一行づつ読み込んで前方一致で抽出すると全然おそかったので・・・
0165デフォルトの名無しさん
2010/03/27(土) 19:53:540166デフォルトの名無しさん
2010/03/27(土) 20:09:32Googleみたいな感じで検索できる
0167デフォルトの名無しさん
2010/03/27(土) 20:15:49テキスト全体の半分位の位置の見出しを見付けて
検索対象がそれより前か後ろか調べる、の繰り返し
0168デフォルトの名無しさん
2010/03/27(土) 22:02:570169デフォルトの名無しさん
2010/03/27(土) 22:12:00readLine()→単語抽出→readLine()のループなんですが、
htmlがcharset=ISO-8859-1 のページで「数字」を使ったUTF-16で埋め尽くされているサイトで頓挫中です。
&$12426;&$12427;&$12428 (=りるれ)
という具合です。対応マップ作るにも漢字含めると膨大すぎて。
InputStreamReaderのcharsetをUTF-16/BE/LEと試しましたが文字には変換して貰えませんでした。
数字を文字(列)に変換する方法ないでしょうか? JDK6でも構いません。
0170デフォルトの名無しさん
2010/03/27(土) 22:29:16その数値がそのまま Java の char 1文字だよ。
char ch = 12426; ← 「り」を代入
自分で変換するコードを書いても難しくないとおもうけど、そもそも本
来はHTMLパーザを使ってからテキストを抽出するべき。
0171デフォルトの名無しさん
2010/03/27(土) 22:35:40HTML の解析なら↓らへん使って Document オブジェクトを作って、
getDocumentElement().getTextContent() が確実。
http://www.koiroha.org/xmllib/
0172デフォルトの名無しさん
2010/03/27(土) 22:40:20GUIとダウンロードクラスを作っています
「ダウンロードを開始します」とか、「404エラー」ですとGUIに表示したいのですが
何か良い方法ありませんか?
0173デフォルトの名無しさん
2010/03/27(土) 23:15:550174デフォルトの名無しさん
2010/03/28(日) 00:16:15普通にJLabelにテキストを表示してもいいだろうし、
アプレットを起動したときに使える「Javaコンソール」みたいに
JTextAreaに1行ずつメッセージを追加するようなのも良いと思う。
あとJEditorPaneを使うのもいいかも。
JEditorPaneはHTMLを表示できるので、
"<font color=black>ダウンロードを開始します</font><br>"
"<font color=blue>ダウンロードが完了しました</font><br>"
"<font color=red>404エラーです</font><br>"
みたいなメッセージを末尾に追加していけば、
メッセージの種類ごとに色を変えられる。
0175デフォルトの名無しさん
2010/03/28(日) 01:19:34ログ形式でリアルタイムモニターできるようにするといいよね。
0176デフォルトの名無しさん
2010/03/28(日) 03:35:080177デフォルトの名無しさん
2010/03/28(日) 03:39:43どこがw
0178デフォルトの名無しさん
2010/03/28(日) 04:50:12今、JDBCレルムによるFORMパスワード認証を試していますが、以下のようなエラーが出てデータベースに接続できません:
2010/03/28 4:13:21 org.apache.catalina.realm.JDBCRealm start
致命的: データベース接続オープン中に例外が発生しました
java.sql.SQLException: org.gjt.mm.mysql://localhost/authorization
at org.apache.catalina.realm.JDBCRealm.open(JDBCRealm.java:704)
at org.apache.catalina.realm.JDBCRealm.start(JDBCRealm.java:786)
server.xmlの関係するだろう部分は以下の通りです:
<Realm className="org.apache.catalina.realm.JDBCRealm"
connectionURL="jdbc:mysql://127.0.0.1/authorization"
driverName="com.mysql.jdbc.Driver"
connectionName="root"
connectionPassword=""
roleNameCol="role"
userCredCol="password"
userNameCol="username"
userRoleTable="roles"
userTable="users"
/>
…まず、検索するとorg.gjt.mm.mysql.Driverは古いのでcom.mysql.jdbc.Driverを使うべき、とありました(http://www.javadrive.jp/servlet/auth/index5.html)。
しかし、com.mysql.jdbc.Driverに変えてみましたが、結果は同じです。本来、どちらが正しいのでしょうか?
あと、自分のMySQLはユーザー名はrootで設定してあるのですが、パスワードは設定していません
(つまり、MySQLをコマンドラインから起動するときはパスワードを空欄のままEnterを押して入れます)。
このような場合、connectionNameとconnectionPasswordは上記の通りでよろしいのでしょうか?
0179178
2010/03/28(日) 04:58:39>>178のserver.xmlを使った場合ではエラーは
致命的: データベース接続オープン中に例外が発生しました
java.sql.SQLException: com.mysql.jdbc.Driver ←違いはここです
at org.apache.catalina.realm.JDBCRealm.open(JDBCRealm.java:704)
at org.apache.catalina.realm.JDBCRealm.start(JDBCRealm.java:786)
…になります。org.gjt.mm.mysql.Driverを使えば、
java.sql.SQLException: org.gjt.mm.mysql.Driver
at org.apache.catalina.realm.JDBCRealm.open(JDBCRealm.java:704)
at org.apache.catalina.realm.JDBCRealm.start(JDBCRealm.java:786)
…になります。
では、宜しくお願い致します。
0180デフォルトの名無しさん
2010/03/28(日) 05:25:16auth_rolesテーブル
は作ってあるの?
0181デフォルトの名無しさん
2010/03/28(日) 05:27:15userTable="users"
すまん、rolesテーブルとuesrsテーブル
0182178
2010/03/28(日) 05:30:05ありがとうございます。
はい、作ってあります。
より正確に書きますと、
mysql> show tables;
+-------------------------+
| Tables_in_authorization |
+-------------------------+
| roles |
| users |
+-------------------------+
mysql> describe roles;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| username | varchar(20) | YES | | NULL | |
| role | varchar(20) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
mysql> describe users;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| username | varchar(20) | YES | | NULL | |
| password | varchar(20) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
…でデータも既に二件ずつ入れてあります。
0183178
2010/03/28(日) 05:32:44mysql> select * from roles;
+----+----------+--------+
| id | username | role |
+----+----------+--------+
| 1 | nakamura | member |
| 2 | tanaka | member |
+----+----------+--------+
mysql> select * from users;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
| 1 | nakamura | 1234 |
| 2 | tanaka | 5678 |
+----+----------+----------+
0184デフォルトの名無しさん
2010/03/28(日) 06:22:020185デフォルトの名無しさん
2010/03/28(日) 06:36:420186デフォルトの名無しさん
2010/03/28(日) 08:56:13いや、多分それが原因で正解。
エラーが起きた箇所のソース見るとこうなってる(Tomcat 6.0.26だと仮定すると)。
698 : // Instantiate our database driver if necessary
699 : if (driver == null) {
700 : try {
701 : Class clazz = Class.forName(driverName);
702 : driver = (Driver) clazz.newInstance();
703 : } catch (Throwable e) {
704 : throw new SQLException(e.getMessage());
705 : }
706 : }
throw new SQLException(e) ってしてくれればよかったんだがな。
それなら、rootCauseからそれらしいエラーメッセージ出してくれるから。
0187デフォルトの名無しさん
2010/03/28(日) 10:21:43それで水クラスには「葉、根、土に含まれる水」っていう変数をそれぞれ作ったんだけど、これってわざわざ水クラス作らなくても
葉(根)クラスに「葉(根)に含まれる水」の変数を作る方法もあるよね
クラスを作るときは仕様書から名詞を抜き出すって教わったから水クラスを作ってみたんだけどどっちが一般的なわけ?
0188デフォルトの名無しさん
2010/03/28(日) 10:34:270189デフォルトの名無しさん
2010/03/28(日) 10:35:46水はbyteです(キリッ
で押し通せるんじゃない?
0190187
2010/03/28(日) 10:51:43>PipedInputStreamやPipedOutputStream〜
それはちょっとわからない
class Water{
int leaf;
int soil;
}
とか作っておいて
class Leaf{ //葉クラス
Water water; //水のインスタンス
public Leaf(Water water){
this.water = water;
}
run(){
water.leaf += 50;
}
}
みたいにインスタンスを作って扱うか、
class Leaf{
int leafWater;
run(){
leafWater += 50;
}
}
みたいにそのままクラスの中で変数を扱うかってこと
0191デフォルトの名無しさん
2010/03/28(日) 10:53:17Stream だろjk
0192デフォルトの名無しさん
2010/03/28(日) 10:56:520193デフォルトの名無しさん
2010/03/28(日) 11:01:23花クラスとか追加するたびに水クラスに修正入るのたぶん嫌うだろうね。
「黒板モデル」ですっ(キリッとか適当なbuzzワードで言いくるめれば
納得しちゃう連中でもあるんだけどさ
0194デフォルトの名無しさん
2010/03/28(日) 11:20:41下の方が簡単で良いんじゃないの?
0196デフォルトの名無しさん
2010/03/28(日) 11:24:240197デフォルトの名無しさん
2010/03/28(日) 11:27:15↑を使わなくても、OSとかが適当にバッファリングしてくれる気がするだけど
0198デフォルトの名無しさん
2010/03/28(日) 11:31:30禿同。
しかし土->根(->茎?)->葉という関係モデルはスレッドの勉強という主旨から外れてしまうのかな・・・
水クラスでは、どこがどこから水を取るのかって構造が見えないのが嬉しくない気がする。
あと怠惰、傲慢、短気は三大美徳だしな。それに、納得しないで変に拘ってたら話が進まん。
0199デフォルトの名無しさん
2010/03/28(日) 11:44:58水クラスをみたら構造が見えるようにも組めるの?
水の吸い上げは根茎葉が各自で根は土から、茎は根からっていう風に作ったんだけど
0200デフォルトの名無しさん
2010/03/28(日) 13:07:03水クラスに各部分の水量を保持する構成だと、各部分のクラスは水クラス
とだけ関係を持つことになるんじゃない?
具体的な例としては、茎クラスと葉クラスの関係の直接的な表現。
>>190 のWaterアリの例からして、LeafクラスはWaterとしか関係してないし。
この場合、関係の表現は水クラスに集中することになるから、花クラスとか
追加するたびに水クラスに修正入ることになるはず。
つまり今は水クラスは小さいかもしれないけど、関連クラスが何百になって
くると全部水クラスにかかって複雑化するだろうと予想出来る。
この複雑化が嬉しくないということ。
個々のクラスが自分の関係情報を持つならば、新しいクラスを追加した時
には直接に関係する複数のクラスを修正することになるけど、複雑さは
分散されて超複雑なクラスは出来にくいという効果が期待される。
でも嬉しくないだけであり、水クラスに集中させて関係を一元管理させる
手法もアリだから、集中と分散のどちらを選ぶかは場合によるとしか言い
ようがない。メリットとデメリットを理解するのが重要。
「主旨から外れてしまうのかな・・・」は、元々がスレッドの勉強なんだから、
関連性とかは本筋じゃないんだよなぁという意味。
元々とは離れて設計の話としての質問だよね?
0201デフォルトの名無しさん
2010/03/28(日) 13:10:060202デフォルトの名無しさん
2010/03/28(日) 13:12:530203デフォルトの名無しさん
2010/03/28(日) 13:16:400204デフォルトの名無しさん
2010/03/28(日) 13:21:060205デフォルトの名無しさん
2010/03/28(日) 13:37:01なるほど
やっぱりクラスの部品化を考えると水に機能も無いことだし分散させたほうがいいのか
>>190では省略しちゃったんだけど葉クラスでは茎クラスの水を減らして、その分葉クラスの水を増やすメソッドがあるんだけど
Waterクラス無しだとそれぞれのクラスの水をstatic宣言して他のクラスで操作できるようにするか、
葉クラスに茎クラスのインスタンスを作るっていう形になるのかな
スレッドのサンプルプログラムとして作った木のプログラムでふと思った疑問についての話なんで、スレッドはこれに関係ないです
0206デフォルトの名無しさん
2010/03/28(日) 13:40:58try {
例外が発生する可能性のある処理B
} catch(Exception e) {
}
処理Aが2〜3行で、処理Aは処理Bの前処理である
この条件の時に、おまえらだったらこう書く?↓
try{
例外が発生ない処理A
例外が発生する可能性のある処理B
}catch(Exception e){
}
0207デフォルトの名無しさん
2010/03/28(日) 13:54:28import java.net.*;
import java.util.Date;
class URL
{
public static void main(String args[]) throws Exception
{
int c;
// これもダメ
// URL url = new URL( args[0] );
// これもダメ
URL url = new URL( "http://www.google.co.jp" );
上のように書いてるんですが、いまいちjavaのクラスがわかりません
URL のオブジェクトを作るにはどうやってかくのでしょうか?
0208デフォルトの名無しさん
2010/03/28(日) 13:58:57class URL
{
を別名に変更
0209デフォルトの名無しさん
2010/03/28(日) 14:24:51import java.net.*;
import java.util.Date;
class app30
{
public static void main(String args[]) throws Exception
{
int c;
// これもダメ
URL url = new URL( args[0] );
// これもダメ
// URL url = new URL( "http://www.google.co.jp" );
app30.java:12: シンボルを見つけられません。
シンボル: コンストラクタ URL(java.lang.String)
場所 : URL の クラス
URL url = new URL( args[0] );
^
クラス名かえましたが ダメですね
0210デフォルトの名無しさん
2010/03/28(日) 14:27:120211デフォルトの名無しさん
2010/03/28(日) 14:36:340212178
2010/03/28(日) 14:55:46ありがとうございます(すみません、返事が遅くなりました)。
自分のTomcat(6.0.26、最新)には:
Directory of C:\apache-tomcat-6.0.26
[.] [..] [bin] [conf]
[lib] LICENSE [logs] NOTICE
RELEASE-NOTES RUNNING.txt [SERVLET_JSP_650] [temp]
[webapps] [work]
4 File(s) 54,734 bytes
…しかありません("common"というディレクトリがありません)から、common/libというのは
C:\apache-tomcat-6.0.26\lib
のことで良いですよね?
その下にあるファイルは以下の通りです:
Directory of C:\apache-tomcat-6.0.26\lib
[.] [..] annotations-api.jar
catalina-ant.jar catalina-ha.jar catalina-tribes.jar
catalina.jar el-api.jar jasper-el.jar
jasper-jdt.jar jasper.jar jsp-api.jar
servlet-api.jar tomcat-coyote.jar tomcat-dbcp.jar
tomcat-i18n-es.jar tomcat-i18n-fr.jar tomcat-i18n-ja.jar
16 File(s) 5,024,483 bytes
2 Dir(s) 144,014,782,464 bytes free
その"Driver"というのは"tomcat-dbcp.jar"のことでよろしいのでしょうか?
0213デフォルトの名無しさん
2010/03/28(日) 16:01:400214デフォルトの名無しさん
2010/03/28(日) 17:10:44われています。
ソートをかけていない状態だと問題ないのですが、ソートをかけた状態でJTable
に接続しているモデルの内容を減らしたり増やしたりするとExceptionを吐く時が
あります。(いつもではありません。)
内容は長いので一部とさせて下さい。
Exception in thread "AWT-EventQueue-0"
java.lang.ArrayIndexOutOfBoundsException:x
at
javax.swing.DefaultRowSorter.convertRowIndexToModel(DefaultRowSorter.java:xxxx...
大変無礼は承知しておりますが、
ソースコードは事情があって載せられません…。
どなたかお力添えいただけないでしょうか。Exceptionを吐かないようにしたいの
です。
なお、モデルを読み込む際、トリガにリフレクションを使用しており、それも疑
っております。
0215デフォルトの名無しさん
2010/03/28(日) 19:31:28×ボタンをクリックした時と同じ効果を出したいのですが
「exit」以外で何か良い方法ありませんか?
0216デフォルトの名無しさん
2010/03/28(日) 20:46:350217デフォルトの名無しさん
2010/03/28(日) 21:09:19java.awt.Window#dispose()
0218デフォルトの名無しさん
2010/03/28(日) 21:22:38javaの資格でも取ろうと思ってるんだけど
SJC-Pの資格で就職出来るレベル?
あと勉強用のおすすめの本とかあれば教えてほしい
0219デフォルトの名無しさん
2010/03/28(日) 21:30:49thx
0221デフォルトの名無しさん
2010/03/28(日) 22:51:07>>171
ありがとうございます。
HTMLパーサというものがあるんですね。
解決法が分からず疲れて1日死んでましたが、またやる気が沸いてきました。
0222デフォルトの名無しさん
2010/03/28(日) 23:39:39せっかく少ない脳をフル回転して教えてやったというのにまったく・・・
0223デフォルトの名無しさん
2010/03/29(月) 00:00:15同じエラーが出る最小コードを新しく書いて出せば良いと思う。
最小コードを作ってる時に、原因がわかることもあると思う。
それでもわからなかったら書いた最小コードをここに貼れば、
偉い人が原因と解決方法を教えてくれるかもしれない。
0225デフォルトの名無しさん
2010/03/29(月) 10:49:54追加したコンポーネントがヘコんで見えるのですが
それを直すにには、どうすればいんですか?
0226デフォルトの名無しさん
2010/03/29(月) 10:54:58そりゃそうだろ
0227デフォルトの名無しさん
2010/03/29(月) 18:02:100228デフォルトの名無しさん
2010/03/29(月) 18:46:19210が言ってるみたいにURL.classが残ってるんじゃねーの?
ためしに java.net.URL url = new java.net.URL(args[0]); みたいに完全装飾クラス名を使ってみるとか。
0229デフォルトの名無しさん
2010/03/29(月) 21:05:03チェック処理をかましているため、このシーケンス通りに進まないとDに行けません。
A → B → C → D
ここで、ユーザがAをアクセスした場合、Dを一発で返すようにしろとの要求があります。
B〜Dは他社製造でレスポンスやらを変えることはできません。
そこでAのアクセス中に何とかしてDをレスポンスとして返したいです。
HttpClientを使用して以下を考えてます。
1.Aアクセスがあったら、Aのクッキーをセットしそのクッキーを含んだHttpClientを生成します。
2.HttpClientでB → C → Dをアクセスし、Dのレスポンスをそのままブラウザに返す。
理屈では行けると思うのですが、どうでしょうか?
プログラム内でのクッキー再利用は許可を取っているので、そこはスルーして下さい。
0230デフォルトの名無しさん
2010/03/29(月) 22:41:06どうなってるか知らないから分からないけど
0231デフォルトの名無しさん
2010/03/29(月) 22:48:270232デフォルトの名無しさん
2010/03/29(月) 23:31:46リクエストチェインは普通のことだろ
0233デフォルトの名無しさん
2010/03/29(月) 23:42:200234デフォルトの名無しさん
2010/03/29(月) 23:49:25「どうでしょうか?」って
他にもいろいろ制限がありそうだし
「やってみりゃいいじゃん」
としかいいようがない
0235デフォルトの名無しさん
2010/03/30(火) 00:06:50List<string> list = ArrayList<String>();
で list に要素文字列を add したあと、これをソートしようとして次のコードをかきました。
http://ideone.com/us4zACSw
すると、どうしても Recompile with -Xlint:unchecked なるメッセージが出てきます。
これはどのように直せば、このタイプのエラーがなくなるのでしょうか?
よろしくお願いいたします。
0236デフォルトの名無しさん
2010/03/30(火) 00:11:050237デフォルトの名無しさん
2010/03/30(火) 01:05:210238235
2010/03/30(火) 05:24:17http://ideone.com/8zeVWiEy
0239デフォルトの名無しさん
2010/03/30(火) 06:22:460240デフォルトの名無しさん
2010/03/30(火) 08:08:20まあこれからも何でも聞いて頂戴w
0241デフォルトの名無しさん
2010/03/30(火) 08:48:40どういたまして
0242デフォルトの名無しさん
2010/03/30(火) 09:33:090243デフォルトの名無しさん
2010/03/30(火) 10:20:58リクエストチェインってなかなか検索で引っかからないんですけど、
手法や説明しているサイトありますか?
0244デフォルトの名無しさん
2010/03/30(火) 19:14:29IMで変換しなくても文字列を選択していなくても直接入力でも再現しますね
windows XP Home sp3 JRE1.6.0_18
aaaa
b
aaaa
(バックスペース)
aaaa
あいうえお
これをundoしていくと
aaaab
b
になり表示がおかしいだけじゃなくそのうちアプリがハングします
報告する英語力無いから困った
0245デフォルトの名無しさん
2010/03/30(火) 20:03:23一般的にはアクションチェインじゃないかな?
0246デフォルトの名無しさん
2010/03/31(水) 06:35:58あるアプリケーションで、ユーザーに色を選ばせてその色で
グラフィックを描写することを考え、choiceクラスによる色選択と
itemStateChangedメソッドによる色変更を行いましたが知識が
無いせいかプログラムが長く面倒です。
String s=((Choice)e.getItemSelectable()).getSelectedItem()+"";
として、
if(s.equals("red"))c=Color.red;
と今はしています。
これより良い方法はありませんでしょうか?
色は10色ぐらいから選びたいです。
別にchoiceじゃなくてもかまいません。
使用するべきクラス名だけでもかまいませんので教えてください。
0247デフォルトの名無しさん
2010/03/31(水) 06:41:04まずXの1/2乗(√x)ってx^(1/2)ではないのですか?
どうも値がおかしかったので10000^(1/2)でためしたら
そのまま10000が出力されていたのですがどうしたらいいのでしょうか?
もう一つはほかのクラスのテキストフィールドの値を別のクラスで
取りたいのですが方法はテキストフィールドのオブジェクトを生成
int i=Integer.parseInt(オブジェクト名.TextField名.getText());
ではダメなのでしょうか?スレッド内で行ったのですが、コンパイル
はとおって実行時にエラーが出てしまいます。
両方とも私なりに調べてみたのですが・・・
長文になってしまいましたが宜しくお願いします。
0248デフォルトの名無しさん
2010/03/31(水) 08:27:41Socket sock;
BufferedReader read;
try{
sock = new Socket("IPアドレス",21);
read = new BufferedRead(new InputStreamReader
(sock.getInputStream()));
System.out.println(read.readLine());
System.out.println(read.readLine()); ------------------------(*)
sock.close();
}catch(Exception){/*error*/}
}
目印の部分で止まって動かなくなってしまいます。
どうしてですか?
レスポンスが終端に達しているのなら -1 が返ると
思っているのですが、認識違っていますか?
0249デフォルトの名無しさん
2010/03/31(水) 08:34:01JColorChooser
0250デフォルトの名無しさん
2010/03/31(水) 09:12:11Math.pow(10000, 1.0/2)
^ は exclusive or の演算子で、べき乗とはまったく関係ない。
0251デフォルトの名無しさん
2010/03/31(水) 17:59:140252デフォルトの名無しさん
2010/03/31(水) 18:05:080253デフォルトの名無しさん
2010/03/31(水) 18:26:26testClass instance1 = new testClass();
testClass instance2 = new testClass();
testClass instanceA = new testClass();
instance1.publicInstance = instanceA;
instance2.publicInstance = instanceA;
class testClass{
testClass publicInstance;
}
イメージとしては上記の様な感じで、instance1のpublicInstance内の変数を変更するとinstance2のpulicInstance、instanceAにも変更が適応されるような感じです。
0254デフォルトの名無しさん
2010/03/31(水) 18:36:470255デフォルトの名無しさん
2010/03/31(水) 18:46:24staticにすりゃいいだろボケ
0256デフォルトの名無しさん
2010/03/31(水) 18:47:060257デフォルトの名無しさん
2010/03/31(水) 18:47:20staticにすりゃいいだろボケ
0258デフォルトの名無しさん
2010/03/31(水) 20:53:11しかし、最近別の説明も読みました。以下のような内容です。
-------------------------------------------------------
クラスAbc
Abc abc1 = new Abc();
Abc abc2 = new Abc();
�@プログラムの中でAbcクラスにアクセスすると、クラスファイル『Abc.class』を読み込んでメモリ上にクラスオブジェクトを取る。
�AAbc abc1 でAbcクラスの変数を作る。
�Bnew Abc() すると、�@のクラスオブジェクトを基にAbc型のインスタンスオブジェクトが作られる。
�C= で代入。
�D�A〜�C同様にAbc型のインスタンスオブジェクトが作られる。
-------------------------------------------------------
この場合、オブジェクトが3個作られることになりますよね?
(クラスのオブジェクト1個、インスタンスのオブジェクト2個。n回newすればインスタンスのオブジェクトn個作られる)
これまでは「インスタンス=オブジェクト」「クラスはインスタンスの設計図(だから実体ない)」という認識だったので、
この説明がトンデモに思えてきます。
合っているのでしょうか? それとも、理解が間違っていますか?
0259デフォルトの名無しさん
2010/03/31(水) 21:10:14でも、JavaMailとサーブレットで「日本語は無理なのか?」というGmailの内容を受信すると
1通目
From:Nanashi <[email protected]>
題名: Re: whatever
--------------------------------------------
javax.mail.internet.MimeMultipart@4a1bda
・・・と表示されます、最後の一行は「日本語は無理なのか?」と表示されるはずなのに。
ちなみに、半角英数字で「abcdef」と送れば、ちゃんと「abcdef」と表示されます。
どうすれば日本語が正しく表示されるのか教えてください。
package javaMailTest;
import java.io.IOException;
import java.io.PrintWriter;
import java.security.Security;
import java.util.Properties;
import javax.mail.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
↓続く
0260259
2010/03/31(水) 21:12:05private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//送信内容の入力
response.setContentType("text/plain;charset=Shift_JIS");
PrintWriter out = response.getWriter();
try {
//ID、パスワード、ホストアドレス設定
String username = "nanashi";//ユーザー名
String password = "gombeh";//パスワード
String pop3host = "pop.gmail.com";//POP3サーバー名
String pop_port = "995";
String temp=null;
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
//空のProperty取得
Properties props = new Properties();
props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.pop3.socketFactory.fallback", "false");
props.setProperty("mail.pop3.port", pop_port);
props.setProperty("mail.pop3.socketFactory.port", pop_port);
↓続く
0261259
2010/03/31(水) 21:13:46Session s = Session.getDefaultInstance(props, null);
//Storeオブジェクトの取得
Store store = s.getStore("pop3");
//接続
store.connect(pop3host,username,password);
//Folderの取得
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
Message message[] = folder.getMessages();
for(int i=0,n=message.length; i<n; i++) {
//FROMとSUBJECTの表示
temp=message[i].getSubject().toString();
out.println((i + 1) + "通目");
out.println("From:" + message[i].getFrom()[0]);
out.println("題名: " + temp);
out.println("--------------------------------------------");
//メッセージの表示
temp=message[i].getContent().toString();
out.println(temp);
}
//close処理
folder.close(false);
store.close();
}catch(Exception e) {
out.println("err" + e.getMessage());
}
out.close();
}
}
0262デフォルトの名無しさん
2010/03/31(水) 21:33:32�@で作られるクラスオブジェクトとは
http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Class.html
のインスタンスという扱い。
「Class クラスのインスタンスは、実行中の Java アプリケーションのクラスおよびインタフェースを表します。」
0263デフォルトの名無しさん
2010/03/31(水) 22:16:46> //メッセージの表示
> temp=message[i].getContent().toString();
> out.println(temp);
Message(の親クラスのPart)のgetContent()の説明を読みましょう。
返るのはStringかMultipartかInputStreamだと書いてある。
0264259
2010/03/31(水) 22:50:51すみません、それはどこで読めるんですか?
"java.mail.message" getContent() で検索してもヘルプのようなのが見つかりません。
でも今回は返り値がMimeMultipartになっているんですか?
out.println(message[i].getContent());
temp=message[i].getContent().toString();
out.println(temp);
とやったら、
javax.mail.internet.MimeMultipart@1975d46
javax.mail.internet.MimeMultipart@6cbb2d
と表示されました。
,toStringでキャストしてやってもStringになっていないです・・・
0265258
2010/03/31(水) 23:07:34つまり、オブジェクトは3個作られるということでよいのでしょうか?
また、変数づけられていないので、クラスオブジェクトにはアクセスできないということでいいですよね?
インスタンスオブジェクトが存在する限りは、ガベージコレクションの対象にならないと思うのですが、それで合っていますか?
0266デフォルトの名無しさん
2010/03/31(水) 23:12:10http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=3706&forum=12
0267デフォルトの名無しさん
2010/03/31(水) 23:20:39APIリファレンス読まずにどうやってコーディングしているんだよ…
http://java.sun.com/products/javamail/javadocs/javax/mail/Part.html#getContent()
んで
http://java.sun.com/products/javamail/javadocs/javax/mail/Multipart.html
を読めば、getCount()個のBodyPartがgetBodyPart(index)で取れること
がわかる。
で、BodyPartにgetContent()すると、これはまたPartのgetContent()な
ので、StringかMultipartかInputStreamが返る。
つまり、真面目にやるなら再帰的にPartを辿っていかないとメール本文
のStringまで辿り着かない。たいていはmultiPart.getBodyPart(0).getContent()
がStringになるけど。
0268259
2010/04/01(木) 00:10:41APIリファレンス、ありがとうございます。
またまたすみません、
multiPartってどの変数のことですか?
message[i].getCount()とか
message[i].getBodyPart(0)とかやろうとしても
そんなメソッドがないですよね・・・
0269デフォルトの名無しさん
2010/04/01(木) 01:26:15Object content = message[i].getContent();
if (content instanceof String) {
out.println(content);
} else if (content instanceof Multipart) {
Multipart multiPart = (Multipart)content;
...
} else {
throw new RuntimeException("対応してないよん。");
}
0270259
2010/04/01(木) 08:47:06お陰様で日本語もちゃんと表示出来ました:
>abcで
instanceofって便利ですね、これからも覚えておきます。
ありがとうございました!
0271デフォルトの名無しさん
2010/04/01(木) 10:07:47というか、マルチスレッド対応って何かで分かるものなのでしょうか?
0272デフォルトの名無しさん
2010/04/01(木) 13:34:48キーをInteger
valueを自分で作成したクラスを格納しているのですが、呼び出すとエラーになります。
調べたらすべてObjectで返されるようなのですが、呼び出すものを固定できないのでしょうか?
理由があってJavaのバージョンが1.4.2しか使えないため
Hashtable hoge<a,b> = new Hashtable<a,b>()
ができません。
0273デフォルトの名無しさん
2010/04/01(木) 13:59:231.4 で generics 使いたいなら retroweaver とか retrotranslator 使えば?
0274デフォルトの名無しさん
2010/04/01(木) 15:21:19試してみます。ありがとうございます
0275デフォルトの名無しさん
2010/04/01(木) 16:34:190276デフォルトの名無しさん
2010/04/01(木) 21:20:48ObjectのインスタンスにはClassのインスタンスを返すgetClass()がある。
分かりやすく言うならインスタンスからクラスを得ることは可能。
つまりクラスオブジェクトにアクセス可能。
例えば
public class test {
public static void main(String[] args) {
System.out.println("".getClass().getName());
}
}
の結果は、java.lang.String となる。
嘘だが。
0277デフォルトの名無しさん
2010/04/01(木) 22:18:53iText2.1.0で作成したPDFファイルを表示しようとすると下記エラーが出てしまいます。
java.io.IOException: Unknown CMap: UniJIS-UCS2-H
at com.sun.pdfview.font.PDFCMap.getCMap(PDFCMap.java:67)
at com.sun.pdfview.font.PDFFontEncoding.<init>(PDFFontEncoding.java:73)
at com.sun.pdfview.font.PDFFont.getFont(PDFFont.java:133)
at com.sun.pdfview.PDFParser.getFontFrom(PDFParser.java:1172)
at com.sun.pdfview.PDFParser.iterate(PDFParser.java:726)
at com.sun.pdfview.BaseWatchable.run(BaseWatchable.java:101)
at java.lang.Thread.run(Thread.java:619)
iTextのエンコーディング?が無いというエラーだとは解ったのですが
解決策がいまいちわかりません。
どなたかヒントを教えていただけないでしょうか…
0278デフォルトの名無しさん
2010/04/01(木) 22:25:11http://sqs.cmr.sfc.keio.ac.jp/tdiary/20071230.html
0279デフォルトの名無しさん
2010/04/01(木) 22:39:10ありがとうございます。
そのサイトも見たんですけど、やはりPDFRendererではまだ日本語表示は無理そうなんですかね。
FOP AWT Previewモードについて再度調べてみます。
ありがとうございました。
0280デフォルトの名無しさん
2010/04/03(土) 19:43:18http://www.nicovideo.jp/watch/sm10175056
http://www.nicovideo.jp/watch/sm10175236
0281デフォルトの名無しさん
2010/04/05(月) 09:37:59session.getDefalutInstance()をせずに下記のようにしています。
Session session = Session.getInstance(props, auth);
Transport transport = session.getTransport("smtp");
transport.connect();
このアプリが時々ハングします。kill -3でスレッドダンプすると二つのスレッドで下記のようなログを出してます。
デッドロックに見えるのですが、session.getInstance()の場合でもsynchronizedで同期しないと
いけないのでしょうか?メール送信の速度が下がるのは避けたいのですが。
"http-8080-39" daemon prio=10 tid=0x00002aab1c649800 nid=0x704 runnable [0x0000000043c42000..0x0000000043c43c80]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:79)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
- locked <0x00002aaaf8500fc0> (a java.io.BufferedInputStream)
at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:57)
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1385)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1205)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:322)
at javax.mail.Service.connect(Service.java:236)
0282デフォルトの名無しさん
2010/04/05(月) 09:41:42エンベロープフロムを毎回変えたいからでした。で、まあマルチスレッドで呼び出してるわけですが、
connect()〜send()までの外側で同期とらないと駄目でしょうか。
0283デフォルトの名無しさん
2010/04/05(月) 10:03:28スレッドの状態も RUNNABLE だし、単に Read Wait で止まってるように見えるが。
0284デフォルトの名無しさん
2010/04/05(月) 11:05:38の<>の中の値を調べたところ全部異なっていました。デッドロックじゃないですね。
対象のメールサーバーが止まってました。とりあえずtimeout設定してアプリは止まらないように
修正します。外部同期無しで。
似たような状況でメールサーバーが止まってないのにアプリが止まってしまうこともあったのですが今回は
違ったようです。それが起きたらまたスレッドダンプ取って調査してみます。ありがとうございました。
0285デフォルトの名無しさん
2010/04/06(火) 04:58:14調べたらこれしか見当たらないので...
0286デフォルトの名無しさん
2010/04/06(火) 06:21:04char ch = (char)a;
String a = "30A2;
char ch = (char)Integer.parseInt(a, 16);
0287デフォルトの名無しさん
2010/04/06(火) 11:13:53ありがとうございます
0288デフォルトの名無しさん
2010/04/07(水) 03:42:33System.in から読み出して子プロセスに渡すスレッドを立ち上げると子プロセスが
終わってもそのスレッドは起動したままで終わらせるすべがない。
ftp のようなコンソールアプリでのシェルに落ちるような事がしたいんだけど、どうすれば
よいでしょうか?
0289デフォルトの名無しさん
2010/04/07(水) 12:00:12if (test==false) hoge();
と
if (!test) hoge();
と
どっち使ったほうがいいの?
0290デフォルトの名無しさん
2010/04/07(水) 12:16:420291デフォルトの名無しさん
2010/04/07(水) 12:19:450292デフォルトの名無しさん
2010/04/07(水) 12:36:30ふつうは後者。前者で書くと素人だと思われるかも。
0293デフォルトの名無しさん
2010/04/07(水) 12:44:260294デフォルトの名無しさん
2010/04/07(水) 13:21:18バグの原因究明すると初心者は絶対に見逃すからな
0295デフォルトの名無しさん
2010/04/07(水) 13:48:220296デフォルトの名無しさん
2010/04/07(水) 13:53:330297デフォルトの名無しさん
2010/04/07(水) 14:16:04確かに見おとしやすいから
!の代わりに!!!を使うべしというルールのプロジェクトもあるよ
0298デフォルトの名無しさん
2010/04/07(水) 14:19:04確かに見やすいが ! の数を間違える可能性を無視できないな
0299デフォルトの名無しさん
2010/04/07(水) 14:37:09ほぇー
!はまだ見えるけど、iとjはきつい
0300デフォルトの名無しさん
2010/04/07(水) 14:40:560301デフォルトの名無しさん
2010/04/07(水) 15:52:000302デフォルトの名無しさん
2010/04/07(水) 16:18:170303デフォルトの名無しさん
2010/04/07(水) 17:05:110304デフォルトの名無しさん
2010/04/07(水) 17:34:37失格
0305デフォルトの名無しさん
2010/04/07(水) 18:38:42でもそれが原因でフィールドでバグになることはめったに無い。
その種の問題は単体テストちゃんとやってれば簡単に見つかるから。
0306デフォルトの名無しさん
2010/04/07(水) 20:19:29引数で受け取ったString型の文字列を出力する。呼び出し元に'C'という
文字を戻すというふうにあるのですが、どこが足りないでしょうか?
引数のSTUDYを出力しろってことですよね?あとCを戻すというのが意味がわかりません。
現在のコードだとCを出力して終了してしまいます。
class Jikko{
public static void main(String[] args)
{
Sample s=new Sample();
char c=s.method1("STUDY");
System.out.println(c);
}
}
class Sample{
char method1(String str)
{
char c1='C';
return char;
}
}
0307デフォルトの名無しさん
2010/04/07(水) 20:53:15class Jikko{
public static void main(String[] args)
{
Sample s=new Sample();
char c=s.method1("STUDY");
System.out.println(c);
}
}
class Sample{
char method1(String str)
{
System.out.println(str);//追加
char c1='C';
return c1;//変更
}
}
0308デフォルトの名無しさん
2010/04/07(水) 21:16:29教えて頂き有難うございました。
'C'を呼び出し元に戻すというのは戻り値として利用すればよいということなのでしょうか?
0309デフォルトの名無しさん
2010/04/07(水) 22:19:24そういうこと
0310デフォルトの名無しさん
2010/04/08(木) 00:07:26うっかりバグ入りのままリリースしてそう。
0311デフォルトの名無しさん
2010/04/08(木) 00:26:14インストール中に『選択した昨日は現在使用できないネットワークソースにあります。』とでて先にすすみまん
Googleで何時間も調べてイロイロとやっても無理でした
オフラインも無理でした
どうかおねがいします
0312デフォルトの名無しさん
2010/04/08(木) 00:29:250313デフォルトの名無しさん
2010/04/08(木) 00:31:50何からインストールしようとしてるんですか?
0314デフォルトの名無しさん
2010/04/08(木) 00:42:01Nanika oya=null;
Nanika ko=null;
void hoge(){
if (ko!=null) ko.hoge();
}
void main() {
Nanika a=new Nanika();
Nanika b=new Nanika();
Nanika c=new Nanika();
a.ko=b; b.oya=a;
b.ko=c; c.oya=b;
c.ko=a; a.oya=c;
a.hoge();
}
}
こんな感じなんだけどエラーがでる
0315デフォルトの名無しさん
2010/04/08(木) 00:49:050316デフォルトの名無しさん
2010/04/08(木) 00:55:52せっかくならzまで欲しかった
0317デフォルトの名無しさん
2010/04/08(木) 00:59:05何からとはどうゆうことですか?
一応以前にはダウンロードしてあるはずなんです。その前のソフトをアンインストールしたらいけるかとおもったんですけどどこにもなくタスクマネージャーでJava関係のプロセスも閉じたんですけどどうもダウンロードできないみたいで
0318デフォルトの名無しさん
2010/04/08(木) 01:03:540319デフォルトの名無しさん
2010/04/08(木) 01:06:27頭も悪くて
どうしたらまたインストールできますかね?
0320デフォルトの名無しさん
2010/04/08(木) 01:17:20a=Math.abs(b); を a=abs(b); とか;
0321デフォルトの名無しさん
2010/04/08(木) 01:18:100322デフォルトの名無しさん
2010/04/08(木) 01:20:39スタート→設定→コントロールパネル→
アプリケーションの追加と削除(or プログラムと機能)→Javaと名のつくモノを全部削除
0323デフォルトの名無しさん
2010/04/08(木) 01:25:51上記の項目がなくて
0324デフォルトの名無しさん
2010/04/08(木) 01:30:24コントロールパネル→プログラム→プログラムと機能
0325デフォルトの名無しさん
2010/04/08(木) 01:32:36でもやっぱりなかったです。なにか他の原因っぽいみたいですけどなんですかね?
0326デフォルトの名無しさん
2010/04/08(木) 01:45:45初見の機能だ
0327デフォルトの名無しさん
2010/04/08(木) 01:51:050328デフォルトの名無しさん
2010/04/08(木) 01:51:11静的インポートって奴だね。
JDK5から追加されたんじゃなかったっけか
0329デフォルトの名無しさん
2010/04/08(木) 01:59:250330デフォルトの名無しさん
2010/04/08(木) 02:01:47原因は、あなたの、状況の説明のまずさだろうな。
文章の主語を省略しない方がいい。
Javaよりもまず、日本語を勉強してみてはどうだろうか。
0331デフォルトの名無しさん
2010/04/08(木) 02:19:420332デフォルトの名無しさん
2010/04/08(木) 02:28:36(static import 宣言を使用可能にするには、-source 5 以降を使用してください)
???
0333デフォルトの名無しさん
2010/04/08(木) 02:32:550334デフォルトの名無しさん
2010/04/08(木) 03:28:390335デフォルトの名無しさん
2010/04/08(木) 03:58:27static import 使えば参照側のクラスに implement → 汚染もないし。
0336デフォルトの名無しさん
2010/04/08(木) 10:49:45http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/
VerifyItem-Start/jdk-6u19-windows-i586.exe?BundledLineItemUUID=0ZJIBe.oq9EAAAEnI9FfFNsX&OrderID=P9dIBe.o3WsAAAEnFtFfFNsX&ProductID=1jZIBe.nzdEAAAEnc3cZVnKo&FileName=/jdk-6u19-windows-i586.exe
上がだめなら jdk-6u19-windows-i586.exeでぐぐるなり
インストールしようとしてるversionなりインストーラー名を書けと言われてるのになぜ書けない?
0337デフォルトの名無しさん
2010/04/08(木) 10:55:49インストール中に「選択した機能は現在使用できないネットワークリソースに
あります」と出てしまいます。 「OKをクリックして再試行するか、インストールパッケージ
'jre1.6.0_13.msi'を含むフォルダに対する代替パスを
以下のボックスに入力します。」とゆう文章がでて先に進まないんですけど解決策をおねがいします
0338デフォルトの名無しさん
2010/04/08(木) 11:40:370339デフォルトの名無しさん
2010/04/08(木) 11:42:300340デフォルトの名無しさん
2010/04/08(木) 11:43:13あきらめる
人生も
0341デフォルトの名無しさん
2010/04/08(木) 12:00:00オフラインでも同じのでて困ってます
0342デフォルトの名無しさん
2010/04/08(木) 12:04:060343デフォルトの名無しさん
2010/04/08(木) 12:09:360344デフォルトの名無しさん
2010/04/08(木) 12:11:590345デフォルトの名無しさん
2010/04/08(木) 12:18:14対処法は何を組み込もうとして居るかに因ります…
0346デフォルトの名無しさん
2010/04/08(木) 12:22:510347デフォルトの名無しさん
2010/04/08(木) 12:26:11「これにjava入れてください」って頼め
5000〜30000円くらいだろうが
0348デフォルトの名無しさん
2010/04/08(木) 12:58:54すればいいよ。
0349デフォルトの名無しさん
2010/04/08(木) 13:05:210350デフォルトの名無しさん
2010/04/08(木) 14:15:36ラバンスのTrueTypeのやつか?
あれ全角アルファベット無きそうなほど見づらいよな
ごめんな
0351デフォルトの名無しさん
2010/04/08(木) 14:18:58みんなプログラムの質問に答える気でここにいるのに
アプリのインストール程度でつまづく奴の理解ができないんだよ。
よその板行ったら親切に教えてくれる人いるかもよ?
俺もコンパネに「プログラムと機能」が見つかりませんとかいうやつに
文章だけで教える自信無いわ
0352デフォルトの名無しさん
2010/04/08(木) 15:03:370353デフォルトの名無しさん
2010/04/08(木) 16:14:53だれでもそう感じるものだよ。
プログラマーに限った話ではない。
いちいちムカついてたらネットで勉強なんてできない。
0354デフォルトの名無しさん
2010/04/08(木) 16:26:410355デフォルトの名無しさん
2010/04/08(木) 16:30:00毎回 Eclipse でエクスポートするのメンドクセ
0356デフォルトの名無しさん
2010/04/08(木) 16:36:05「道具買ってこい」と指示出しておいて
「どこのお店ですか?どこにあるんですか?漢字読めません 買い物したことないです」
とか仕事で言われてみ
0357デフォルトの名無しさん
2010/04/08(木) 16:37:57いや、インストラクター?
いや サポート?
いや お手伝いレベル
0358デフォルトの名無しさん
2010/04/08(木) 16:38:45遠隔してもうアプリのインス(ry
0359デフォルトの名無しさん
2010/04/08(木) 16:39:09条件文だと分かりにくいから
上で書けって書いてあった本もあったぞ
0360デフォルトの名無しさん
2010/04/08(木) 16:44:270361359
2010/04/08(木) 16:45:57腹が立ってくる、お前の言語の書き方とは違うんだと百回くらい言いたい
0362デフォルトの名無しさん
2010/04/08(木) 16:49:320363デフォルトの名無しさん
2010/04/08(木) 17:07:58http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1433699724
↑
VISTAだとまれに発生するらしいけど(真偽の程は知りませんが)、
Cドライブ直下に適当なフォルダを作って、そこにインストールして
みたら?
0364デフォルトの名無しさん
2010/04/08(木) 17:19:240366デフォルトの名無しさん
2010/04/08(木) 18:24:260367デフォルトの名無しさん
2010/04/08(木) 18:25:280368デフォルトの名無しさん
2010/04/08(木) 20:20:181.5*=1.5.0〜1.5.22
1.5+=1.5.0〜1.6.19
うそかもしれん
0369デフォルトの名無しさん
2010/04/08(木) 20:59:590370デフォルトの名無しさん
2010/04/08(木) 21:15:011.5+=1.5. 1.55 1.555
ってことですね
0371デフォルトの名無しさん
2010/04/08(木) 21:27:54だから1.5系なら全部OKってこと
1.5+は見たこと無いけど1.5以上って意味かと
0372デフォルトの名無しさん
2010/04/08(木) 21:52:50XPの俺が呼ばれた気がする。
おれもなぜかなったがインストーラーをパスに指定した気がする。
0373デフォルトの名無しさん
2010/04/08(木) 22:07:270374デフォルトの名無しさん
2010/04/08(木) 22:43:41"1.5 or later"という表現をよく見るだろ。それのこと
>>370
ドットを忘れているぜ
0375デフォルトの名無しさん
2010/04/08(木) 22:56:42そもそも何でJavaをインストールしようと思ったの?
学校の課題?
PCの初歩的な知識も無いんじゃ、いくら質問しても進展しないと思うよ。
0376デフォルトの名無しさん
2010/04/08(木) 23:12:00これダメなの?
0377デフォルトの名無しさん
2010/04/08(木) 23:24:38インストールキットをダウンロードしてきて実行しろよ。
0378370
2010/04/08(木) 23:29:49確かに忘れてた
1.5*=1. 15 1.5 155 1.55 1555 1.555
1.5+=1.5 155 1.55 1555 1.555
>>373
http://www.java.com/ja/download/help/error_applying_transforms.xml
GUI使わないならhttp://ideone.com
0379デフォルトの名無しさん
2010/04/08(木) 23:56:43以前はインストールできてたんですけアップデートしたらJavaが消えてて。
カボスやってたからJavaが必要だったんです。
0380デフォルトの名無しさん
2010/04/09(金) 00:00:19ダメじゃない。やりかたが間違ってるか、それとも環境が壊れてる。
JTabbedPane tab0 = new JTabbedPane();
JTabbedPane tab1 = new JTabbedPane();
JTabbedPane tab2 = new JTabbedPane();
tab1.add("pan1", new JPanel());
tab1.add("pan2", new JPanel());
tab0.add("tab1",tab1);
tab2.add("pan1", new JPanel());
tab2.add("pan2", new JPanel());
tab2.add("pan3", new JPanel());
tab0.add("tab2",tab2);
add(tab0);
って感じで俺のトコだと問題無し。
0381デフォルトの名無しさん
2010/04/09(金) 00:59:050382デフォルトの名無しさん
2010/04/09(金) 01:00:510383デフォルトの名無しさん
2010/04/09(金) 01:29:170384デフォルトの名無しさん
2010/04/09(金) 01:38:500385デフォルトの名無しさん
2010/04/09(金) 02:01:060386デフォルトの名無しさん
2010/04/09(金) 02:25:480387デフォルトの名無しさん
2010/04/09(金) 02:51:170388デフォルトの名無しさん
2010/04/09(金) 06:07:350389デフォルトの名無しさん
2010/04/09(金) 10:03:15前後入れ替えたり、いらないものを削除したら直る
0390デフォルトの名無しさん
2010/04/09(金) 11:15:25ちなみにJava関係はインストールするアプリケーション以外は消しました
0391デフォルトの名無しさん
2010/04/09(金) 11:43:02入れ替えるのはパスの順序。システムの詳細設定->環境変数->PATH
0392デフォルトの名無しさん
2010/04/09(金) 11:58:07コマンドプロンプトで確認してみたらちゃんとインストールされていました。
理由を教えていただけたらうれしいです。
0393デフォルトの名無しさん
2010/04/09(金) 12:23:42∧∞∧ ┌───────
(*‘ー‘) < シラナイワ
\ < └───/|───
\.\______//
\ /
∪∪ ̄∪∪
0394デフォルトの名無しさん
2010/04/09(金) 12:42:51JREのインストールなんて板違いだから失せろ。
PC初心者板にくだ質かエスパースレくらいあるだろ。
他人のレス全スルーしていつまでグダグダやってんだ。
ム板でやることじゃねぇ。
0395デフォルトの名無しさん
2010/04/09(金) 13:43:39そのPATHまでたどり着いてからはなにをしたらいいんですか?
0396デフォルトの名無しさん
2010/04/09(金) 14:23:33こっちで聞いた方がええだろ
→http://pc12.2ch.net/test/read.cgi/win/1267258645/
0397デフォルトの名無しさん
2010/04/09(金) 14:31:050398デフォルトの名無しさん
2010/04/09(金) 14:32:210399デフォルトの名無しさん
2010/04/09(金) 14:43:380400デフォルトの名無しさん
2010/04/09(金) 15:12:02format c:
でアプリ初期化してみるとか
0401デフォルトの名無しさん
2010/04/09(金) 18:49:50アプリ初期化ですまないかと
0402デフォルトの名無しさん
2010/04/09(金) 22:41:30どっかに良い説明サイトあったっけ?下手に訳も分からず変更するとマズいし。
0403デフォルトの名無しさん
2010/04/09(金) 22:42:42format %SystemDrive%
とすべき。
コマンドプロンプトからSystemDrive変数が見えるかは知らんが。
0404デフォルトの名無しさん
2010/04/09(金) 23:26:500405デフォルトの名無しさん
2010/04/09(金) 23:34:59ささやき-えいしょう-いのり-ねんじろ!
はいになりました
0406デフォルトの名無しさん
2010/04/09(金) 23:35:500407デフォルトの名無しさん
2010/04/09(金) 23:36:390408デフォルトの名無しさん
2010/04/09(金) 23:41:13やってみました。
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\>FORMAT C:
ファイル システムの種類は NTFS です。
警告: ハード ディスクのドライブ C: のデータは
失われます。
フォーマットしますか (Y/N)? N
こわかった。
0409デフォルトの名無しさん
2010/04/10(土) 07:01:02フォーマットできないはず。Win9xなら知らん
0410デフォルトの名無しさん
2010/04/10(土) 08:07:17linuxじゃなくてよかったな
yとだけ出力し続けるコマンドとかあるからなあれ
0411デフォルトの名無しさん
2010/04/10(土) 12:18:11yesは、同じ文字列をひたすら入力するためのコマンド。
引数なしだと'y'だけど、yes "なんか"にすれば"なんか"
をひたすら出力するよ。
0412デフォルトの名無しさん
2010/04/10(土) 12:52:010413デフォルトの名無しさん
2010/04/10(土) 13:15:27class MediumExam1
{
public static void main(String[] args)
{
MediumExam1 med=new MediumExam1();
CompareSample com=new CompareSample();
med.Mymethod(com);
System.out.println(com.i);
}
void Mymethod(CompareSample sample){
}
}
class CompareSample
{
int i=5;
}
0414デフォルトの名無しさん
2010/04/10(土) 13:34:01↓
int i=10;
0415デフォルトの名無しさん
2010/04/10(土) 13:54:07void Mymethod(CompareSample sample){
sample.i = 10;
}
0416デフォルトの名無しさん
2010/04/10(土) 14:04:15{
public static void main(String[] args)
{
MediumExam1 med=new MediumExam1();
CompareSample com=new CompareSample();
med.Mymethod(com);
System.out.println(com.i);
}
void Mymethod(CompareSample sample){
sample.i=10
}
}
class CompareSample
{
int i=5;
}
0417デフォルトの名無しさん
2010/04/10(土) 14:50:02void Mymethod(CompareSample sample){
}
sample.i+=(100+50)*20-2995;
}
0418デフォルトの名無しさん
2010/04/10(土) 14:51:17void Mymethod(CompareSample sample){
}
while (sample.i!=10) sample.i++;
}
0419デフォルトの名無しさん
2010/04/10(土) 15:15:53void Mymethod(CompareSample sample){
System.out.println(10);
System.exit(0);
}
0420デフォルトの名無しさん
2010/04/10(土) 15:18:040421デフォルトの名無しさん
2010/04/10(土) 15:20:07できる
0422デフォルトの名無しさん
2010/04/10(土) 15:54:38パッケージ xb.org とは何でしょうか?
0423デフォルトの名無しさん
2010/04/10(土) 15:56:22native2ascii で半角スペースを \u0020 に変換したいのですができないのでしょうか?
もしできない場合
半角スペースも含めたツールでのunicodeへの変換方法があったら教えてください
0424デフォルトの名無しさん
2010/04/10(土) 16:37:47別の用途で使うっていうならスレ違い。
0425デフォルトの名無しさん
2010/04/10(土) 16:57:28propertiesファイルの中で
Key=[値]
の[値]の中に半角空白を含めたいのですが、\u0020と書くとちゃんと半角空白を取得してくれるのに
そのpropertiesファイルを作るnative2asciiでは\u0020に変換してくれないのです
0426デフォルトの名無しさん
2010/04/10(土) 19:44:46半角空白をそのままpropertiesに書くと都合が悪いってこと?
0427デフォルトの名無しさん
2010/04/10(土) 20:08:36ちょうどここhttp://naruhodo.television.co.jp/qa3899162.htmlで質問されている方と全く同じ現象なのですが、これは一旦なんなんでしょうか。
JavaからRuntimeでコマンドを実行したりしていますが、それが原因なのでしょうか。Runtimeのインスタンスには、使い終わったあと nullを突っ込んだりはしていませんが、それが原因でしょうか。
いずれにしても、この数がRuntimeでコマンドを実行するたびに増えていっています。
このままですと、リソースを食いつぶすのではないかと考えています。
何か手だてはありませんでしょうか。
ちなみに、/proc/sys/fs/file-nrを確認しましたが、特に増えて行く様子はありません。
0428デフォルトの名無しさん
2010/04/10(土) 20:52:33それの回避には、元ファイルで
key=\u0020値
とコード番号で書いておいて、それを native2ascii に通せばいいんだよ。
[元ファイル]
a=\u0020
b=\u0020a 漢字
[native2ascii実施後のファイル]
a=\u0020
b=\u0020a \u6f22\u5b57
となる。
0429デフォルトの名無しさん
2010/04/10(土) 22:05:54パフォーマンスを考えてbufferedImageの複製に直接描画するのではなく、以下サイトの解説にあるプルモデルで実装したいと思っています。
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/2d/spec/j2d-image.html#wp65661
良いサンプルコードを掲載してるサイトは有るでしょうか?
0430デフォルトの名無しさん
2010/04/11(日) 00:57:07これは・・・使い方が想像もつかない・・・
ContextualRenderedImageFactory の実装って自作するのかな?
ParameterBlock なんか ClassCastException 起しかねない無茶苦茶な実装だし。
Graphics2D の実装から見ていかないと使い方わからんね。
使ってるサンプルとかも見つからないし、なんかもうSUNの冗談かと思いたくなってきた。
俺なら諦めてBufferdImageに書いちゃうな、もう。
0431デフォルトの名無しさん
2010/04/11(日) 02:51:320432デフォルトの名無しさん
2010/04/11(日) 08:43:13private final LinkedList<クラス名A> queue = new LinkedList<クラス名A>();
queueの型がクラスLinkedListと<クラス名A>の2重の型で指定されているように
見えるのですが
<クラス名>の<>で囲んだクラス名で変数を指定するとどういう意味があるのでしょうか?
また、<>で囲む方式の名称ってありますでしょうか?
昔は、<クラス名>で変数を指定したことは無かった気がします。。。
0433デフォルトの名無しさん
2010/04/11(日) 08:55:14ttp://www.javainthebox.net/laboratory/J2SE1.5/LangSpec/Generics/Generics.html
冗長で無駄に見えるが、今のところこう書くしかない。変数とオブジェクトで型が違う可能性もあるし。
private final List<クラス名A> queue = new LinkedList<クラス名A>();
Javaにも、C#のvarみたいな型推論が欲しいね。
0435デフォルトの名無しさん
2010/04/11(日) 10:26:51V2CやeclipseなどのJava製のソフトを使っていると、
しばらく放置してから触るとGUIの反応が一時的に悪くなったあと
すぐに反応が元通りになるですけど、これはどういう理由からなのでしょうか?
0436デフォルトの名無しさん
2010/04/11(日) 10:37:03放置したアプリを触ったときに一時的に重くなるのは必然だと思うよ。
会社のヘタレマシンだとそれ以上にAdobeReaderが酷かったりする。
0437デフォルトの名無しさん
2010/04/11(日) 10:48:59世代別GCの弊害ですか。
ありがとうございます。
0438デフォルトの名無しさん
2010/04/11(日) 10:57:14あるかな?という程度。
0439デフォルトの名無しさん
2010/04/11(日) 11:02:28(出来れば標準ライブラリで)全て読み込む方法があれば教えてください。
0440デフォルトの名無しさん
2010/04/11(日) 11:05:22どうにかなるかならないかは質問者次第では?
どうにも我慢できないなら、言語を変えるとか、VMを自作するとか、いろいろ方法はあるよね。
0441デフォルトの名無しさん
2010/04/11(日) 12:33:32自作のアプリならメモリ使用量を見直してみるとかあっても、V2Cとかeclipseじゃなぁ。
VM自作って考えたこともないけど、簡単なの?
0442デフォルトの名無しさん
2010/04/11(日) 14:25:00今更ですが、御回答ありがとうございました。
何用途向けは若干わかったのですが、お絵描きアプレットにどれが適しているかまでは
分からなかったので、とりあえず引き続きプログラムの学習を続けようと思います。
その学習の一環で、上位フォルダのファイルの拡張子でフォルダを作り、そこに移動させる
自作プログラムを作りました。(ただし振るスクラッチではなく、講座サイトなどのソースを見て、
このクラスが使えそうかなという感じで)
このソフトを色々と拡張しようと思っているのですが、いくつかご相談をお願いします。
1 拡張子がmp3のとき、ID3タグを付与しようと思っています。
-1.文字列を16進法のバイナリに変換して、そのまま書き込むいい方法
-2.ファイル冒頭に任意のバイト数を追記する方法
2 任意のフォルダの場所で実行や、拡張子別に動作を分けるなど考えています
-1.プロパティファイルを書き込むためのクラス
3 高速化について
-1.一般的なfor文とfor(byte i = (byte)test.length();i != 0;i--)のコスト差
-2.条件分岐を減らす方法
-3.マルチスレッド化
-4.それ以外の高速化の方法
次のレスに詳細を書き込みます。
0443デフォルトの名無しさん
2010/04/11(日) 14:27:23ID3v1なら末尾に付与のためfilewriter()で何とか出来そうなのですが、全半角両方が
一文字と認識されてしまうため、仕様の30文字制限の処理が上手くいきません。
そこでバイナリエディタで確認できる文字列に変換し、それで処理しようと考えています。
文字を(byte)で変換したり、intにcharを代入したりしましたが、上手くいきません
1-2
ID3v2の場合、ファイル冒頭に追記します。filewriter()だと末尾追記か全消ししかないため
使えそうにありません。何かいいクラスはないでしょうか?
2-1
ユーザーが入力した任意の文字列を取得するのに、プロパティファイルを使うのがちょうどいいと
思ったのですが、読み込む側の解説は充実していても書き込む側がさっぱりでした。
もし書き込みクラスというのがあればご教示お願いします。
3 これを作る一環で、必要はないと思いますが、偶然高速化についての記事を読みました。その記事では
3-1
for文の条件式はコストがかかると書いてました。128以下のfor文でカウンターを使わないなら、
質問文中のようにしようと考えました。これについて問題があるか否か。
3-2
if文はパイプライン処理が途切れるため遅くなると書いてました。nullについては例外を使って出来ましたが、
それ以外に何か減らすコツのようなものはありますか?
3-3
マルチコアならマルチスレッドは有効だと書いてました。スレッド化自体は講座サイトで分かるのですが、
より有効で実践的なマルチスレッドにするにはどのような考え方でマルチスレッドすればいいのでしょうか?
3-4
大雑把な質問で申し訳ないのですが、それ以外に何か高速化する手段があればご教示お願いします。
0444デフォルトの名無しさん
2010/04/11(日) 15:00:54ありがとうございます。とりあえずbufferedImageの複製コースで今は実装してます。
ビルダーのjavadocを見ても全然わからんしやっぱりあんまり使われてないんですね…
遅延評価が出来そう?な感じで使えば良いものそうなのに残念なドキュメントです。
0445デフォルトの名無しさん
2010/04/11(日) 15:20:021-1
String のメソッドか、java.nio.charset.CharsetEncoder を調べる。
1-2
java.io.RandomAccessFile を調べる。
2-1
java.util.Properties を調べる。
3
上の情報を自分で把握できないレベルじゃ無駄無駄無駄無駄無駄無駄。
0446デフォルトの名無しさん
2010/04/11(日) 16:14:50ありがとうございます。
>1-1
>1-2
Stringメソッドでそれらしい戻り値のは試してたのですが、今度は総当りでやってみます。
またそれ以外のメソッドも、今の読み取り能力ではいまいち理解できませんが、
とにかく試験的に使ってみてどのようになるか見てみようと思います。
>2-1
うっかりしていました。API自体は見ていたのですが、何故かset〜に気づかずないないと
思い込んでしまっていました。
そのせいで検索ワードも必要ない単語を混ぜて検索ばかり…。
講座サイトにも、初期のころに見つけたサイトに普通に書いてました…。
>3
おっしゃるとおり。ちょっと色気を出しすぎました。
とりあえず教えていただいた情報から、引き続き拡張してみたいと思います。
0447デフォルトの名無しさん
2010/04/11(日) 16:34:54char[] kae = namae[0].toCharArray();
String.valueOf(kae);
if(kae[0].equals("h")){
System.out.println(kae[0]);}
char型の配列をstringにして比較したいのですが
これだと charは間接参照できませんとでます。
どうすればいいでしょうか
0448デフォルトの名無しさん
2010/04/11(日) 16:42:590449デフォルトの名無しさん
2010/04/11(日) 16:48:51kae[0] == 'h' でおk
0450デフォルトの名無しさん
2010/04/11(日) 16:51:33if(kae[0]=='h'){
もしくは
if(Character.valueOf(kae[0]).equals('h')){
charはプリミティブであってオブジェクトじゃない。
0451デフォルトの名無しさん
2010/04/11(日) 16:56:120452デフォルトの名無しさん
2010/04/11(日) 16:58:06有難うございます。 後者だとできました
kae[0] == 'h' だとエラーになりました
もっと勉強してみます
0453デフォルトの名無しさん
2010/04/11(日) 17:11:33エラーが出たのはもしかして ' (シングルクォート)ではなく " (ダブルクォート)を使ったのでは?
0454デフォルトの名無しさん
2010/04/11(日) 17:22:120455デフォルトの名無しさん
2010/04/11(日) 19:11:50オープンソースを教えてください。
0456デフォルトの名無しさん
2010/04/11(日) 21:52:57try{
}catch(Exception e){
}
//この部分は必ず実行されるのでは?
0457デフォルトの名無しさん
2010/04/11(日) 22:08:52HttpURLConnection http = (HttpURLConnection)url.openConnection();
http.setRequestMethod("GET");
http.connect();
InputStream in = http.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(in);
in.close();
http.disconnect();
としているのですが、指定urlにファイルがなかった場合、urlを指定した別のものに変えたい場合はどうすればいいのでしょうか?
0458デフォルトの名無しさん
2010/04/11(日) 22:25:15out.println("a");
try {
out.println("b");
if(true)throw new IOException();
//if(true)throw new Exception();
out.println("c");
} catch (IOException e) {
out.println("d");
if(true)throw new Exception();
out.println("e");
}finally{
out.println("f");
}
out.println("g");
a-b-d-f
//外したException投げるほうだとa-b-f
ともにgは出力されない
0459デフォルトの名無しさん
2010/04/11(日) 22:32:09IOExceptionキャッチして呼びなおせばいいじゃない
0460デフォルトの名無しさん
2010/04/11(日) 22:58:44なるほど・・・Exceptionにはエラー吐かせることしか考えてませんでした。
ありがとうございます。
0461デフォルトの名無しさん
2010/04/11(日) 22:59:25>>458 が書いているような
catch ブロックの中で例外が投げられるケースに加えて、
try や catch ブロックの中で return した場合でも、
後の部分は実行されない。
finally ブロックを書けば必ず実行される。
0462デフォルトの名無しさん
2010/04/11(日) 23:02:58returnもそうなんだ シランカッタ
break continueとかもなのかな
0463デフォルトの名無しさん
2010/04/11(日) 23:03:54catchした例外を例えば別の例外にラップしてスローしたら、以降の部分は実行されない。
try{
}catch(Exception e){
throw new RuntimeException(e);
}
// 実行されない
0464デフォルトの名無しさん
2010/04/11(日) 23:33:50まぁ, Lisp の unwind-protect を物まねしてみただけだ
0465デフォルトの名無しさん
2010/04/12(月) 00:27:38}finally{
}
なんかで、例外は呼び出し元に処理させるって手も。
0466デフォルトの名無しさん
2010/04/12(月) 00:56:58catch内でreturnとかした場合でもfinallyって処理されるんだっけ?
0467デフォルトの名無しさん
2010/04/12(月) 01:01:46される
0468456
2010/04/12(月) 01:02:25まとめるとfinallyを書かないと実行されないのは以下の通りですか?
・別の例外がスローされた場合
・returnされた場合
ふと気になったのは
アプリが途中で落ちた場合(exitなど)
はどうなるんだろう。。
0469デフォルトの名無しさん
2010/04/12(月) 01:04:18exitの場合はfinallyに到達しませんでした。
exitしたところで終了
0470デフォルトの名無しさん
2010/04/12(月) 01:11:37処理自体はわかるけど例外を効果的に使った設計方法がよくわかりません。
0471デフォルトの名無しさん
2010/04/12(月) 01:32:350472デフォルトの名無しさん
2010/04/12(月) 07:35:47それが例外をthrowしたって事なら、finallyでthrowした例外が優先。
0473デフォルトの名無しさん
2010/04/12(月) 09:01:38いろんなフレームワーク見ると
RuntimeExceptionを継承した自前のクラス作って
業務層でそれを投げて
コントローラーでハンドリングってのが定番になってる
以下、おれの経験だからみんなどうしてるか聞きたいんだけど
おれがWebシステムでよくやるのが
RuntimeExceptionを継承した親クラスを2種類作って
それぞれの例外クラスはどちらかを継承
・継続利用不可能なシステムエラー
データ不整合とかバグとかなんらかの対処をしなきゃいけない
ユーザのログインセッションも切断
・継続利用可能な業務エラー
2重更新など
ユーザにはエラーメッセージを表示して利用継続
以上、反論は受付は受け付ける
0474デフォルトの名無しさん
2010/04/12(月) 10:39:210475デフォルトの名無しさん
2010/04/12(月) 11:25:55オライリーの『Java魂』(ライオン本)あたりはいかがですか?
第5章を立ち読みするだけども可。
0476デフォルトの名無しさん
2010/04/12(月) 19:54:47チュートリアル
0477デフォルトの名無しさん
2010/04/12(月) 21:40:44これってひとつのアプリケーションを飛び越えて、webコンテナ含むランタイム共通の設定になってしまうんですよね?
てことは、複数アプリが動く環境では呼ぶべきじゃないものでしょうか?
ファイルアクセス、インターネットアクセスできない環境でURLを引数に持つクラスを使いたくて、
memory://id みたいな感じで、メモリ経由(HashMapだけど…)でデータの送受信をしたいのですが…
URLクラスをごまかす、いい方法って他にないでしょうか?
なんでURLはfinalなんだよ…
0478デフォルトの名無しさん
2010/04/12(月) 21:47:500479デフォルトの名無しさん
2010/04/12(月) 22:01:18具体的にどんなことがかいてあるん?
0480デフォルトの名無しさん
2010/04/12(月) 22:27:36ソース見ると、単にクラス変数にセットしてるだけだから、クラスローダごとに
独立しているはず。
別のアプリに影響はないと思うんだが、実際にやってみたら違った?
0481デフォルトの名無しさん
2010/04/12(月) 22:31:24サーブレット(又はjsp)で、JSON書き出してjqGridにロードする
場合
検索フォームのボタン押す
↓
ServletへクエリPOST(DB検索)
↓
ServletでJSONObject/JSONArrayを作成
↓
???
ここからどうしたらいいんでせうか。
Beanなり、Session変数で受け取ると、ドキュメント(というか
javascript内)にゴリゴリ検索結果のJSON書きつけることになるので
ちょっと微妙なんじゃないかと思うんですが・・・
外部JSONをjspで作る場合、jqGridのスクリプトを含んだメインページに
再度リダイレクトさせる必要があると思うのですが、どうも上手く表示が
できませぬ。ボスケテ。
0482481
2010/04/12(月) 22:33:55×リダイレクト
○フォワード
0483デフォルトの名無しさん
2010/04/12(月) 23:08:49例外起こしてるならただのヘボシステムだろ。
ちゃんとチェックしてから処理しろよ。
0484デフォルトの名無しさん
2010/04/13(火) 00:01:00クラスローダごとにって、java.net.URL みたいな基本的なクラスを別々のクラスローダで読み込むのか?
0485デフォルトの名無しさん
2010/04/13(火) 00:30:59コントローラー
↓
ファサード
↓
業務ロジック
ってなってるときに
業務層で2重更新がわかったらどうしてる?
0486デフォルトの名無しさん
2010/04/13(火) 03:11:21javadocに「このメソッドは、使用する Java 仮想マシンで 1 回しか呼び出せません。」と
書いてあるから、設定したら他のWebアプリにも影響与えるね。
この辺はサーブレットコンテナ依存なんで一概には言えないが、Tomcatの場合
Java SE付属のクラスは、TomcatのVM全体で共有されるクラスローダに読み込まれる。
これは>>484も懸念するとおり。
他のWebアプリはおろか、Tomcat自体の動作にも影響を与える。
URLクラスを使うのは無理っぽいね。代わりにStringか独自インタフェースでリソース名を指定するようにして、
リソース名→ストリームへの変換を独自のファクトリで行うようにするしかないんじゃないかな。
ちなみに、Eclipseは中でそうやってて、FileやURLの代わりに
org.eclipse.core.resources.IResourceというインタフェースで
リソースを表現している。
0487デフォルトの名無しさん
2010/04/13(火) 03:22:23テーブルを表示するページの処理と、検索結果としてJSONを返す処理の2つを作る。
ページの作り方を変えて、検索フォームと検索結果を同一ページで表示するようにして、
検索時にはページ遷移せず、AjaxでJSONもらってjqGridに表示するだけにすればいい。
jQureyなら、getJSON使えばURL指定でJSONをもらえるので、これを使う。
それが嫌なら、>>481の案通り、検索結果表示部と検索結果のJSONがすべて入ったJSPを送り返すしか。
0488デフォルトの名無しさん
2010/04/13(火) 07:47:55URL のインスタンスが必要なだけならコンストラクタに URLStreamHandler を
取るのがあるからそれ使え。Factory の実装が必要なのは任意の文字列から
URL インスタンスを作る場合。
new URL("memory", "", 0, "1234", new MemoryURLStreamHandler());
0489デフォルトの名無しさん
2010/04/13(火) 08:03:26Map<String,byte[]> cache = new HashMap<String,byte[]>();
class MemoryURLConnection{
public void open(){ }
public InputStream getInputStream(){
return new ByteArrayInputStream(cache.get(getURL().getPath()));
}
}
class MemoryURLStreamHandler{
public URLConnection openConnection(){ new MemoryURLConnection(); }
}
ちなみに USB ライブラリ作ったときにバルク転送 (双方向通信) の上位インターフェースを
こんな感じで URL オブジェクトで返すようにしたことがある。あと関連としてプロトコルには
x- 付けとけ。
0490デフォルトの名無しさん
2010/04/13(火) 10:08:38コンストラクタまで目がいってなかったっす…
目からうろこ…
ありがとうございます。
0491デフォルトの名無しさん
2010/04/13(火) 10:39:22プロトコルにはx- 付けとけって、その心は?
0492デフォルトの名無しさん
2010/04/13(火) 10:51:010493デフォルトの名無しさん
2010/04/13(火) 11:15:43○慣例
RFC 1738 Uniform Resource Locators (URL)
4. REGISTRATION OF NEW SCHEMES
A new scheme may be introduced by defining a mapping onto a
conforming URL syntax, using a new prefix. URLs for experimental
schemes may be used by mutual agreement between parties. Scheme names
starting with the characters "x-" are reserved for experimental
purposes.
0494デフォルトの名無しさん
2010/04/13(火) 12:02:32がインストールされて、さらにその後 JREのインストールが始まって、
"C:\Program Files\Java\jre6\bin\java.exe" がインストールされるんだけど、
なんで二重にインストールされるの?
0495494
2010/04/13(火) 12:15:00完全に解決したわけじゃないけど、以下の投稿を見てなんとなくわかった。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=19574&forum=12
0496デフォルトの名無しさん
2010/04/13(火) 12:20:49なんとなくわかったんなら
わかった部分でも書いた方がよいよ
ひょっとしたら間違ってて
ほかの人に訂正してもらえるかもしれんし
あっ、なるほどと思って
自分の考えを改める人がいるかもしれん
0497494
2010/04/13(火) 12:55:16JREによってインストールされる "C:\Program Files\Java\jre6\" 以下のファイル群は
公開JREと言って色んなアプリから参照されるためのもの。
アプリケーションの追加と削除に表示される。
JDKによってインストールされる "C:\Program Files\Java\jdk1.6.0_19\jre" 以下のファイル群は
非公開 JRE と言って JDK自身が使うためのもの。
公開JRE と 非公開JRE には機能的な違いはほとんどない。
ここまではなんとなくわかった。
未だ謎なのは上記2つの他に "C:\Program Files\Java\jdk1.6.0_19\bin\java.exe" など
非公開JRE でも 公開JRE にも分類されない変な場所に JRE の一部と思われるファイルがある事。
0498494
2010/04/13(火) 12:56:44× 非公開JRE でも 公開JRE にも分類されない
○ 非公開JRE にも 公開JRE にも分類されない
0499デフォルトの名無しさん
2010/04/13(火) 13:17:43どうやらjavaコンソールの、詳細→セキュリティに「混合コード (サンドボックス内実行 vs. 信頼済み) セキュリティー検証」が追加され
デフォルトが有効になっているのが原因。
ライブラリのapache関連jarも使用しているので、署名付きと非署名はだめになってしまう…
しかも署名したjarにあるクラスからgetResouseでファイルアクセスしてもダメ。えっなぜ?
さらにAsStreamならOK。なんで?
いったいどーいうことなんだべさ
0500デフォルトの名無しさん
2010/04/13(火) 13:23:13そうだと、webでThreadLocal使うとやばいよね?
0501デフォルトの名無しさん
2010/04/13(火) 13:25:59java.exeはJavaを実行するのに必要(JREとJDKにある)
javac.exeはコンパイルするのに必要(JDKのみ)
Sunの意図としては
Javaを意識せずに使うアプリはJREを使ってね
ふつーの人はそもそもこっちしかインストールしないし
こっちは常に最新にしておいてほしい
JavaWebStartで更新されるのはこっちだけ
いずれシステムトレイにJavaを更新してくださいって出るよ
で、開発するときはバージョンを変更するかもしれないのでJDKを使ってね
こっちは1.4でも1.5でも1.6でもたくさんいれて設定を切り替えてね
0502デフォルトの名無しさん
2010/04/13(火) 13:34:08そんなことないよ
スレッドが10個とか(設定により変わる)立ち上がって待ってて
クライアントからのリクエスト毎に割り当てられて
処理が終わったら、また待ちになる
銀行の窓口が10個あると思えばいい
で、ThreadLocalは窓口ごとに紐づくから
処理の最初と最後で初期化とかきちんとすればおっけー
リクエストしてきたユーザの情報とか
いちいちメソッドの引数で持ちまわしたくないようなもんを
突っ込んどくことが多い
0503デフォルトの名無しさん
2010/04/13(火) 14:03:24t.schedule(ts1,1,500);
t.schedule(ts2,1,500);
t.schedule(ts3,1,500);
登録したタスクのts2だけを削除することはできないのでしょうか?
やはり再構築?
0504デフォルトの名無しさん
2010/04/13(火) 14:05:15ts2.cancel();
じゃ、だめなん?
0505デフォルトの名無しさん
2010/04/13(火) 16:08:49同じリソースに上記メソッドで一度アクセスし、ファイルを変更して2度目のアクセスを試みると
内容が変更前のままに。
javadocはクラスローダの実装によるみたいな事を書いてありますが、
常に最新のものを読み込むとは限らないので、その場合上記メソッドは使用しない方がいい?
というか、ばかでかいファイルファイル読むとメモリに持ち続けるってこと!?
0506デフォルトの名無しさん
2010/04/13(火) 18:53:00あ、そんなのがあったんですね。ありがとうございます。
0507デフォルトの名無しさん
2010/04/13(火) 20:12:53そうだよ。
0508デフォルトの名無しさん
2010/04/13(火) 22:50:48VMにはクライアントVMとサーバーVMがあってJREの方にはクライアントVMしか実装されてない。
とかいろいろ違う。
JAVA_HOMEの下にjre/server/binがあったりする。winにはなかった気がするが。
0509デフォルトの名無しさん
2010/04/13(火) 23:31:05ちがうよ。
0510デフォルトの名無しさん
2010/04/14(水) 09:23:29言えることはクラスローダーによって違う(オーバーライドできる)から、
何とも言えないということがいえる
0511デフォルトの名無しさん
2010/04/14(水) 11:12:21サーバにリクエストが来ません。
キャッシュを使わないようにする方法はありましたら教えてください。
0512デフォルトの名無しさん
2010/04/14(水) 11:25:48URL#openStream を使う代わりに、
URL#openConnection で URLConnection を取得して、
URLConnection#setUseCaches と URLConnection#getInputStream を使うとか?
0513デフォルトの名無しさん
2010/04/14(水) 11:45:27できました。
ありがとうございます。
0514デフォルトの名無しさん
2010/04/14(水) 14:33:18java.util.InvalidPropertiesFormatException: org.xml.sax.SAXParseException: Invalid byte 1 of 1-byte UTF-8 sequence.
ファイルはUTF-8ボムなしです。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
…
…
…
</properties>
0515デフォルトの名無しさん
2010/04/14(水) 17:00:240516デフォルトの名無しさん
2010/04/14(水) 17:02:47そうですか。
0517デフォルトの名無しさん
2010/04/15(木) 10:22:10現地でeclipseがないから直せないし、お客で変えてもらうこともできない。
アプリでnative2asci呼べまいいんだけど、JREでだめだし。。。あーめんどい
0518デフォルトの名無しさん
2010/04/15(木) 12:16:08eclipse 使ってれば、プロパティエディタで一発なんだが。
0519デフォルトの名無しさん
2010/04/15(木) 12:23:31Propertiesをextendsすれば?
あとは、native2ascii呼ぶというより自前で実装するか
0520デフォルトの名無しさん
2010/04/15(木) 12:56:360521デフォルトの名無しさん
2010/04/15(木) 13:37:59お前は勉強が足りないな
一言でいえば、低能
native2asciiなんて猿くらいしか使わんよ
0522デフォルトの名無しさん
2010/04/15(木) 14:34:29while(true) {
n=request(); //0〜Nの値を返す
switch (n){
case 0:
ここに処理を全部書く
break;
case 1:
ここに処理を全部書く
break;
...
case N:
ここに処理を全部書く
break;
default:
System.out.println("Error");
}}
●その2
while(true) {
n=request(); //0〜Nの値を返す
switch(n) {
case 0: shori0(); break; //処理を全部書いたメソッドshori0()を実行する
case 1: shori1(); break; //処理を全部書いたメソッドshori1()を実行する
...
case N: shoriN(); break; //処理を全部書いたメソッドshoriN()を実行する
default: System.out.println("Error");
}}
0523522
2010/04/15(木) 14:35:09Shori[] shori=new Shori[N+1]; //メソッドjikkouを持つスーパークラス
Shori shori[0]=new Shori0(); //処理書いたShoriのサブクラス
Shori shori[1]=new Shori1();
...
Shori shori[N]=new ShoriN();
while(true) {
n=request(); //0〜Nの値を返す
try {
shori[n].jikkou();
} catch(Exception e) {
System.out.println("Error");
}
}
その1〜その3でそれぞれの処理方法の
特徴の違いって何?どれで作ったほうがいい?
ちなみに仕様変更とかで新しく処理加える可能性があるとして
どれの使ったほうがいいの?
プログラミング初心者なんでよくわかんないっす
0525デフォルトの名無しさん
2010/04/15(木) 14:44:59{
void hoge();
};
class bbb extends base
{
void hoge();
}
while(true)
bbb.hoge();
テキトー
0526522
2010/04/15(木) 14:45:32Shori shori[0]=new Shori0(); //処理書いたShoriのサブクラス
Shori shori[1]=new Shori1();
...
Shori shori[N]=new ShoriN();
↓
shori[0]=new Shori0(); //処理書いたShoriのサブクラス
shori[1]=new Shori1();
...
shori[N]=new ShoriN();
すこしよけいな文字が入ってました
0527デフォルトの名無しさん
2010/04/15(木) 14:55:48プログラムのセンスというか人として終わってるから
0528デフォルトの名無しさん
2010/04/15(木) 14:59:440529デフォルトの名無しさん
2010/04/15(木) 15:05:090530デフォルトの名無しさん
2010/04/15(木) 15:06:211〜3どれもねーよ
0531デフォルトの名無しさん
2010/04/15(木) 15:11:580532デフォルトの名無しさん
2010/04/15(木) 15:15:270533デフォルトの名無しさん
2010/04/15(木) 15:54:320534デフォルトの名無しさん
2010/04/15(木) 16:23:480535デフォルトの名無しさん
2010/04/15(木) 16:30:15数値とクラスのマップを持っとく
Map m = new HashMap();
m.put("0", new Shori());
・・・
0536デフォルトの名無しさん
2010/04/15(木) 16:46:06引っこんでろ
0537デフォルトの名無しさん
2010/04/15(木) 16:51:590538デフォルトの名無しさん
2010/04/15(木) 16:54:35何でキーが文字列
Integerで良いじゃないか。
0539デフォルトの名無しさん
2010/04/15(木) 17:17:290540デフォルトの名無しさん
2010/04/15(木) 17:24:18Iteratorにする前にする
無理なら回すしかないんじゃね?
0541デフォルトの名無しさん
2010/04/15(木) 17:27:15なぜabstract
0542デフォルトの名無しさん
2010/04/15(木) 17:48:45new ArrayList()にあたるSetって何になります。
そういえばSetなんてnewしたことないや。
0543デフォルトの名無しさん
2010/04/15(木) 18:00:40それくらい調べろよ
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Set.html
ここの既知の実装クラスの一覧
HashSet
LinkedHashSet→いれた順序を保持
TreeSet→ソートされる
0544デフォルトの名無しさん
2010/04/15(木) 18:06:27探したら一発であったな
org.apache.commons.collectionsExtendedProperties
無駄に高機能
そしてなぜか要素ごとに改行が入る
0545デフォルトの名無しさん
2010/04/15(木) 18:59:03文字化ける・・・
0546デフォルトの名無しさん
2010/04/15(木) 19:08:05いやうそ、化けなかった
0547デフォルトの名無しさん
2010/04/15(木) 19:14:23プロパティエディタに関してもNetBeansの方がプロ向きだな。
0548デフォルトの名無しさん
2010/04/15(木) 22:36:47その URL から InputStream をとろうとすると失敗するんだけどどうすりゃいいの?
スタックトレースを見ると何故か FTP で逝ってるっぽい…
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
at sun.net.NetworkClient.openServer(NetworkClient.java:118)
at sun.net.ftp.FtpClient.openServer(FtpClient.java:488)
at sun.net.ftp.FtpClient.openServer(FtpClient.java:475)
at sun.net.www.protocol.ftp.FtpURLConnection.connect(FtpURLConnection.java:270)
at sun.net.www.protocol.ftp.FtpURLConnection.getInputStream(FtpURLConnection.java:352)
at java.net.URL.openStream(URL.java:1007)
0549デフォルトの名無しさん
2010/04/16(金) 00:50:07普通に実行できるからわからない…
public static void main(String[] args) throws java.io.IOException {
java.io.File file = new java.io.File("\\\\server\\foo\\hoge.txt");
java.net.URL url = file.toURL();
System.out.println(url);
java.io.InputStream in = url.openStream();
java.util.Scanner scanner = new java.util.Scanner(in);
while(scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
in.close();
}
0550デフォルトの名無しさん
2010/04/16(金) 00:55:56もしかして、ファイル名をStringリテラルで表す時に、
"\\server\\foo\\hoge.txt"になってない?
UNCパス名なら"\\\\server\\foo\\hoge.txt"
0551522
2010/04/16(金) 02:21:010552デフォルトの名無しさん
2010/04/16(金) 02:30:22ああそれ JDK 1.1 くらいの時代に見たことがあるなー。
いやただそれだけだがw
0553デフォルトの名無しさん
2010/04/16(金) 02:42:44じゃあ3で。
0554デフォルトの名無しさん
2010/04/16(金) 02:50:04画像を表示するアプレットを作成しようとしたのですが、画像がうまく表示されません。
画像データがなしでビルドしてもエラーが出ないので画像の読み込みがうまくできていないのかもしれません。
原因が分かる人いたらコメント願います。
※Eclipse3.5を使っていて"gazou.png"というファイルを読み込んで表示しようとしています。
package appletrennshuu;
import java.awt.Graphics;
import java.awt.Image;
import java.applet.*;
public class Appletrenshuu extends Applet {
Image image;
public void init(){
image=getImage(getCodeBase(),"gazou.png");
}
public void paint(Graphics g){
g.drawImage(image, 0,0,this);
}
}
0555デフォルトの名無しさん
2010/04/16(金) 02:53:220556デフォルトの名無しさん
2010/04/16(金) 11:59:50request が数なんか返さずに Shori の参照を返すようにするとか。
request().jikkou();
エラーハンドリングの位置が重要じゃなくなれば、 request の中で全部処理するようになるのだろう。
あと、Java には enum というのがある。
0557デフォルトの名無しさん
2010/04/16(金) 13:41:450558デフォルトの名無しさん
2010/04/16(金) 14:56:42びみょぉ〜、書き込むときはエンコード指定してもunicodeエスケープしちゃう…
0559デフォルトの名無しさん
2010/04/16(金) 15:19:31無事表示されました。ありがとうございます。
0560デフォルトの名無しさん
2010/04/16(金) 15:22:440561デフォルトの名無しさん
2010/04/16(金) 15:23:540562デフォルトの名無しさん
2010/04/16(金) 15:26:340563デフォルトの名無しさん
2010/04/16(金) 16:21:240564デフォルトの名無しさん
2010/04/16(金) 16:26:110565デフォルトの名無しさん
2010/04/16(金) 17:57:240566デフォルトの名無しさん
2010/04/16(金) 18:01:420567デフォルトの名無しさん
2010/04/16(金) 18:02:290568デフォルトの名無しさん
2010/04/16(金) 18:04:20< > ←のこのカッコが何か分からない
持ってるJava入門書が古いのか知らないけど< >のカッコとか全く出てこない
どっか初心者にも優しく説明してるサイトとかあったら教えてください
0569デフォルトの名無しさん
2010/04/16(金) 18:09:240570デフォルトの名無しさん
2010/04/16(金) 18:13:10もう5年前ぐらいの話なのでその参考書は1.4時代のだいぶ古いやつだろうね
ぐぐればいっぱい出てくるよ
0571デフォルトの名無しさん
2010/04/16(金) 18:15:10Generics
Vector strings = new Vector();
strings.add("Hello Generics");
String s = (String)strings.get(0);
// 誤ってIntegerを追加できる
strings.add(new Integer(0));
Integer i = (Integer)strings.get(1);//実行時にclass cast exception
Vector<String> strings = new Vector<String>();
strings.add("Hello Generics");
String s = strings.get(0);//cast不要
strings.add(new Integer(0));//コンパイルエラー
0572デフォルトの名無しさん
2010/04/16(金) 18:29:28ただの比較演算子だよ
深い意味はない
0574デフォルトの名無しさん
2010/04/16(金) 21:11:070575デフォルトの名無しさん
2010/04/17(土) 14:52:56型引数で調べてみ。
慣れるとそこそこ便利。1.5から使える。
0576568
2010/04/17(土) 16:17:12ジェネリックス
Generics
型引数
教えていただきありがとうございます
ググってみます
0578デフォルトの名無しさん
2010/04/17(土) 17:13:39また、パッケージtestにBと言うクラスがあるとします。
ここで、Bのソース内からAのクラスを使うように記載しようとすると参照できないのですがどのようにすればよいのでしょうか。
import A;とも書けません。
※なんでこんなことになったのかと言うと、上記のAのクラスはあるところから提供されていて
それをそのまま使うようにいわれたのですが、上記のようにエラーが発生して使えないのです。
ちなみにすべてのクラスをデフォルトパッケージにしてしまえば解決するのですが、
そういう方法以外にないものかと思いまして。。。
0579デフォルトの名無しさん
2010/04/17(土) 17:29:39// 以下全部リフレクション操作...
くらいしかできなかったような
0580デフォルトの名無しさん
2010/04/17(土) 18:13:22俺は英語として自然に読めるほうを使ってるんだけどどうかな。
if (!list.isEmpty()) ...
// if list is not empty ...
if (flag == false) ...
// if flag is false ...
if (!flag) ...
みたいな書き方は、どうも違和感を覚える。
if not flag?
0581デフォルトの名無しさん
2010/04/17(土) 18:39:10それはflagっていう変数の名前付けが悪いからでは?
flagの真偽値とそれの意味するところの関係が曖昧だから。
0582デフォルトの名無しさん
2010/04/17(土) 18:52:38>>289は、単純に変数名が悪いだけだと思うぞ。
変数名まともならどっちでもいいと思う。
ちなみに、AはBか?を問うときは、三単現でもおかしくないんだぜ。
0583デフォルトの名無しさん
2010/04/17(土) 18:57:27要するに boolean 型の変数名とか boolean を返すメソッドの名前が
動詞句とか動詞の過去分詞形だと ! を使う方が自然ではないかという考え。
0584デフォルトの名無しさん
2010/04/17(土) 19:01:030585デフォルトの名無しさん
2010/04/17(土) 19:25:53〜コーディングの流儀〜
0586デフォルトの名無しさん
2010/04/17(土) 19:27:10if (!no_data) ...
は二重否定 (not no data) で良くないので
if (no_data)
; // 空文
else
...
と書け、と言ってる。
ちょっと行き過ぎな気もするが、英語圏の人は気になるのか?
彼いわく
Double negatives don't unconfuse code,
so if the empty statement helps you never fail to avoid them, then don't not go for it.
(二重否定がコードを不明瞭にしないことはないので、
そういった事態を避けることに失敗しないために空文が役立つ場合は、
ぜひ使わないことをやめるといい)
0587デフォルトの名無しさん
2010/04/17(土) 19:35:50溺れた人を助ける医者の話を思い出すわ。
0588デフォルトの名無しさん
2010/04/17(土) 20:19:55bool よりも boolean
私はね これでjavaに決めたんだ
0589デフォルトの名無しさん
2010/04/17(土) 21:36:220590デフォルトの名無しさん
2010/04/17(土) 23:39:58javaの生みの親であるゴスリング氏やその他重要な人物が一身上の都合で辞めまくってるわけだが。
java終わった?
0591デフォルトの名無しさん
2010/04/18(日) 08:06:520592デフォルトの名無しさん
2010/04/18(日) 08:26:020593デフォルトの名無しさん
2010/04/18(日) 11:00:010594デフォルトの名無しさん
2010/04/18(日) 11:21:23class A{
public static void main(String args[]){
S ss=new S(1,2);
int aa=mm.geta();
int bb=mm.getb();
System.out.println(aa);
System.out.println(bb);
}
}
class S{
public void S(int a,int b){
M mm;
mm=new M();
mm.a=a;
mm.b=b;
}
}
class M{
int a;
int b;
public int geta(){
return a;
}
public int getb(){
return b;
}
}
0595デフォルトの名無しさん
2010/04/18(日) 11:53:570596デフォルトの名無しさん
2010/04/18(日) 12:21:220597594
2010/04/18(日) 12:22:56public voidを取ったらその部分はなくなりましたが、
mm.geta();
mm.getb();
がおかしいそうです。どうしたらいいでしょうか。
0598デフォルトの名無しさん
2010/04/18(日) 12:45:590599594
2010/04/18(日) 13:09:590600デフォルトの名無しさん
2010/04/18(日) 13:26:17class S{
M mm;//<---
S(int a,int b){
mm=new M();
mm.a=a;
mm.b=b;
}
でできるけど、カプセル化を勉強しよう
0601デフォルトの名無しさん
2010/04/18(日) 13:26:430604デフォルトの名無しさん
2010/04/18(日) 13:46:54class S {
private M mm;//インスタンス変数は隠蔽
S(int a, int b) {
mm = new M(a, b);
}
public int geta() {
return mm.geta();
}
public int getb() {
return mm.getb();
}
}
0606デフォルトの名無しさん
2010/04/18(日) 15:41:591f → "1.00"
1.5f → "1.50"
1.55f → "1.55"
1.555f → "1.56"
という感じです。
0607デフォルトの名無しさん
2010/04/18(日) 15:49:27System.out.println(String.format("%1.2f",aa) );
0608デフォルトの名無しさん
2010/04/18(日) 16:29:00問題あるコードの例として、下記の断片が挙げられてます。
単なるpublic公開は当然問題があるのはわかるのですが、
下記のAsserionErrorが投げられるような不正な状況が発生するという事でした。
断片↓
public Holder holder;
public void initialize() {
holder = new Holder(42);
}
Holderの定義↓
public class Holder {
private int n;
public Holder(int n) { this.n = n; }
public void assertSaniity() {
if (n != n)
throw AssertionError("(rya");
}
}
直感ではまったく理解できないのですが、これがダメという事は、
Holderのコンストラクタの処理完了前に、
メモリだけ確保された状態の参照がholderに代入されるって事ですよね?
こんな順番めちゃくちゃがJavaの仕様なんだったら世の中のコードのほとんどがダメダメなんじゃないでしょうか。
0609デフォルトの名無しさん
2010/04/18(日) 16:51:28追加されていたとは、俺は古いのか。
0610デフォルトの名無しさん
2010/04/18(日) 17:43:35http://www.ibm.com/developerworks/jp/java/library/j-dcl/
シングルトンとか別スレッドからの参照のコードじゃなくて、作成されるオブジェクト側
のコードが例示されるなんて無いだろうから、やっぱ関係ないよな。
と書きつつ、実はコレの説明なのに608は見るべき箇所を間違っていると疑っている。
0611608
2010/04/18(日) 17:54:12そう、アウトオブオーダー書き込みの話です。
間違ってないつもりです。引用は、初版のP.59のList3-14,3-15です。
原書のerrataをみても訂正はありません。
この本曰く、このコードは、
「他のスレッドからは正しくないステートのHolderが見える事があり得ます。
この正しくない公開によって他のスレッドは、"一部だけ構築されたオブジェクト"を見る事になります」
と説明されています。
0612デフォルトの名無しさん
2010/04/18(日) 17:57:43おれも最初そう思ったがコードを>>608が勝手に断片化して肝心の部分が書かれてないだけじゃないの?
0613608
2010/04/18(日) 17:58:05holderへの新オブジェクトへの参照を書き込むのが、
コンストラクタの処理完了より先に書き込まれる、という事です。
本書ではこのコードについて、上記の説明の前に
「この見た目には無害なプログラムがエラーになる様子を実際に見えて、びっくりする人もいるでしょう」
と言っています。
0614608
2010/04/18(日) 18:04:42List3-14(断片)と3-15(Holderの定義)を、そのまま書いてます。
なにも省略してません。
>>613と>>613の引用は、3-14の説明箇所の文です。
3-15(Holderの定義)は、「List 3-15 正しく公開されないとエラーになりそうなクラス(not so good)」という説明で書かれています。
0615608
2010/04/18(日) 18:35:50>>608のコードが載っているページ
ttp://www.dotup.org/uploda/www.dotup.org820906.jpg.html
その次のページ(脚注が問題の内容)
ttp://www.dotup.org/uploda/www.dotup.org820913.jpg.html
脚注アップ
ttp://www.dotup.org/uploda/www.dotup.org820925.jpg.html
0616デフォルトの名無しさん
2010/04/18(日) 18:43:40わけで、そんなモノなんだから作られるインスタンスの中身になんか実は一切関係ない。
そのコードは、それが起こった時に目に見える例外を起こさせるためのテストオブジェクト。
大事な部分は、それを実際にインスタンス化させているコード例。それがきっとある筈。
・・・だと思うフツー。俺その本もってねーけど、その説明こそキモなんだから。
0617608
2010/04/18(日) 18:50:57> 大事な部分は、それを実際にインスタンス化させているコード例。それがきっとある筈。
それがまさに、>>608の「断片(本書のList3-14)」という事だと思うんですが、そうじゃなくて?
0618デフォルトの名無しさん
2010/04/18(日) 19:27:24これがダメだったら、どうすりゃいいんだよ?
変数をprivateにして、それを参照するメソッドを全部synchronizedにするのか?コンストラクタ以後値を変えないのに?
まじかよ、そんな事するのか本当に?
0619デフォルトの名無しさん
2010/04/18(日) 20:40:08public class Test extends Thread {
public Holder holder;
public void initialize() {
holder = new Holder(42);
}
public static void main(String[] args) {
Test thread = new Test();
thread.initialize();
thread.start();
while (true) {
thread.initialize();
}
}
public void run() {
while (true) {
holder.assertSaniity();
}
}
}
で数分ブン回しても起きないし。
0620デフォルトの名無しさん
2010/04/18(日) 20:43:23System.out.println(holder.hashCode());
を入れて回したが、ちゃんとインスタンスは切り替わってる。
0621デフォルトの名無しさん
2010/04/18(日) 22:17:27大抵「起こる可能性がある」でしかないわな。
環境と状況依存。
Intel CPU上のSunVMでどんなに頑張って再現できなくても、
Power上のIBMVMやItanium上のHPVMではぽろぽろと発生したり。
0622デフォルトの名無しさん
2010/04/19(月) 00:37:060623デフォルトの名無しさん
2010/04/19(月) 01:29:18メモリモデルを理解すれば問題が理解できる。
正しく同期しなければ別スレッドには最新の値は見えないことがある。
cpuのレジスタに乗ったままの情報はメインメモリに書き出されるまで別スレッドから参照されない。
マルチスレッドは奥が深いです。いい本なので頑張って。
0624デフォルトの名無しさん
2010/04/19(月) 01:54:05通常は作ったオブジェクトを他のスレッドに渡すときに
その参照に対する可視性を保証するために同期するのが普通なので
その同期の副作用にてオブジェクトの中身に対する可視性も保証される。
参照の同期すらケチった場合に微妙な問題が起こりうる。
0625デフォルトの名無しさん
2010/04/19(月) 02:11:51private static final OBJECT=new Object();
TestClass() {}
void hoge() {
synchronized (OBJECT) {
System.out.println("アフォ");
}
}
}
0626デフォルトの名無しさん
2010/04/19(月) 02:23:21前世紀から RS/6000 でガンガン開発&動かしてるけどアウトオブオーダーと思しき挙動には
会ったことがないな。まぁコードレビューするときにちゃんと考慮できてるかで相手の技量を
読む程度だな。
0627デフォルトの名無しさん
2010/04/19(月) 02:31:56エラーがでますた
0628デフォルトの名無しさん
2010/04/19(月) 02:44:57適時ったって、これじゃあ、フィールドを参照する(=ほとんどすべて)のメソッドを
みんなsynchronizedにしないとあかん事になるんじゃないか?
ふつう、synchronizedなんて一時的に明らかな不整合状態になる時しかしなくね?
0629デフォルトの名無しさん
2010/04/19(月) 09:57:13別スレッドから変更できる変数で判断している部分は、その時なんじゃね?
0630デフォルトの名無しさん
2010/04/19(月) 11:08:12リフレクション多用はやっぱりパフォーマンス悪化につながりますかね…
0631デフォルトの名無しさん
2010/04/19(月) 13:14:16マルチスレッドでアクセスする場合は、普通のJavaプログラマなら
無意識にやってると思うよ。
アクセサをsynchronizedにするとか。
>>608みたいにholderフィールドを公開するなんて、普通はしてないでしょ?
若しくは
http://www.ibm.com/developerworks/jp/java/library/j-jtp06197.html
のリスト3みたいにvolatileつけるか。
ちなみに、Java並行処理プログラミングには、>>615のページの後ろに、
正しく構築されたオブジェクトを安全に公開するための条件が書かれています。
曰く、
staticイニシャライザで初期化
volatileまたはAtomicReference
finalフィールド
ロックでガード
0632デフォルトの名無しさん
2010/04/19(月) 17:52:35linux64bitOSの64bit用JRE環境上で正しく動作するでしょうか?
Windowsに特化したコード(パスも含め)は一切ありません。
0633デフォルトの名無しさん
2010/04/19(月) 17:54:340634デフォルトの名無しさん
2010/04/19(月) 18:09:21すみません。完全に間違った表記でした。
人通り動作することは確認しました。
ただ根本的に、OS、JREのビットの問題はSun(Oracle?)が保証する範囲であり、javaPGが気にする範囲ではないかということと、
客に伝えるために、その辺を明記しているページがあれば教えてもらえないでしょうか。
最初の質問と全く違っていましてすみません。
0635デフォルトの名無しさん
2010/04/19(月) 19:22:42つか実行環境が 8bit だろうが 64bit だろうがバイトコードは変わりません。
0636デフォルトの名無しさん
2010/04/19(月) 19:54:33CSVの構成は3列固定で必ず値が入っています
行数は何行入っているかわかりません
値の取得は行単位で取得しています
リスト変数を使わずに2次元配列で各値を区切り文字で分解後、格納しています
予想していた行よりもCSVの行が多いと配列から溢れてエラーとなります
そこで、ファイルを開いた後にCSVファイルが何行であるかを調べる方法がありますでしょうか?
因みにリストは使えません。配列のみで操作したいです。
よろしくお願いします
0637デフォルトの名無しさん
2010/04/19(月) 20:00:030638デフォルトの名無しさん
2010/04/19(月) 20:12:08最後まで読まなきゃ何行あるかなんて分かるわけがない。
> 予想していた行よりもCSVの行が多いと配列から溢れてエラーとなります
なら、読み込みながら行数を数えて、用意していた配列から溢れそうなら、
もっと大きい配列を作ってそっちに今までの配列から内容をコピーして、
今まで使っていた配列を指していた変数に大きい方の配列への参照を代入して読み込み処理を続ける。
0639デフォルトの名無しさん
2010/04/19(月) 20:19:11ご苦労さんだw
0640デフォルトの名無しさん
2010/04/19(月) 21:18:480641デフォルトの名無しさん
2010/04/19(月) 21:23:27Socket#getInputStream() とか。
0642デフォルトの名無しさん
2010/04/19(月) 21:34:39位置を揃えて綺麗に出力するにはどうすればいいでしょうか?
\tも使ってみたのですが、長さが違うので同じタブ数でもズレて表示されてしまってました
文字数をカウントしてそれで分岐させれば表示はできるとは思うのですが
できるだけシンプルに作りたいのです・・・
0643デフォルトの名無しさん
2010/04/19(月) 21:54:59似たようなのは既に作ったなぁ
http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/956.java
罫線を出力させなければ望む結果が出るはず
0644デフォルトの名無しさん
2010/04/19(月) 22:14:32http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/String.html#replaceAll(java.lang.String, java.lang.String)
を利用しようとしています。
引数replacementにバックスラッシュが入っていると、
私の想定と異なる結果になってしまうのですが、
正しくはどのように記述すべきでしょうか。
String str ="置換";
str.replaceAll("換","か\\ん");
→"置か\\ん"となることを想定しているが、"置かん"となってしまう
0645デフォルトの名無しさん
2010/04/19(月) 22:19:36バカでかくなるんだけど、小さくする方法知りませんか?
試用版なんでメーカーには聞けません。
0646デフォルトの名無しさん
2010/04/19(月) 22:23:10購入検討中です、って言えば答えてくれるんじゃないの。
0647デフォルトの名無しさん
2010/04/19(月) 22:24:32System.out.println("置換".replaceAll("換","か\\\\\\\\ん"));
0648デフォルトの名無しさん
2010/04/19(月) 22:27:30"か\\\\\\\\ん"
0649644
2010/04/19(月) 22:44:28Matcher.quoteReplacement
でエスケープすれば良い、ということでした。
regexの方は正規表現なので気をつけないといけないけど
replacementは普通の文字列として考えれば良い、
と思い込んでいました。
0650デフォルトの名無しさん
2010/04/19(月) 23:03:55thx
レコード数をカウンタで回して再配列化するって方法には気がつきませんでした。
ありがとうございました!
0651デフォルトの名無しさん
2010/04/19(月) 23:14:270652デフォルトの名無しさん
2010/04/19(月) 23:27:350653デフォルトの名無しさん
2010/04/19(月) 23:34:05ざっと読んだだけだけど、たぶん文字をバイト配列に変換して、
その長さによって全角文字と半角文字を判別してるよね(違ってたらすまん)。
バイト数を根拠に文字幅を決めてしまってよいものかな?
他に良い方法があるかって言われると思いつかないんだけど。
(強いて言うならFontMetricsを使うことかな。めんどくさそうだけど)
>>642 の言う「出力する」っていうのが
(1)ファイルに書き込む
(2)印刷する
(3)ウィンドウに表示する
このいずれかで良いのであれば、HTMLにしてしまうのが簡単。
標準出力に表示したいのであれば、やっぱり >>643 みたいになるかな。
0654デフォルトの名無しさん
2010/04/20(火) 00:15:57org.apache.commons.lang.StringUtilsのleftPadとかrightPadじゃだめな感じ?
0655デフォルトの名無しさん
2010/04/20(火) 00:18:16ははは…おっしゃる通りで…
>>652さんの通り、学習中の身なので遠回りしてみたかったってのもあったんです
(あと、二次元配列を使ってみたかった)
実装して納得出来たら素直にArrayListを使います。
頭悪い質問に真面目に回答して下さってありがとうございました。
0656643
2010/04/20(火) 00:24:33固定幅フォントじゃないとだめだけど・・・ バイト数=長さでいいはず\t\r\nはシラネ
htmlっていう発想はなかったわw
rightPadでもよさそうだね 事前に文字数数える必要はありそうだけど
だれかcommons翻訳してくれる人いないのかなぁ
機械翻訳でやってみようかなぁ
用途はしらないけど、もしかしたらそのまま\tで出力してエクセルに張り付けてもいいのかもね
0657デフォルトの名無しさん
2010/04/20(火) 03:11:30Java コンパイラはどうやって整合性確認してんの?
0658デフォルトの名無しさん
2010/04/20(火) 03:35:28ClassB classb;
ClassA(){
new ClassB(this);
}
0659デフォルトの名無しさん
2010/04/20(火) 03:37:02ClassB classb;
ClassA(){
classb=new ClassB(this);
}
}
class ClassB {
ClassA classa;
ClassB(ClassA a) {
classa=a;
}
}
0660デフォルトの名無しさん
2010/04/20(火) 03:38:31ClassA() {
ClassB b=new ClassB();
}
}
class ClassB {
ClassB() {
ClassA a=new ClassA();
}
}
0661デフォルトの名無しさん
2010/04/20(火) 04:08:35は?
0662デフォルトの名無しさん
2010/04/20(火) 04:17:12ひ?
0663デフォルトの名無しさん
2010/04/20(火) 06:34:11>(3)ウィンドウに表示する
その方法だとこれみたいにGUIに描画すると半角、全角混ぜると描画したときに揃わないぞ。
0664デフォルトの名無しさん
2010/04/20(火) 07:12:08キミにプログラミングは向いてないよ
0665デフォルトの名無しさん
2010/04/20(火) 07:32:47着眼点はいいんじゃない。C++なんかだとヘッダファイルの定義で判断してるもんね。
Javaだと一つのクラスの定義はclass{}の中におさまってるから、
ヘッダファイルに相当する部分はコンパイラが自動生成できるよ。
importだってCのincludeみたいにただ展開するだけじゃないしね。
0666デフォルトの名無しさん
2010/04/20(火) 09:15:51俺も知らないから興味ある
0667デフォルトの名無しさん
2010/04/20(火) 09:21:40そういう疑問を持ったことがないならキミはプログラマになった気になっているだけだろう。
0668デフォルトの名無しさん
2010/04/20(火) 09:33:00http://java-house.jp/ml/archive/j-h-b/005728.html
0669デフォルトの名無しさん
2010/04/20(火) 09:34:02たとえば、
1パス目:全.javaファイルの型名だけ解析
2パス目:全.javaファイルのメソッドシグニチャを解析
3パス目:全.javaファイルのメソッドの中身を解析
みたいな感じでやっとくとか。
ワンパスで完全な.classファイルを出力し
一度解析した.javaファイルは二度と解析対象にせず、
みたいな無茶な前提がなければどうとでもなるような。
0670デフォルトの名無しさん
2010/04/20(火) 09:40:59効率を無視して良いなら、とりあえず全対象ソースに対して参照しているクラスやシグネチャを
正しいものとしてバイトコード化し、最後にリンク代わりに呼び出し整合性を確認といった
方法がとれる。
0671デフォルトの名無しさん
2010/04/20(火) 10:05:31クラス名とファイル名を一致させるのはこの為なのね
0672デフォルトの名無しさん
2010/04/20(火) 10:07:00これって2chとかのこと?
font指定すればいいんじゃねーの?まあGUIならtable使うが
0673デフォルトの名無しさん
2010/04/20(火) 12:33:58for文の外で定義すべきでしょうか?
0674デフォルトの名無しさん
2010/04/20(火) 14:20:45class TestSuperClass {
TestSuperClass(){}
}
class TestSubClassA extends TestSuperClass {
TestSubClassA() {}
}
class TestSubClassB extends TestSuperClass{
TestSubClassB() {}
}
TestSubClassA a=new TestSubClassA();
TestSuperClass s=a;
TestSubClassB b=s;
コンパイルOK,実行時エラー
という情報をどこかで聞いた
整合性なんて無い
0675デフォルトの名無しさん
2010/04/20(火) 14:23:260676デフォルトの名無しさん
2010/04/20(火) 16:29:41コンパイラ通らないだろ。
0677デフォルトの名無しさん
2010/04/20(火) 17:31:570678デフォルトの名無しさん
2010/04/20(火) 17:38:580679デフォルトの名無しさん
2010/04/20(火) 18:28:48やってみてどれだけ差がでる?
0680デフォルトの名無しさん
2010/04/20(火) 20:24:000681デフォルトの名無しさん
2010/04/20(火) 20:55:200682デフォルトの名無しさん
2010/04/20(火) 22:50:51授業でですか?
独学でですか?
仕事でですか?
0683デフォルトの名無しさん
2010/04/20(火) 22:53:460684デフォルトの名無しさん
2010/04/20(火) 22:57:220685デフォルトの名無しさん
2010/04/21(水) 02:05:22え?
0686デフォルトの名無しさん
2010/04/21(水) 03:56:48その後、変数名.add(型.メソッド());のようにすることって可能なんですか?
メソッドの戻り値が型に合ってませんとか怒られるけど戻り値がクラスの名前あls;kふぁ;s
0687デフォルトの名無しさん
2010/04/21(水) 06:04:23自分なりにアプリケーションを作ってみようと
簡単ではありますが設計書を書きました。
そこで問題が・・・
当方のアプリケーションにプラグインを実装したいと考えているのですが、
どの本にも実装方法が記されていないばかりか、
「簡単でも良いから教えてください」と、
学校の先生に何度か聞いても
「時間がある時に教えてやる」と言われたまま数ヶ月も経ってしまいました。
普段は学校、アルバイトと、時間が無いので、
ゴールデンウィークから開発に着手したく少し焦っています。
Javaアプリにプラグインを実装するのに良い資料ありませんでしょうか?
もしくはご経験のある方がサンプルを示して頂ければ嬉しい限りです。
よろしくおねがいします。
0688デフォルトの名無しさん
2010/04/21(水) 06:38:25public class Hoge {
public static void main(String[] args) {
ArrayList<String> hogeList = new ArrayList<String>();
hogeList.add("Hoge");
hogeList.add(Hoge.newHageString());
for(String hoge: hogeList){
System.out.println(hoge);
}
}
static String newHageString(){
return new String("Hage");
}
}
これならできるが、こういうことか?
>>687
あんたの指すプラグインがわからない
あんたが作るアプリケーションに後からプラグインという形で拡張できるようにしたいということかな。
(jarファイルかなんかで。)
0689デフォルトの名無しさん
2010/04/21(水) 09:19:10自前のpluginを作りたいならI/F含めて設計して勝手に仕様付けすればいい
>「時間がある時に教えてやる」
は恐らく、その先生とやらが分からないものと考えたほうがいいだろう
生徒の前で分からないとは言えないからなw
0690デフォルトの名無しさん
2010/04/21(水) 09:32:36思い描いているプラグインのシステムに近いものを実装しているアプリケーションで
ソースが公開されているもののソースを眺めれ
eclipseのプラグインとかantの新規タスクの作成と受け入れの部分も一種のプラグインシステムだ
0691デフォルトの名無しさん
2010/04/21(水) 10:48:59「機能の一部を差し替え可能にしたい」のが動機なら、
リフレクションとかデザインパターンの「Strategy」あたりの勉強が必要ではないかと
プラグインの機能によっては「Abstract Factory」まで話が膨らむかもしれないけど
「専用ディレクトリに追加JARをおくとプラグイン一覧が自動更新」とかは
クラスローダの自作も必要になるかなぁ
0692デフォルトの名無しさん
2010/04/21(水) 10:55:44イベントクラス等のイメージで組み込めばいいかと
0693デフォルトの名無しさん
2010/04/21(水) 11:18:05美しいコードとしては外。
理屈としてはループの回数だけスタックに参照(8byte?)を載せ下げするので、その分の付加がかかる。
0694デフォルトの名無しさん
2010/04/21(水) 11:27:31素人だな
美しいのは中だろ、低能
0695デフォルトの名無しさん
2010/04/21(水) 11:39:55変数は使う直前(使う時)に宣言するのがマシンパフォーマンス的には良い
ループの度に変数宣言はクドイから俺なら変数宣言(変数初期化)はループの前(外)かなぁ
ループに入らないパターンがあるならループの前に分岐させて変数初期化してやればクール
ループにならないパターンは変数を読まないからメモリが空くし
ま、分岐で処理時間掛けるかメモリ食わせるかの優先しだい
0696デフォルトの名無しさん
2010/04/21(水) 11:42:000697デフォルトの名無しさん
2010/04/21(水) 11:58:59お前もわかってないだろw
プラグイン用のインターフェースを決める。例えば
interface Plugin{
void execute();
}
プラグインクラスは上記Interfaceをimplする。
プラグインの.classなり.jarなりをクラスパスが通っているところに配置する。
Plugin plugin = Class.forName("プラグインのクラス名").newInstance();
plugin.execute();
でいけるんじゃないか?俺もわかってないけどw
プラグインファイルを置いただけでプラグインの一覧とか表示するなら
Fileクラスつかってプラグインディレクトリを探索したり、定義を決めて
xmlで書かせるなりする必要あるし、自分アプリと連携するなら
アプリからプラグインに連携項目を公開する方法とか決めないと。
そんなものを学生レベルに一から教えるのはとてもめんどくさいから
>「時間がある時に教えてやる」
は嘘ごまかしではない気がする。その後忘れてると思うけど
0698デフォルトの名無しさん
2010/04/21(水) 11:59:24for (int i=0;i<10000;i++) { long k=0L; ... }
long k; for (int i=0;i<10000;i++) { k=0L; ... }
int i; long k; for (i=0;i<10000;i++) { k=0L; ... }
long k; for (int i=0;(i<10000)&&((k=0L)==0L);i++) { ... }
int i; long k; for (i=0;(i<10000)&&((k=0L)==0L);i++) { ... }
0699デフォルトの名無しさん
2010/04/21(水) 12:00:58もうscriptletでよくね・・・?
0700デフォルトの名無しさん
2010/04/21(水) 12:05:08勘違い先生乙
0701デフォルトの名無しさん
2010/04/21(水) 12:26:04コンパイルエラー
0702デフォルトの名無しさん
2010/04/21(水) 17:54:15> Plugin plugin = Class.forName("プラグインのクラス名").newInstance();
これはどこに書くつもりだ。
0703デフォルトの名無しさん
2010/04/21(水) 18:52:19簡単なコードでjavac, javap -cしてみた結果、
バイトコード上ではどっちも同じになった。
(Oracle(Sun) JDK6)
バイトコード初めて読んだので間違っているかもしれないけど、
ttp://www.ne.jp/asahi/hishidama/home/tech/java/bytecode.html#h2_sample
の例を見ても想像できる通り、
変数の宣言の場所によってパフォーマンスに差が出るようには思えないけれど。
宣言時にはとくに何もしてなくて、
変数への代入時(istore_1とか)に初めて変数ができてる。
ので、>>695の
> 変数は使う直前(使う時)に宣言するのがマシンパフォーマンス的には良い
はjavacがやってくれるんじゃないの、と。
>>693
必要のないところまでスコープ広げるのは美しくない。
0704デフォルトの名無しさん
2010/04/21(水) 21:21:21検証乙です
って事は使わない変数を大量に宣言するだけならマシンパフォーマンスには影響しないんだ?
もし本当なら、すげぇな
0705デフォルトの名無しさん
2010/04/21(水) 22:03:16宣言だけのところにブレイクポイント設定できないだろ?そういうことだとおもうぜ。
0706デフォルトの名無しさん
2010/04/21(水) 22:04:03META-INF/services/
とか使ってる人はいるのだろうか
0707デフォルトの名無しさん
2010/04/21(水) 22:23:00strの内容が、
"aaaa
bbbb"(途中で改行)
ではなく
"aaaa\n\rbbbbb"
がはいった結果になるよう、
str="…………";を記述したいのです。
0708デフォルトの名無しさん
2010/04/21(水) 22:25:430709デフォルトの名無しさん
2010/04/21(水) 22:27:43"\\n\\r"
0710デフォルトの名無しさん
2010/04/21(水) 22:28:53ありがとうございます! 目的の動作ができました。
0711デフォルトの名無しさん
2010/04/21(水) 22:29:26String str = "aaaa\r\nbbbb";
System.out.println(str.replaceAll("\\r\\n", "\\\\r\\\\n"));
0712デフォルトの名無しさん
2010/04/21(水) 22:29:340713711
2010/04/21(水) 22:31:210714デフォルトの名無しさん
2010/04/21(水) 22:36:35http://www.atmarkit.co.jp/fjava/special/struts2/struts2_1.html
のように、Struts2.1の設定をしたいんですが、
メニューのファイル→新規→プロジェクトと選んでも
Webという選択肢がありません。
この場合、どれを選べばいいんですか?
Tomcatプロジェクトですか?
0715714
2010/04/21(水) 22:40:31http://imagepot.net/view/127184317270.jpg
0716デフォルトの名無しさん
2010/04/21(水) 22:42:58手元に3.2が無いから正確な回答はできないけど、たぶんそれでOK
…というか、おとなしく最新版使えば?
0717デフォルトの名無しさん
2010/04/21(水) 22:47:49!そういうことですか…
0718714
2010/04/21(水) 22:49:40ありがとうございます。
話せば長くて壮大な話になるんですけど
http://pc12.2ch.net/test/read.cgi/tech/1265820185/257-265
にあるように、いろいろな問題が発生して最新版が使えませんでした。
今のところ、最も安定しているのがこの3.2のようです。
本当は最新版が使いたいんですけどね・・・
0719デフォルトの名無しさん
2010/04/21(水) 23:16:270720デフォルトの名無しさん
2010/04/21(水) 23:25:02よくわかんないけど、Pleiadesつかえばいいんじゃね?
正直、アナタのeclipseにどんなプラグインがはいっているのかわからないから、
なんともいえないんだわ。
0721デフォルトの名無しさん
2010/04/21(水) 23:33:560722デフォルトの名無しさん
2010/04/21(水) 23:37:43/**
* jar ファイルにあるパッケージとクラスを列挙します。
*/
public class JarAnalyzer {
// 内部クラスはとっぱらってしまった (-> \\$)
static Pattern pat = Pattern.compile("((?:[^/]*/)*)([^\\.\\$]*)(\\.[^\\.]*)");
Map<String,TreeSet<String>> pkgs = new TreeMap<String, TreeSet<String>>();
/** jarファイルを解析します。
* @param jarfile jar ファイル
* @throws IOException
*/
public JarAnalyzer(File jarfile) throws IOException {
if (!jarfile.exists()) {
throw new FileNotFoundException();
}
0723デフォルトの名無しさん
2010/04/21(水) 23:37:59// 内部解析
JarFile jar = new JarFile(jarfile);
Enumeration<JarEntry> e = jar.entries();
while (e.hasMoreElements()) {
JarEntry ent = e.nextElement();
// パスからパッケージとクラスを判断
Matcher mat = pat.matcher(ent.getName());
if (mat.matches() && ".class".equals(mat.group(3))) {
// パッケージ名
String pkg = mat.group(1).replace("/", ".");
pkg = pkg.substring(0, pkg.length()-1);
if (! pkgs.containsKey(pkg)) {
pkgs.put(pkg, new TreeSet<String>());
}
// クラス名
String cls = mat.group(2);
if (! "".equals(cls)) {
pkgs.get(pkg).add(cls);
}
}
}
jar.close();
0724デフォルトの名無しさん
2010/04/21(水) 23:38:14// 余分なエントリは除去
LinkedList<String> empties = new LinkedList<String>();
for (String name : pkgs.keySet()) {
Set<String> ent = pkgs.get(name);
if (ent.size()==0) {
empties.add(name);
}
}
for (String name : empties) {
pkgs.remove(name);
}
}
0725デフォルトの名無しさん
2010/04/21(水) 23:38:27/** パッケージ名の一覧を返します。
* @return パッケージ名の一覧
*/
public Set<String> getPackageNames() {
return Collections.unmodifiableSet(pkgs.keySet());
}
/** クラス名の一覧を返します。
* @param packagename パッケージ名
* @return クラス名の一覧
*/
public Set<String> getClassNames(String packagename) {
if (! pkgs.containsKey(packagename)) {
return Collections.unmodifiableSet(new TreeSet<String>());
}
return Collections.unmodifiableSet(pkgs.get(packagename));
}
}
0726デフォルトの名無しさん
2010/04/21(水) 23:39:05public class Test {
public static void main(String[] args) throws IOException {
File f = new File("C:\\install\\commons-io-1.4-bin\\commons-io-1.4\\commons-io-1.4.jar");
JarAnalyzer ja = new JarAnalyzer(f);
for (String p : ja.getPackageNames()) {
System.out.println("[" + p + "]");
for (String c : ja.getClassNames(p)) {
System.out.print("\t");
System.out.println(c);
}
}
}
}
0727デフォルトの名無しさん
2010/04/22(木) 00:22:45便所の落書きにしては長いのでup
System.out.println時に標準出力&ファイルへ同時出力
printlnしたソースの行等を左側に出力
commons 特にlang CLI Collections Mathみたいな汎用ライブラリ?あれば教えてください
後知ってるのは Uncommons Math、google collectぐらい・・・
0728デフォルトの名無しさん
2010/04/22(木) 00:26:38プラグインで拡張できるJavaプログラムを作る
http://codezine.jp/article/detail/1271
0729デフォルトの名無しさん
2010/04/22(木) 01:53:10そういう細かいのってあるとしたらcommonsだろうなあ、と思いましたけどなさそうですね。
というか普通はlogging-apiとかlog4jみたいなのを使うと思うんですが。
0730デフォルトの名無しさん
2010/04/22(木) 02:10:39まああくまでログというより実験コード用に便利かなと
標準出力=sysoutっていうのが頭の中にはいっちゃってるし、println(i) println(j)みたいなのをいちいちprintln("i="+i)って書かなくて済むような
0731デフォルトの名無しさん
2010/04/22(木) 06:33:25ここのRSSのPR記事のエントリーがROMEで取得できないんだが何故?
0732デフォルトの名無しさん
2010/04/22(木) 07:39:300733デフォルトの名無しさん
2010/04/22(木) 09:21:46で、いつも思うんですが
何で下記の様に指定する事が出来ないんでしょうか?
import java.*
とか
import java.*.*
java.以降は必ず1つは指定しなければならないって仕様なんですかね?
0734デフォルトの名無しさん
2010/04/22(木) 09:41:52それ名前が衝突しまくるので逆に不便じゃね
0735デフォルトの名無しさん
2010/04/22(木) 10:16:35Java の API マニュアルのクラス一覧とか上から見ると、
Annotation で早くも二つ連続して並んでないか?
0736デフォルトの名無しさん
2010/04/22(木) 10:32:35Packageクラス使えば文字列に正規表現かける必要なかった気がする。
0737デフォルトの名無しさん
2010/04/22(木) 11:58:37パッケージはディレクトリじゃないよ
ツリー状になってない
例えば
java.langパッケージと
java.lang.annotationパッケージは
親子関係になってない
0738733
2010/04/22(木) 12:37:06なるほど
ディレクトリ構造っぽい表記が出来るのにバッティングしてしまうんですね
一々importを書くのが面倒だけど、仕方ないのかぁ
少し前のレスに変数の宣言はメモリパフォーマンスに影響しないってのがあったけど
このimportも「*」で指定するより直で指定した方がパフォーマンスいいんですかね?
0739デフォルトの名無しさん
2010/04/22(木) 13:09:56今はIDEが補完するからimportを面倒なんて思っている人はかなり少ないと思う。
Eclipse使ってるならCtrl+Sfhit+Oを押すだけだよ。
あとコンパイル時に参照するだけだからパフォーマンスには影響しないよ
0740デフォルトの名無しさん
2010/04/22(木) 17:46:00>Eclipse使ってるならCtrl+Sfhit+Oを押すだけだよ
こんな便利機能があったとは…
マジでありがとうございました
0741デフォルトの名無しさん
2010/04/22(木) 21:40:36>>728さん
プラグインの実装、ずばり!理解できました。
開発には時間が掛かるかも知れませんが、
納得行くものが出来たら公開する予定です!
本当にありがとうございました。
0742デフォルトの名無しさん
2010/04/22(木) 21:58:06ちなみにimport staticは、
該当の部分を選択して、Ctrl+Sfhit+Mな。
0743デフォルトの名無しさん
2010/04/22(木) 22:40:19これで簡単なコンソールアプリをリンク(コンパイル)すると普通に
成功してリンクしたマシンでは実行できるのですが、
このアプリを他のJDKもgcjもインストールしていないマシンで実行
しようとすると、libgcj.so.80が見つかりませんというエラーが出て
動きません。libgcj.so.80を含めてリンクするにはどうしたらいいんでしょうか?
0744714
2010/04/22(木) 22:45:54>WTP
>Pleiades
なるほど、その辺です、きっと!
後は自分で調べます!
ありがとうございました!
これから半年ROMります!
0745デフォルトの名無しさん
2010/04/22(木) 23:28:47なんかJRE、Eclipseの入手〜Struts2の設定〜HelloWorldを作るところまで書いてるの見つけたよ。
http://www.mlexp.com/wiki/?Eclipse%20%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB
まぁここJavaの質問スレだから、あとは自分でやってくれ。
0746デフォルトの名無しさん
2010/04/22(木) 23:43:48map.put("a", aClass);
map.put("b", bClass);
map.put("c", cClass);
こんな感じで設定されているんですがこれからキーと値の対応を維持しつつ
キーと値(入れたときのクラス(Objectクラスじゃない))を別に取り出したいんですがうまい方法ありませんか?
ちなみに値のクラスはいろいろ入ってくるという想定です
0747デフォルトの名無しさん
2010/04/22(木) 23:56:15http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Class.html
getSimpleName()
でなんとかならないかな?
0748デフォルトの名無しさん
2010/04/23(金) 00:11:270749デフォルトの名無しさん
2010/04/23(金) 00:15:07for(Object obj: map.values){
@SuppressWarning("unchecked")
Class<?> clazz = (Class<?>)obj;
...
}
0750746
2010/04/23(金) 00:56:04AClass aClass = new AClass();
BClass bClass = new BClass();
CClass cClass = new CClass();
・・・
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("a", aClass);
map.put("b", bClass);
map.put("c", cClass);
aClass,bClass,cClassはそれぞれ別クラスのインスタンスです。
なので
>Class<?> clazz = (Class<?>)obj;
ここでうまく元のクラスに合うようにしたいのです
こういうかき方はできないんですがやりたいこととしては
aClass.getClass() clazza = (aClass.getClass())obj
bClass.getClass() clazzb = (bClass.getClass())obj
こんな感じで動的にクラスを変更して取り出したい
0751デフォルトの名無しさん
2010/04/23(金) 01:14:030752デフォルトの名無しさん
2010/04/23(金) 01:16:12MyClass myInstance = (MyClass)clazz.newInstance();
0753デフォルトの名無しさん
2010/04/23(金) 01:37:130754デフォルトの名無しさん
2010/04/23(金) 02:43:58aClass.getClass() clazza = (aClass.getClass())obj
bClass.getClass() clazzb = (bClass.getClass())obj
をやったあとに何がやりたいの?
clazzaとclazzbが無関係だとメソッドも呼べないし
意味ないんじゃない?
そうしなきゃならない必然性がわからん
0755デフォルトの名無しさん
2010/04/23(金) 02:58:40これで良いんじゃないの
0756デフォルトの名無しさん
2010/04/23(金) 03:18:55こういうプログラムは必ずこういう風にしなければならないと勘違いしているタイプとか?
0757デフォルトの名無しさん
2010/04/23(金) 03:29:31せめてインタフェースを作る気がする
0758デフォルトの名無しさん
2010/04/23(金) 03:50:150759デフォルトの名無しさん
2010/04/23(金) 04:01:04SwingQueueがイベントをクラスで持ってなかったっけ?
どっちにしろインターフェイス実装されてるんだが。
0761デフォルトの名無しさん
2010/04/23(金) 14:52:42Stringクラスのreplacメゾットを用いて、キーボードから入力した文字列のaをすべてbに置き換える。
この2つのプログラムを知りたいんだが・・・
0762デフォルトの名無しさん
2010/04/23(金) 15:14:100763デフォルトの名無しさん
2010/04/23(金) 18:21:540764デフォルトの名無しさん
2010/04/23(金) 18:24:540765デフォルトの名無しさん
2010/04/23(金) 18:28:27JSF1+Faceletsなサイトはいくつか見かけたのですが、JSFの予備知識無しに
1からJSF2のやろうとするとどこから手をつけたらいいのか和からなくて。
jsf-2.0.jarとかをおいてWebContents配下にhtmlファイルを置いたら、
ブラウザでそのhtmlにアクセスするとテンプレートとして機能するのでしょうか?
サンプルサイトみてもブラウザのURL欄になに入れたらいいか書いてないし
0766デフォルトの名無しさん
2010/04/23(金) 19:16:01プログラム自体は一応やったことがありますが、オブジェクト指向というのはよくわかりません。
また物理演算の結果表示のために、グラフィカルな表示が必要になります。
そのため、オブジェクト指向とグラフィックスの2つを勉強できるサイトや本があれば教えてください。
それぞれ別サイトで構いませんのでよろしくお願いします。
0767デフォルトの名無しさん
2010/04/23(金) 20:55:27ちょっと待っててください
支配下の回答者を呼んできて答えさせますから
次レスで答えるはずです
0768デフォルトの名無しさん
2010/04/23(金) 21:12:47void hoge() {
System.out.println("Base");
}
}
class Derived extends Base {
void hoge() {
System.out.println("Derived");
}
}
class Derived2 extends Derived {
void hoge() {
   super.hoge(); // Derived::hoge();
System.out.println("Derived2");
}
}
このプログラムで,Derived2 の hoge から super.hoge() とすることで Derived の hoge()
を呼び出すことができたのですが,Base の hoge を呼び出すにはどうすればよいでしょうか?
試しに super.super.hoge() としてみましたがダメでした.
0769デフォルトの名無しさん
2010/04/23(金) 21:15:570770デフォルトの名無しさん
2010/04/23(金) 21:25:170771デフォルトの名無しさん
2010/04/23(金) 22:06:090772デフォルトの名無しさん
2010/04/23(金) 22:16:46それともパッケージ名を管理する団体に登録申請などをする必要があるのでしょうか?
0773デフォルトの名無しさん
2010/04/23(金) 22:18:27え?そうなの?
漏れもできないと思ってたけどどうやるの?
0774デフォルトの名無しさん
2010/04/23(金) 22:37:11支配下の回答者さんはまだでしょうか?
0775デフォルトの名無しさん
2010/04/23(金) 22:58:39http://wisdom.sakura.ne.jp/programming/java/java24.html
できない
0776デフォルトの名無しさん
2010/04/23(金) 23:29:49インターネットのドメイン名をパッケージ名にするんだっけ?
http://commons.apache.org/ → org.apache.commons
今でもそのルールって一般的?
0777デフォルトの名無しさん
2010/04/23(金) 23:41:58jpから始めるのは変
日本政府製である場合以外はね
0778け ◆eF0q2czoxk
2010/04/23(金) 23:42:45で出来ないかなーと思ったが、
「基本となるメソッドがインスタンスメソッドの場合、動的メソッドルックアップを使用して呼び出しが行われ、ターゲットオブジェクトの実行時の型に基づいてオーバーライドが実行されます (『Java 言語仕様、第 2 版』のセクション 15.12.4.4 を参照)。」
でオーバーライドされてもうた。
0779デフォルトの名無しさん
2010/04/23(金) 23:42:51なんで?
0780デフォルトの名無しさん
2010/04/23(金) 23:43:070781デフォルトの名無しさん
2010/04/23(金) 23:51:28だな
jpパッケージのクラスを日本中で共同使用するわけじゃないんだし
jp.co.can○nとかjp.co.s○nyとか恥ずかしいぞ
0782デフォルトの名無しさん
2010/04/23(金) 23:58:170783デフォルトの名無しさん
2010/04/24(土) 00:09:090784デフォルトの名無しさん
2010/04/24(土) 00:20:510785デフォルトの名無しさん
2010/04/24(土) 00:25:22共同使用ってなんだ?
パッケージはツリー構造じゃないからjpを日本中で共有することにはならんよ。
一部上場のjpTLD企業にいくつか入ったことがありますが、
jp始まりの内作ソフトウェアは結構作られていますよ。
0786デフォルトの名無しさん
2010/04/24(土) 00:27:360787デフォルトの名無しさん
2010/04/24(土) 00:28:10>jp始まりの内作ソフトウェアは結構作られていますよ。
知ってるよ
アホなとこばっかりだwww
0788デフォルトの名無しさん
2010/04/24(土) 00:36:040789デフォルトの名無しさん
2010/04/24(土) 00:41:110790デフォルトの名無しさん
2010/04/24(土) 01:00:56jpで始まるのがかっこ悪いとか言ってるのはただの無知。
自分トコのドメインがexample.jpならjp.example.project...とするべき
0791デフォルトの名無しさん
2010/04/24(土) 01:17:46本気だとしたら唯の馬鹿だから無視しといたほうがいい
0792デフォルトの名無しさん
2010/04/24(土) 01:34:08>>791 を「ゆいのばか」と読んでしまった
0793デフォルトの名無しさん
2010/04/24(土) 03:09:010794デフォルトの名無しさん
2010/04/24(土) 06:56:47おそらくホームページビルダーは対応していないと思うし、
ECLIPSEとかが無難でしょうか?
(慣れた人だとテキストエディタで十分だと思いますが、
初心者なんでデバッグ機能が付いているほうがいいので)
0795デフォルトの名無しさん
2010/04/24(土) 07:27:20特に処理に関してなにが違うのでしょうか?
0796デフォルトの名無しさん
2010/04/24(土) 08:00:21Objectにしてキャストするしか無いですか?
class Punko<E>
{
void punkoMethod ( Object owner , String func , E Param )
{
try
{
owner.getClass().getMethod( func , E.class ) ;
} catch ( Exception e ){}
}
}
0797デフォルトの名無しさん
2010/04/24(土) 08:55:37それで事が済むんじゃないの? 1時間本を読ん
だらしまいだろ。 カスタムタグとか、いじくりまわしても
そんなの使う場なんてあるの??
0798デフォルトの名無しさん
2010/04/24(土) 09:16:01本気で全板の2getだけ表示するソフト組むとか言ってるから
無視しといたほうがいい。
0799デフォルトの名無しさん
2010/04/24(土) 10:32:14シェアが大差付けられているという点に目をつぶるなら、ビジュアルでGUI開発
できるNetBeansを試してみるのも悪くないかと思う。
Sun提供の公式な開発環境でもあるし。
0800デフォルトの名無しさん
2010/04/24(土) 10:38:45相手にするな
0801デフォルトの名無しさん
2010/04/24(土) 11:43:32なにがしたいのかわからんが
param.getClass()にすれば?
0802デフォルトの名無しさん
2010/04/24(土) 12:33:55サーバサイドJavaと言った場合、JavaEEのことだと書いてあるのに、
環境設定する際にJavaSEを落とすよう言われEEは落とさないみたいなんですが
EEがなくてもJSPやサーブレットの勉強って出来るものなんでしょうか?
0803デフォルトの名無しさん
2010/04/24(土) 13:43:070804デフォルトの名無しさん
2010/04/24(土) 13:54:390805デフォルトの名無しさん
2010/04/24(土) 14:05:21操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
↑これは何が原因だ?
0806デフォルトの名無しさん
2010/04/24(土) 14:07:28変換しないのは何が原因だ?
お前ら教えろ!
脳みそが有ったらな。
0807デフォルトの名無しさん
2010/04/24(土) 14:11:54Netビーンを試したいのですが、Oracleのページからダウンロードできるものでもいいでしょうか?
0808デフォルトの名無しさん
2010/04/24(土) 14:13:23変換を命令してないからじゃないのか?
0809デフォルトの名無しさん
2010/04/24(土) 15:58:13SunがOracleに買収されたのでそれ。
初心者ならネットに日本語情報がいっぱい転がってるEclipse、
日本語化&Web開発etcのプラグインが入ったPleiadesのAll-in-one Eclipseって
やつがおすすめ。NetBeansも今のは大分よさそうだけどね。
慣れた人ほどテキストエディタでやる人はいない(細かい修正を除いて)。
IDEの機能を使えばいろいろ楽ができるから。
>>795
Javaはコンパイル後Java VMという仮想マシン内で実行される。
PHPはインタープリターというやつが呼び出しの度に逐次コンパイルして
実行される。だからメモリにキャッシュしてとかDBコネクションプール利用とか
のJavaで当たり前の技術もPHPでは別途サーバーを立てないと無理、
とかいろいろ違う。
>>797
普通はjspスクリプトレットを書かない(jspファイルにはコードを一切書かない)ので
カスタムタグがないと死ねる。jspファイルからDBに接続するようなPHPみたいな
サンプルを鵜呑みにしないこと
>>802
J2SEでいい。servlet APIはJ2EEの一部だけどtomcatとかに入ってるからそれで。
0810デフォルトの名無しさん
2010/04/24(土) 19:22:35パスが通ってないんじゃないの
0811デフォルトの名無しさん
2010/04/24(土) 20:23:40なんで?
0812デフォルトの名無しさん
2010/04/24(土) 20:27:36ごめん、特に他意はなく純粋な質問なんだけど。
俺NetBeansがダウンロードできるのって
http://java.sun.com/javase/downloads/index.jsp
のJDKバンドル版か
http://netbeans.org/downloads/index.html?pagelang=ja
しか知らないんだけど、Oracleのサイトでもダウンロードできるページがあるの?
あるいは1つめのページのこと?
0813デフォルトの名無しさん
2010/04/24(土) 22:21:42All-in-one Eclipseはイマイチだぞ
EEじゃない
0814813
2010/04/24(土) 22:30:040815デフォルトの名無しさん
2010/04/24(土) 23:12:56jdkは32bit用と64bit用どちらがいいのでしょうか?
(32bit用ならProgram Files(x86)、64bit用ならProgram Filesにインストールですよね?)
あと、Tomcatをインストーラからインストールしようとすると、
64bit用のフォルダにインストールになるみたいなんですが、
jdkとTomcatは同じに揃えなければならないのでしょうか?
(jdkは32bit、Tomcatは64bitとかはマズいでしょうか?)
0816デフォルトの名無しさん
2010/04/24(土) 23:13:04どおもおかしいぞ。
0817デフォルトの名無しさん
2010/04/24(土) 23:26:18ん?JSPの練習にEJB関係ないでしょ。
あとまさかとは思うけど、PleiadesのAll-in-oneをAll-In-One ProjectのEclipseと勘違いしていない?
0818デフォルトの名無しさん
2010/04/24(土) 23:29:290819デフォルトの名無しさん
2010/04/24(土) 23:50:48勘違いしてた、PleiadesのAll-in-oneのはEEなんだ
Pleiades重いけどな
0820デフォルトの名無しさん
2010/04/25(日) 01:42:143に期待だな。
0821デフォルトの名無しさん
2010/04/25(日) 01:44:410822デフォルトの名無しさん
2010/04/25(日) 01:56:250823デフォルトの名無しさん
2010/04/25(日) 02:48:39君はプロ版の糞
0824デフォルトの名無しさん
2010/04/25(日) 02:51:49途中で消えてスタートしません。
start serviceが押せてstop serviceは押せない状態。
原因が分かる方いますか?
0825デフォルトの名無しさん
2010/04/25(日) 02:56:008080ポート使ってるとかじゃないのか。
0826デフォルトの名無しさん
2010/04/25(日) 03:00:33not foundってなってるからこれが原因かなぁ・・・。
0827デフォルトの名無しさん
2010/04/25(日) 03:01:220828デフォルトの名無しさん
2010/04/25(日) 03:01:47start serviceしないんですがそれでも8080の問題ってことはありますか?
0829デフォルトの名無しさん
2010/04/25(日) 03:13:51OSが64bitだったりVistaや7だとありがち
0830デフォルトの名無しさん
2010/04/25(日) 03:15:14どうすればいいんでしょうか?
0831デフォルトの名無しさん
2010/04/25(日) 03:18:410832デフォルトの名無しさん
2010/04/25(日) 03:24:40インストーラは32か64かを選択する機会を与えてくれませんでした。
どうすれば32の方でインストールできますか?
0833デフォルトの名無しさん
2010/04/25(日) 03:28:590834デフォルトの名無しさん
2010/04/25(日) 03:29:11探してなければ本についてる奴とかを使う
0835デフォルトの名無しさん
2010/04/25(日) 03:40:582010/04/25 3:26:39 org.apache.catalina.core.AprLifecycleListener init
情報: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:
C:\Program Files (x86)\Apache Software Foundation\Tomcat 6.0\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Windows\system32;
C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\WIDCOMM\Bluetooth Software\;
C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files (x86)\Common Files\Roxio Shared\10.0\DLLShared\;
C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Java\jdk1.6.0_17\bin;C:\Program Files\MySQL\MySQL Server 5.5\bin;
C:\Program Files (x86)\Apache Software Foundation\apache-ant-1.7.1\bin;C:\Program Files (x86)\QuickTime\QTSystem\;
2010/04/25 3:26:39 org.apache.coyote.http11.Http11Protocol init
情報: Coyote HTTP/1.1を http-8080 で初期化します
2010/04/25 3:26:39 org.apache.catalina.startup.Catalina load
情報: Initialization processed in 1491 ms
2010/04/25 3:26:39 org.apache.catalina.core.StandardService start
情報: サービス Catalina を起動します
2010/04/25 3:26:39 org.apache.catalina.core.StandardEngine start
情報: Starting Servlet Engine: Apache Tomcat/6.0.20
2010/04/25 3:26:47 org.apache.coyote.http11.Http11Protocol start
情報: Coyote HTTP/1.1を http-8080 で起動します
2010/04/25 3:26:47 org.apache.jk.common.ChannelSocket init
情報: JK: ajp13 listening on /0.0.0.0:8009
2010/04/25 3:26:47 org.apache.jk.server.JkMain start
情報: Jk running ID=0 time=0/54 config=null
2010/04/25 3:26:47 org.apache.catalina.startup.Catalina start
情報: Server startup in 8402 ms
0836デフォルトの名無しさん
2010/04/25(日) 03:43:52致命的: ********** FATAL ERROR STARTING UP STRUTS-SPRING INTEGRATION **********
Looks like the Spring listener was not configured for your web app!
Nothing will work until WebApplicationContextUtils returns a valid ApplicationContext.
You might need to add the following to web.xml:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
検索してみると、このエラーが出たときはSpringプラグインを外せばいいようなことは分かったんですが
具体的にSpringプラグインって「どこにあって」「どう外せば」いいんですか?
Eclipse3.5のヘルプの新規ソフトウェアのインストール…というところに
「すでにインストールされている のは?」というリンクがあって
そこに入っているプラグインが全部表示されるんですけど
「スプリング」や「Spring」という名前のプラグインは見当たりません
0837デフォルトの名無しさん
2010/04/25(日) 05:10:58私には分かりません。
まず、最初のエラーメッセージはどこで出力されましたのか分かりません。
メッセージの内容から、Servlet(のSpringライブラリ)起動時のエラーメッセージであり、
Eclipse(のSpringプラグイン)のエラーとは無関係ではないかと思っています。
次に、「(Eclipseの)Springプラグインを外せばいいようなことは分かった」経緯が分かりません。
検索した際のキーワードや、原因が「Springプラグイン」だと判断できたURLは明記して欲しいです。
あと、開発環境(ディストリビューションや追加したプラグイン)、
実行環境(APサーバ名、Java/Servletのバージョン)
ソースコードで使用しているライブラリや
Springライブラリ・プラグインを使用した経緯などを具体的に記述すれば、
誰かが答えてくれるかもしれません。
0838デフォルトの名無しさん
2010/04/25(日) 07:30:210839デフォルトの名無しさん
2010/04/25(日) 10:45:330840デフォルトの名無しさん
2010/04/25(日) 14:07:380841デフォルトの名無しさん
2010/04/25(日) 14:53:120842デフォルトの名無しさん
2010/04/25(日) 14:55:270843デフォルトの名無しさん
2010/04/25(日) 15:52:23File f = new File("C:\\usr\\Java\\commons-io-1.4.jar");
if (!f.exists()) {
throw new FileNotFoundException(f.getCanonicalPath());
} else {
System.out.println(f.getCanonicalPath());
}
// URL url = new URL("file://" + f.getCanonicalPath());
URL url = new URL("jar:file://" + f.getCanonicalPath() + "!/");
URLClassLoader lo = URLClassLoader.newInstance(new URL[] { url });
String classname = "org.apache.commons.io.CopyUtils";
try {
System.out.print(classname);
Class<?> c = lo.loadClass(classname);
System.out.println(" is found");
} catch (ClassNotFoundException e) {
System.out.println(" is not found");
e.printStackTrace(System.out);
}
}
の結果が
C:\usr\Java\commons-io-1.4.jar
org.apache.commons.io.CopyUtils is not found
java.lang.ClassNotFoundException: org.apache.commons.io.CopyUtils
以下省略
になってしまうのですが、どこを間違えているのかわかりません。教えてください。
Jarを解凍して確認してみましたが、
2008/01/17 03:14 2,933 CopyUtils.class
と存在しています。
0844デフォルトの名無しさん
2010/04/25(日) 17:22:07一つめのサイトはデザイン的に「Oracleのサイト」という言い方をされても仕方ないと思うが。
>>813
J2EEとSEの違いとEJBの関連がわかってたらそんな発言は出てこないと思うのだが
EJB使いたきゃJBoss Seam使えば?EJB3.1はいいらしいよ。
もっと軽くもっと簡単にやったほうがいいと思うけど
0845デフォルトの名無しさん
2010/04/25(日) 17:24:350846デフォルトの名無しさん
2010/04/25(日) 17:37:59URL url = new URL("jar:file://" + f.getCanonicalPath().replace('\\','/') + "!/");
System.out.println(url.toString());
としてやってみた。
C:\usr\Java\commons-io-1.4.jar
jar:file://C:/usr/Java/commons-io-1.4.jar!/
org.apache.commons.io.CopyUtils is not found
java.lang.ClassNotFoundException: org.apache.commons.io.CopyUtils
と変わらず。
URL url = new URL("file://" + f.getCanonicalPath().replace('\\','/'));
// URL url = new URL("jar:file://" + f.getCanonicalPath().replace('\\','/') + "!/");
とfile:形式でも試してみる。
C:\usr\Java\commons-io-1.4.jar
file://C:/usr/Java/commons-io-1.4.jar
org.apache.commons.io.CopyUtils is not found
java.lang.ClassNotFoundException: org.apache.commons.io.CopyUtils
と変わらず。
0847デフォルトの名無しさん
2010/04/25(日) 17:40:480848デフォルトの名無しさん
2010/04/25(日) 18:09:550849デフォルトの名無しさん
2010/04/25(日) 18:15:05あっ
C:\usr\Java\commons-io-1.4.jar
file:/C:/usr/Java/commons-io-1.4.jar
org/apache/commons/io/CopyUtils.class
jar:file:/C:/usr/Java/commons-io-1.4.jar!/org/apache/commons/io/CopyUtils.class
org.apache.commons.io.CopyUtils is found
ということは file: の後ろの / は一個!?
URL url = new URL("file:/" + f.getCanonicalPath().replace('\\','/'));
で試してみると。
C:\usr\Java\commons-io-1.4.jar
file:/C:/usr/Java/commons-io-1.4.jar
org/apache/commons/io/CopyUtils.class
jar:file:/C:/usr/Java/commons-io-1.4.jar!/org/apache/commons/io/CopyUtils.class
org.apache.commons.io.CopyUtils is found
と通りました。
0850836
2010/04/25(日) 18:47:30情報が足りなくてすみませんでした
>最初のエラーメッセージはどこで
Tomcat起動時のエラーメッセージです
>「(Eclipseの)Springプラグインを外せばいいようなことは分かった」経緯
http://old.nabble.com/Spring-Error-without-Spring-td21418471.html
>If the Spring plugin is on the classpath, S2 will attempt to use it.
和訳)クラスパス上にSpringのプラグインがあれば、Struts2はそれを使おうとする
>when i copied the jars from the new distribution download i copied some
plug-ins that caused these errors. the plugins are removed and
everything is fine now.
和訳)私は新しいディストリのjarからコピーするときに
幾つかのプラグインをコピーしてしまって、それがエラーを起こしていたようだ
それらのプラグインは外されたので今はすべて正常に機能している
OS: WindowsVista
環境: Eclipse3.5 + Pleidas
追加したプラグイン:
ライブラリ: struts-2.0.14-lib.zipのうち、
freemarker-2.3.8.jar commons-logging-1.0.4.jar struts2-core-2.0.14.jar xwork-2.0.7.jar ognl-2.6.11.jar の5つ
apache2.2 & apache-tomcat-6.0.26
Springライブラリ・プラグインの設定については
現在読んでいる本の付いているCD-ROMのwarファイルに含まれているようでして
自分で意図的に設定したわけではありません
追記ですが、エラーを辿るとxwork-2.0.7.jarの中に
public class SpringObjectFactory extends ObjectFactory
というのがあって、そこからエラーが発生しているように見えます
↓にエラーの内容を貼っておきます 必要であれば補足します
0851836
2010/04/25(日) 18:52:24情報: Coyote HTTP/1.1を http-8080 で初期化します
2010/04/25 18:36:29 org.apache.catalina.startup.Catalina load
情報: Initialization processed in 897 ms
2010/04/25 18:36:30 org.apache.catalina.core.StandardService start
情報: サービス Catalina を起動します
2010/04/25 18:36:30 org.apache.catalina.core.StandardEngine start
情報: Starting Servlet Engine: Apache Tomcat/6.0.26
2010/04/25 18:36:31 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
情報: Parsing configuration file [struts-default.xml]
2010/04/25 18:36:31 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
情報: Parsing configuration file [struts-plugin.xml]
2010/04/25 18:36:31 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
情報: Parsing configuration file [struts.xml]
2010/04/25 18:36:31 org.apache.struts2.config.Settings getLocale
警告: Settings: Could not parse struts.locale setting, substituting default VM locale
2010/04/25 18:36:31 org.apache.struts2.spring.StrutsSpringObjectFactory <init>
情報: Initializing Struts-Spring integration...
2010/04/25 18:36:31 org.apache.struts2.spring.StrutsSpringObjectFactory <init>
致命的: ********** FATAL ERROR STARTING UP STRUTS-SPRING INTEGRATION **********
Looks like the Spring listener was not configured for your web app!
Nothing will work until WebApplicationContextUtils returns a valid ApplicationContext.
You might need to add the following to web.xml:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2010/04/25 18:36:31 org.apache.catalina.core.StandardContext filterStart
致命的: フィルタ struts の起動中の例外です
0852836
2010/04/25(日) 18:56:28at com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:189)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyResultType(XmlConfigurationProvider.java:479)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addResultTypes(XmlConfigurationProvider.java:450)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:407)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:239)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:152)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452)
at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:205)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3838)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4488)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
0853836
2010/04/25(日) 19:12:010854デフォルトの名無しさん
2010/04/25(日) 20:09:01SwingならSun(Oracle)本家。
http://java.sun.com/docs/books/tutorial/uiswing/
研究用のプログラムで自分1人しか触らないのなら、
オブジェクト指向については必要だと感じてから勉強してもいいんじゃないかなあ。
0855デフォルトの名無しさん
2010/04/25(日) 20:23:59http://www.unkar.org/read/pc12.2ch.net/tech/1253197333/1263031297
の690あたりを参照。
0856デフォルトの名無しさん
2010/04/25(日) 21:09:53それだと、EclipseのViewにJava EEがないじゃん
0857856
2010/04/25(日) 21:11:250858デフォルトの名無しさん
2010/04/25(日) 21:37:15具体的には、任意の型が、型パラメータとした型のサブクラスかどうかを総称
クラスの中でフィルタリングしたいという用途です。
フィルタしたクラスオブジェクトをコレクションとして取り出すため総称型を
使いたいと考えています。しかし、型パラメータのクラスを特定出来ないので
フィルタできないでいます。
http://www.ibm.com/developerworks/jp/java/library/j-djc03113/
は、型パラメータは消去されて上位の型として扱われてしまう(超訳)という
解釈ですが、だとすると、実行時に別途クラスオブジェクトを渡してやらないと、
駄目ということでしょうか。
class xxxx<T>
とクラス定義して
Class<? extends T> t = (Class<? extends T>)c;
とやっても型消去のせいか、確かに ClassCastException は起こりませんでした。
今は総称型は使わないでコンストラクタに Class<?> superc とクラスを渡して、
Class<?> t = c.asSubclass(superc);
を実行して ClassCastException が起こるかどうかでフィルタしています。
0859デフォルトの名無しさん
2010/04/25(日) 22:08:21http://ideone.com/k8YV0
http://ideone.com/D8tJF
というユーティリティ作って
package myPlugin;
public interface myPlugin {
public String getString();
}
というインタフェースで
import myPlugin.myPlugin;
public class Plugin implements myPlugin {
public String getString() {
return "called Plugin#getString()";
}
}
と
package plug;
import myPlugin.myPlugin;
public class Plugin implements myPlugin {
public String getString() {
return "called plug.Plugin#getString() in myPluginSample2";
}
}
というプラグイン作って
0860デフォルトの名無しさん
2010/04/25(日) 22:09:03public static void main(String[] args) throws IOException, InstantiationException, IllegalAccessException {
view("../myPluginSample/myPluginSample.jar");
System.gc();
view("../myPluginSample2/myPluginSample2.jar");
}
static void view(String path) throws IOException, InstantiationException, IllegalAccessException {
PluginLoader pl = new PluginLoader(new File(path), myPlugin.class);
for (Class<?> c : pl.getPlugins().values()) {
myPlugin p = (myPlugin)c.newInstance();
System.out.println(p.getString());
}
}
}
と動かしてる。
この http://ideone.com/D8tJF がなんとかならないかなーと。
0861デフォルトの名無しさん
2010/04/25(日) 22:12:29http://code.google.com/intl/ja/apis/gdata/articles/java_client_lib.html
↑この解説の意味がよく解りません。
Antを使ってサンプルを動かせるようにする、というまではいいのですが、
それを使って自分のコードをどうやってコンパイル・実行したらいいのか
という部分がどうも理解できません。
サンプルのAnt用xmlファイルを解析して勝手に作れということなのでしょうか???
どなたか、よろしくお願いします。
0862デフォルトの名無しさん
2010/04/25(日) 22:25:20http://code.google.com/intl/ja/apis/gdata/articles/java_client_lib.html#helloworld
を読んで作る。
もちろんAntは必修科目と言ってみよう。
0863861
2010/04/25(日) 22:32:53回答ありがとうございます。
そのセクションには、Ant関連の記述が見当たらないように思えるのですが、
そのJavaコードをコンパイルするAnt設定は自分で整える必要がある、ということですか?
サンプルのxmlから依存関係等を解析して…
かなり不親切な気もするのですが、そんなものなんですかね?
0864デフォルトの名無しさん
2010/04/25(日) 23:28:48慣れればAntなんかは楽勝だし、どの環境でも動作するシェルだと考えると、
かなり優秀で親切だと思うな。
コンパイル/実行の完全な手順が書かれているわけだから。
0865デフォルトの名無しさん
2010/04/25(日) 23:38:21メソッドの引数として型パラメータのクラスオブジェクトをもらう手がある。
もし、単に型パラメータのフィルタリングだけがしたいなら、extends句を使用して、
特定のクラス・インターフェースを継承したものしか、コンパイルできなくする手もある。
以下、サンプル
public class GenericTest {
public String getMessage(){
return "foo";
}
public static <T extends GenericTest> T getInstance(Class<T> clazz){
T result = null;
try {
result = clazz.newInstance();
} catch (Exception e) {
e.printStackTrace(System.err);
}
return result;
}
public static void main(String[] args) {
GenericTest test = GenericTest.getInstance(GenericTest.class);
if(test!=null){
System.out.println(test.getMessage());
}
//GenericTestを継承していないクラスはGenericTest.getInstanceメソッドは使用できない
//Object test2 = GenericTest.getInstance(Object.class);
}
}
0866861
2010/04/25(日) 23:48:16ありがとうございます。
なるほど、Antに関してはサンプルのxmlだけで必要十分というわけですね。
まあそういうことであれば、楽をするのは諦めて自力でやってみたいと思います。
0867デフォルトの名無しさん
2010/04/26(月) 00:00:300868デフォルトの名無しさん
2010/04/26(月) 00:02:192DのCGを描画したいんですが、どんなAPIを使えば良いのかわからないので教えていただけませんか?
0869デフォルトの名無しさん
2010/04/26(月) 00:52:260870デフォルトの名無しさん
2010/04/26(月) 00:53:540871デフォルトの名無しさん
2010/04/26(月) 01:22:38WebはJavaで
ゲームはC++で作るのが
プログラマーの常識。
0872デフォルトの名無しさん
2010/04/26(月) 01:53:31java.awt.Graphics
0873デフォルトの名無しさん
2010/04/26(月) 02:17:48まず、どこに書きたいのかが分からない
0874デフォルトの名無しさん
2010/04/26(月) 02:30:50どうして?理由は?
0875796
2010/04/26(月) 09:56:22やりたい事は、
テンプレートで指定した型"E"をパラメータにリフレクションでメソッドコールしたいって事なんですけど。
owner.getClass().getMethod( func , E.class ) ;
0876デフォルトの名無しさん
2010/04/26(月) 10:54:03その答えが>>801のparam.getClass()だろう。
>>756でParamって大文字表記になってるのはtypoだよな?
0877デフォルトの名無しさん
2010/04/26(月) 11:12:19うん
0878796
2010/04/26(月) 13:21:22>876
失礼しました!
出来ましたコンパイル通りました。
ありがとう御座いました。
0879デフォルトの名無しさん
2010/04/26(月) 19:07:46Struts1/2/JSF2/JBoss Seamあたりで悩んでいるのですが。
業務経験はStruts1が5年、2が1年半くらいで他はありません。TeedaでJSFをちょこっとやったけど。
Struts2を使うつもりだったのですが日本ではあまり流行ってない(=他の人に引き継ぎにくい)し、
どれも一長一短でどうしたもんかなと思っているのですが。
0880868
2010/04/26(月) 20:32:08>>871
javaが手っ取り早いかと思いまして。
>>872
これ凄いですね、やってみます。
>>873
どこに、とはどういう意味でしょうか?
僕がイメージしているのは、xy座標系で、(x,y)にこの色で点を描く、みたいな感じです。
0881デフォルトの名無しさん
2010/04/26(月) 20:33:46SAStruts(seasar2)一択
0882デフォルトの名無しさん
2010/04/26(月) 21:01:38Struts2
0883デフォルトの名無しさん
2010/04/26(月) 21:02:560884デフォルトの名無しさん
2010/04/26(月) 21:23:550885デフォルトの名無しさん
2010/04/26(月) 22:19:36どれも調べると便利そうなのですが実際やってみるといろいろトライ&エラーが必要だし、
1,2個のプロジェクトで使って慣れた頃にはもっと便利そうなのがでて再勉強っていう
サイクルはもうやめたいんですよね。
ECS,Torque,struts-tiles,James... apache系だけでももう二度とやらないだろうなという
プロジェクトがこんもり。Wicketも便利そうだけどコンポーネント指向でデファクトスタンダードが
できてから移ろうかなと。JSF2がそれになるんじゃないかと思って候補に入れたんですが、
JSF1+Faceletsのサンプルは散見するけどJSF2で開発を始めるとっかかりがよくわからないし。
0886デフォルトの名無しさん
2010/04/26(月) 22:22:230887デフォルトの名無しさん
2010/04/27(火) 00:45:120888デフォルトの名無しさん
2010/04/27(火) 00:47:37どんだけ頭悪いんだよ。
0889デフォルトの名無しさん
2010/04/27(火) 10:45:08署名付きのjarがapache-commons系の署名なしjarを読み込むとセリュリティエラーで実行できません。
ダイアログを無視すれば起動できますが、危険なコードです的な事を言われるので、
ユーザに無視させることを強要できません。
コントロールパネル→java でjavaコントロールパネルを開き
詳細タブ→セキュリティ→混合コード→検証を無効にする でダイアログを出さないことはできますが、
全てのアプレットが対象になり、そんな危険なことも強要できません。
log4jをアプレットで使用しているんですが、これにjp.co…の自社のキーで署名しても、
どうやら署名なしのjarとして扱われてしまいます。
サードパーティのjarをアプレットで使用する場合は、この警告からは逃れられないのでしょうか?
0890デフォルトの名無しさん
2010/04/27(火) 11:24:30おれも>>881に一票
フレームワークを使うなら、何を楽にしたいのかが重要なんだが、
そこら辺は考えてないの?
デザイン重視で、デザイナ入れるつもりなら
WicketにSpringとかSeasar2とか組み合わせるのもありかと。
0891デフォルトの名無しさん
2010/04/27(火) 12:22:25キャッシュされたJarファイルを見に行っているのでは?
ブラウザのキャッシュとJavaの一時ファイルを両方とも削除してみてはどうでしょうか。
Javaの一時ファイルは、Javaコントロールパネルから削除できます。
0892デフォルトの名無しさん
2010/04/27(火) 13:06:04いえ、キャッシュは削除しています。
実際にlog4j.jarも読み込んでるので。
0893デフォルトの名無しさん
2010/04/27(火) 14:56:43それってu18までは動いてた?
0894デフォルトの名無しさん
2010/04/27(火) 15:03:52http://java.sun.com/javase/6/docs/technotes/guides/jweb/mixed_code.html
0895デフォルトの名無しさん
2010/04/27(火) 18:17:310896デフォルトの名無しさん
2010/04/27(火) 18:32:100897デフォルトの名無しさん
2010/04/27(火) 21:22:37させる用途ではないか?
0898デフォルトの名無しさん
2010/04/27(火) 21:58:02RDBMS によっては毎回発行されるよりまとめて渡してもらった方が効率の良い
動きをするものもある。
0899デフォルトの名無しさん
2010/04/27(火) 22:20:27DDLってなんすか
0900デフォルトの名無しさん
2010/04/27(火) 22:22:350901デフォルトの名無しさん
2010/04/27(火) 22:43:020902デフォルトの名無しさん
2010/04/27(火) 23:11:15多いんじゃね?
0903デフォルトの名無しさん
2010/04/27(火) 23:27:33結局logj4のjarもorg.apache…のキーで署名しないとだめだよ。
署名されているjarをネットで探してみては?
0904デフォルトの名無しさん
2010/04/28(水) 01:25:41の value.getClass()... の所で「valueは潜在的にnullの可能性があります」と
Eclipse 様からご指摘頂いたんだが、そんな可能性はないよな?
0905デフォルトの名無しさん
2010/04/28(水) 01:38:34assert後のコードから察するに、
本当はassert(value!=null)が正しいのでは?
0906デフォルトの名無しさん
2010/04/28(水) 02:20:32valueの真の潜在nullはそんなチンケなものじゃ検知できるはずがない
0907デフォルトの名無しさん
2010/04/28(水) 02:42:39インスタンス内で管理している Map に想定外のオブジェクトが入ってたケース
(ただし null はあり得る) を引っかけるアサーションだから assert(value==null)
で正しいです。
0908デフォルトの名無しさん
2010/04/28(水) 02:52:230909デフォルトの名無しさん
2010/04/28(水) 02:54:200910デフォルトの名無しさん
2010/04/28(水) 05:53:57public static void main(String args[]) {
int dt[] = {100, 200, 300};
int n = 0;
System.out.println(dt[n++]);
System.out.println(dt[n++]);
System.out.println(dt[n++]);
}
を実行した結果、dt[0]〜dt[2]が表示されるのは何故でしょうか?
最初のdt[n++]でnの値は1にならないのですか?
0911910
2010/04/28(水) 06:00:44こういう場合でも後加算されているのですね。
0912デフォルトの名無しさん
2010/04/28(水) 06:31:32n = ++n * n++ + ++n * n++;
System.out.println(n); // 10
わかるかなー?
0913910
2010/04/28(水) 07:05:14何という難問!私のルールで解いてみますw
最初の++nで1
次の++nでn=2
最初の(++n * n++)で後加算を後回しにして2*2=4
最初の(++n * n++)の後加算を加え5となる。1ブロック目は5
2ブロック目も同じで5
合わせて10!
違いますね絶対。よかったら教えて頂けますか?
0914デフォルトの名無しさん
2010/04/28(水) 07:13:27X(1), Y(2), Z(3),
;
private static final Logger logger = Logger.getLogger("A");
private A(int a){
logger.fine("a=" + a);
}
}
logger の初期化より先にコンストラクタが実行されるから NullPointerException
が発生するんだよなぁ。何かいい方法はあるかいボブ?
0915デフォルトの名無しさん
2010/04/28(水) 08:19:02n = n + 1;
int l = n * n;
n = n + 1;
n = n + 1;
int r = n * n;
n = n + 1;
n = l + r;
0916デフォルトの名無しさん
2010/04/28(水) 11:57:43gc時の負荷を軽くしようとしてる。
って努力は報われているでしょうか?
当方Androidでアプリ開発しています。
0917デフォルトの名無しさん
2010/04/28(水) 12:38:51nullをセットしているのがメソッド内のローカル変数なら、殆ど意味がない。
どうせメソッド抜ければ、nullセットの有無にかかわらず、
参照の有無に応じてGCの対象になるんだから。
インスタンス変数なら、オブジェクトの寿命による、としか言えない。
長寿命のオブジェクトが不要な参照を持つのなら、さっさと参照を削除して
軽くした方がいい、というのはあるかな。
注意点として、Androidの中のDalvikVMは実装が違うので、
SunのJavaVMのつもりで考えていると間違った最適化を考えてしまうかも。
例えばJITコンパイルがないとかね。GC方式も違うかも。
今までの経験を元に「こうすれば軽くなるはず」と考えて事前に最適化するよりも、
ある程度動くようになってからプロファイリングして、事実を元にして
「ここが重いからこう直そう」と後で最適化を施した方がいいと思う。
SDKには、折角プロファイリング用のツールが付いてきてるんだから、
これを使わない手はない。
0918ボブ
2010/04/28(水) 16:15:53イニシャライザー?
0919デフォルトの名無しさん
2010/04/28(水) 16:19:45URL先の問題をJAVAで解きたいのですが数字をうまい事読み込めません
複数行いっぺんに入力した場合に初めの二つしか読み込めません
ふたつずつ入力したときは連続で入力してもうまいこと行きます
例
3 4
>3 4
4 3
>3 4
5 2
>2 5
2 3
2 2
5 3
>2 3
4 5
>4 5
0 0
終了
0920デフォルトの名無しさん
2010/04/28(水) 19:06:44ありえない。
スタックトレース貼ってみ
0921デフォルトの名無しさん
2010/04/28(水) 19:09:320922デフォルトの名無しさん
2010/04/28(水) 20:32:49その間の距離を計算して格納したいのですが
仮に点が100個あった場合、配列でdistance[100][100]とすると
点a-点bの距離は、もちろん点b-点aの距離と同じですし
半分近くの領域が無駄になってしまいますよね?
無駄のないようにそれぞれの点の間の距離を記録するにはどうすれば良いでしょうか?
0923デフォルトの名無しさん
2010/04/28(水) 20:38:07まず、どうやってるのか分からんから答えられる訳があるまい。
テキストファイルなら
BufferedReader in = new BufferedReader(
new FileReader(new File(testfile))
);
while ((line = in.readLine())!=null) {
System.out.println(line);
}
in.close();
で各行が読めるし、標準入力なら
BufferedReader in = new BufferedReader(
new InputStreamReader(System.in)
);
while ((line = in.readLine())!=null) {
System.out.println(line);
}
0924デフォルトの名無しさん
2010/04/28(水) 20:47:23点がpoint[]に入っているとして
step0: point[0] から point[1]〜[99] までの距離をそれぞれ求める。
step1: point[1] から point[2]〜[99] までの距離をそれぞれ求める。
・・・
stepN: point[N] から point[N+1]〜[99] までの距離をそれぞれ求める。
・・・
最後に point[98] から [99] までの距離を求める。
とすればいい。
0925922
2010/04/28(水) 20:58:43すいません、言葉足らずでした
点の情報は、すべてプログラム上でPoint2Dの配列に格納しています
同じように点と点との距離を求めて、配列なりリストなりに記録したいのです
計算自体は
for(int i=0; i<point.length()-1; i++){
for(int j=i; j<point.length(); j++){
point[i].distance( point[j] );
}
}
というように書けば計算できるのですが
いざこれを記録するとなると
例えば配列だと
[4][3][3][2][7]
[ ][4][5][6][7]
[ ][ ][5][6][7]
[ ][ ][ ][1][3]
[ ][ ][ ][ ][7]
という風に、半分近くの領域が無駄になってしまうのが気になるのです
かといってリストだと、後から参照する時に順番が難しく扱いづらいように感じます
うまく点と点との距離を記録する方法はないでしょうか?
0926デフォルトの名無しさん
2010/04/28(水) 21:11:370927デフォルトの名無しさん
2010/04/28(水) 21:29:53Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
と出ました。コンパイルは出来たみたいなのですがどういうことでしょうか?
0928デフォルトの名無しさん
2010/04/28(水) 21:35:120929デフォルトの名無しさん
2010/04/28(水) 21:40:14.;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip
となっているのですがこれが問題あるのでしょうか?
0930デフォルトの名無しさん
2010/04/28(水) 21:58:04クラス名つけて使用したほうがいいの?そのまま使用したほうがいいの?
↓こういうの
class ClassA {
private static int var1 = 0;
public static void Hoge() {
var1++; //←ここって ClassA.var1++; にしたほうがいいの?
}
public static void Hoge2() {
Hoge(); //←ここって ClassA.Hoge(); にしたほうがいいの?
}
}
0931デフォルトの名無しさん
2010/04/28(水) 22:07:080932デフォルトの名無しさん
2010/04/28(水) 22:08:090933デフォルトの名無しさん
2010/04/28(水) 22:10:34過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
ttp://www.wikiroom.com/java/
0934919
2010/04/28(水) 22:22:23ありがとうございます。解決しました
言葉足らず申し訳ありませんでした
今回は標準入力からということでした
とにかくありがとうございました
0935デフォルトの名無しさん
2010/04/28(水) 22:23:33一応、
double[][] point = new double[100][] ;
for (int i = 0 ; i < 100 ; i++) {
point[i] = new double[i] ;
}
という感じで、各行の列数の異なる2次元配列を作ることは可能だぞ。
0936デフォルトの名無しさん
2010/04/28(水) 22:24:14class pathを設定する話は見当たらないのですが、
class pathはどこをしていすればいいんですか?
0937デフォルトの名無しさん
2010/04/28(水) 22:45:24どうやらQuickTimeをインストールすると
classpathが狂うということが分かりました。
身に覚えがあるので解決策も検索してみます。
お騒がせしました。
0939デフォルトの名無しさん
2010/04/29(木) 00:58:23簡単にプロセスを起動できるようなクラスを以前作ったのだけど
http://ideone.com/XVeT7
↓ソースコードのダウンロードはここから
http://ideone.com/plain/XVeT7
たとえば
EasyProcess.start("rm", "-vi", "foo.txt");
みたいに書くと、ちゃんとファイル削除前に確認もしてくれるよう作ったのだけど
ひょっとしたらLinuxとかではうまくいかないかもと不安になったので
環境を持ってる人だれか試してみてくれないかな。
たしかUNIX系OSでは標準入出力と端末が結びついていないと
-i オプションが無視されるとか聞いたことがあるので。
ちなみにWindowsのコマンドプロンプトやCygwinではOKでした。
0940デフォルトの名無しさん
2010/04/29(木) 01:19:550941デフォルトの名無しさん
2010/04/29(木) 01:50:36「ついでにバグがあったら教えてくれると嬉しい」って
>>939 に書こうとして忘れてた。
>>940 ありがとう。
public static void main(String[] args) {
// ...
// Java で事前の処理を行ってから
// 他のプログラムに渡す
EasyProcess.start(...);
}
こんな感じの使い方を想定してたので
プロセスが終了した後のことをあんまり考えてなかった。
いちおうプロセス終了後に System.in から読み込もうとすると
Transfer スレッドも終了するようにはなってるんだけど。
0942939
2010/04/29(木) 02:07:45System.in を転送するスレッドをどうやって止めればいいんだろう。
簡単な方法はあるのかな。
あと Windows で System.in.markSupported() が true を返したので
どの環境でも System.in はマークをサポートしてるだろう
という前提で書いてしまったけど、これも問題になるかも。
0943デフォルトの名無しさん
2010/04/29(木) 06:04:410944デフォルトの名無しさん
2010/04/29(木) 08:29:33そういうのcommonsにあったような。
antのコードを見たんだっけかな?
0945デフォルトの名無しさん
2010/04/29(木) 09:51:29ウィキ読んでもさっぱり分からない
OSが変わっても同じようにコンパイルできるってこと?
逆にantを使わなかったら何か面倒なことあるの?
コンパイルなんて「実行」押したら済むでしょ?
0946デフォルトの名無しさん
2010/04/29(木) 10:30:15ビルド番号更新して JAR 作って署名して javadoc 作って別チーム参照用のファイルサーバに
コピーしたり、イミフ な CSV の定義ファイルからデータテンプレート作ったり、クラスの本数で
開発管理用ファイル更新したり。
まぁ Ant である必要性が無いのはそうだな。行き当たりばったりで作った仕様っぽくて言語
として使いづらい。あとあれ作った奴は流行りで XML 使っただけだろ。スキーマも書けない
糞 XML 仕様。
0948デフォルトの名無しさん
2010/04/29(木) 19:46:54のはどんな状況のときでしょうか?
それと、close()が失敗したときにどのような処理をすべきでしょうか?
現在IOExceptionを握りつぶすくらいしか思いつきません・・
現在
void hoge() /* throws IOException */ { // IOException を搬出してはいけない仕様になっています
InputStream istr = null;
try {
istr = new BufferedInputStream(new FileInputStream("hoge.txt"));
// istr を使って色々処理
}
finally {
try {
if (istr != null) {
istr.close();
}
}
catch (IOException e) {
// 握りつぶす
}
}
}
のような関数を書いているのですが、どうも糞コードのような気がしてなりません。
皆さんなら上記のプログラムをどのように書き直すでしょうか?
冒頭の質問と合わせてお願いします。。。
0949デフォルトの名無しさん
2010/04/29(木) 19:55:42close()時のIOExceptionはディスクエラーぐらいしか思いつかんけど。
あえて言うとすれば毎回書くのはアレだから
public static void closeQuietly(Closeable closeable) { if (closeable != null) try { closeable.close() } catch (IOException e){} }
みたいなメソッド作って使いまわすぐらいか。
0950デフォルトの名無しさん
2010/04/29(木) 20:06:02プロセスが中断シグナル拾った、OS や JavaVM がおかしくなっているなど。
対応としてはログ吐いて握りつぶすか IllegalStateException でも投げるしかねぇな。
public static void close(Closeable c){
try{
if(c != null) c.close();
} catch(IOException ex){
logger.log(Level.SEVERE, "クローズに失敗", ex);
}
return;
}
ちゃんと作る時は (全経路テストこなすために) ユーティリティ機能として実装する。
InputStream in = null;
try{
in = new FileInputStream(file);
....
} finally {
IO.close(in);
}
0951デフォルトの名無しさん
2010/04/30(金) 03:04:21もし、パラメータの値が無かったら配列なしのString型のValuesが作られnullが代入され(1行目)
ValuesがnullだったらValuesの配列1個作り”0”を代入しなさい という意味でOKですよね。(if文以降)
逆にYasaiにパラメータに2個渡されてたらValues[0]、Values[1]が作られ(1行目)
それぞれの配列に値が渡される。
Valuesがnullだったら、、、んあれ・・・・ Values[0]とValuesは同じ???(if文以降)
複数渡されてたらValuesなんて宣言された無いから怒られるんじゃ・・・。
それともValues[0]もValues[1]も大きなくくりではValuesだからif文が通るのか・・・。
かなり混乱気味です。夜分遅くですが教えていただけると助かります。
String[] Values=request.getParameterValues("Yasai");
if(Values==null){
Values=new String[1];
Values[0]="0";
}
0952デフォルトの名無しさん
2010/04/30(金) 03:29:36配列が理解出来てないのか?
そのソースにコメント振ると
Values に Yasai を代入。Yasai がないときは {"0"} を代入
て感じ
0953デフォルトの名無しさん
2010/04/30(金) 10:09:05一つのint型変数を用意してメモリ使用量/全体量
をコンソールに出力するだけのコードを書いてみたのですが、
変数に0等の小さい値を入れた場合と巨大な値を入れた場合とで
メモリ使用量に違いが出ていました。(値はリテラルで指定してます)
Javaのint型は4バイトのメモリ領域を使用したと思うのですが、
代入した値によってメモリ使用量が変動してしまうのはなぜなんでしょうか?
0954デフォルトの名無しさん
2010/04/30(金) 10:14:010955デフォルトの名無しさん
2010/04/30(金) 10:16:10コードが示されていないので推測するしか無いが
コンソールに出力する文字列生成時に桁数が多い分どっかでメモリ食ってるんじゃないか?
0956デフォルトの名無しさん
2010/04/30(金) 10:32:43int i = 0; // 2147483647
System.out.println(i);
System.out.println(Runtime.getRuntime().freeMemory() + "/" + Runtime.getRuntime().totalMemory());
}
iの数値が0でも2147483647でも俺の環境だと変わらないな。
iをメソッドの外に出してstatic装飾子付けても変わらなかった。
0957デフォルトの名無しさん
2010/04/30(金) 11:39:47したしsocket.isClosed()してもfalseになり、writeするとエラーになります。
書き込み前にソケットの状態を確認し、相手がクローズしていたら、再度コネクションを張り直し処理を続行しようと思っています。
その場合のロジックを教えていただけないでしょうか?
0958デフォルトの名無しさん
2010/04/30(金) 11:51:570959デフォルトの名無しさん
2010/04/30(金) 12:29:292. コンストラクタ内で接続し出力ストリームを保持しておく。接続に失敗したら例外。
3. write メソッド内で例外が発生したら再接続。再接続に失敗したら例外。
0960デフォルトの名無しさん
2010/04/30(金) 14:53:27レスありがとうございます。
検証までして頂いてとても参考になりました。
後出しで申し訳ないのですが、Java環境はCLDC1.1/MIDP2.0です。
Javaである以上基本的な仕様は変わらないだろうと勝手に思い込んでいたのですが
KVM環境では事情が違う?のかも知れないですね。
CLDC/MIDPスレで質問すべき事だったかも知れません。
検証コードの内容は>>956と同等のものですが、
開発環境付属のKVMエミュレータと、携帯電話実機環境(OAP)のどちらも
やはりint iへ代入する値によってメモリ使用量に違いが出てきます。
i=0のときのfreeMemory() => 479820(実機では1534388)
i=100のときのfreeMemory() => 479820(実機では1534384)
i=2147483647のときのfreeMemory() => 479808(実機では1534304)
0961デフォルトの名無しさん
2010/04/30(金) 15:29:05>検証コードの内容は>>956と同等のものですが、
まったく一緒なのかね?少しでもソースが違えば生成されるコードが違う可能性あるんだから、
いい加減な情報出されても判断の仕様がない。
>>954の可能性に加えて、i の値を定数扱いして小さい数値だとより短いコードをコンパイラが出してるのかもしれない。
生成されたコード比較してみな。
0962953,960
2010/04/30(金) 16:06:29レスありがとうございます。
バイトコードの違いも調べましたが、
i=0のiconst_0 と、
i=2147483647のldc1 <Int 0x7fffffff>
のスタックに積む部分以外は同一です。
長くなりますが、ソースコード全文を貼らせて頂きます。
(エミュレータ環境ではコメントアウト部分のみで結果の出力を得られますが、
実機では標準出力が利用できない関係上、出力のためのコードを設けてあります。)
/* Test.java */
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class Test extends MIDlet {
private TestCanvas canvas;
public Test() {
int i = 0; //100 //2147483647
//System.out.println(Runtime.getRuntime().totalMemory());
//System.out.println(Runtime.getRuntime().freeMemory());
String[] results = {
Long.toString(Runtime.getRuntime().totalMemory()),
Long.toString(Runtime.getRuntime().freeMemory())
};
canvas = new TestCanvas();
canvas.setResults(results);
Display.getDisplay(this).setCurrent(canvas);
}
public void startApp() {}
public void pauseApp() {}
public void destroyApp(boolean flag) {}
}
0963953,960
2010/04/30(金) 16:09:01/* TestCanvas.java */
import javax.microedition.lcdui.*;
class TestCanvas extends Canvas {
private String[] results;
public TestCanvas() {}
public void setResults(String[] results) {
this.results = results;
}
public void paint(Graphics g) {
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0, 0, 0);
g.drawString(results[0], 2, 10, Graphics.LEFT|Graphics.TOP);
g.drawString(results[1], 2, 25, Graphics.LEFT|Graphics.TOP);
}
}
0964デフォルトの名無しさん
2010/04/30(金) 16:09:29public static void main(String[] arg) {
int a=100,b=100,c=50,d=100,e=50;
a+=--a+a--;
b+=b---c;
e+=d---e;
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("c="+c);
System.out.println("d="+d);
System.out.println("e="+e);
}
}
おまえら、これ実行後のa,b,c,d,eの値を予想できる?
0965デフォルトの名無しさん
2010/04/30(金) 16:12:280966デフォルトの名無しさん
2010/04/30(金) 16:18:22int型は環境に関係なく常に4バイトです。ただし、PrintStream#println(int)はパラメータ
で受け取ったint値を一旦文字列かchar[]に変換しているため、10進文字列化したときの
桁数が違えば当然ヒープメモリ消耗量が変わります。
0967デフォルトの名無しさん
2010/04/30(金) 16:28:06リモート側が何の通知もなしに通信を切断した場合に通信リンクが
有効かどうかを確認するには、何かのパケットをリモートマシンに
送信してみる必要がありますが、そういう命令がTCPにないと思います。
ためしにデータを送ってみるしか無いでしょう。
int retry = 3;
while ( retry > 0 ) {
if ( trySendData(送りたい情報+あて先) ) {
break;
}else {
retry--;
}
}
private void trySendData(いろんな引数) {
Socket sock = null;
try {
送信処理();
return true;
}catch ( Exception e ) {
return false;
}finally {
if ( sock != null ) try { sock.close(); } catch ( Throwable t ) {}
}
}
0968デフォルトの名無しさん
2010/04/30(金) 16:33:09Javaの生成コードはよくしらないが
>i=0のiconst_0 と、
>i=2147483647のldc1 <Int 0x7fffffff>
この二つはバイトサイズ一緒なのかい?
ちょっとだけぐぐってみたけど、JavaのコードってまるでFORTHだね
0969デフォルトの名無しさん
2010/04/30(金) 16:35:16a が 100 + 99 + 99 = 298 で、
b は 100 + 100 - 50 = 150 で、
c は変わらんから 50 と。
面倒なので以下略。
0970953,960,962
2010/04/30(金) 17:02:57>>966
i=0、i=2147483647の両ケースともメモリ使用量の桁数は揃っているため、出力のための
文字列化ではヒープメモリ消費量は変わらないのでは無いかと思いますが、間違ってるでしょうか?
>>968
バイトサイズ?というのはどう言う事ですか?
Javaの4バイトのint型の範囲(-2147483648〜2147483647)内ですが、
そう言う事ではなくてですか?
また、ライフタイムの怪しい>>962のString[] resultsをメンバ変数に
してみましたがメモリ使用量には違いが出たままです。
0971デフォルトの名無しさん
2010/04/30(金) 17:10:13a=298
b=150
c=50
d=99
e=100
になった
0972デフォルトの名無しさん
2010/04/30(金) 17:18:270973デフォルトの名無しさん
2010/04/30(金) 17:25:30俺もオープンアプリやってるからうち帰ったら試してみるわ
>>962のソースでメモリ使用量が違うってのは興味深いな
0974デフォルトの名無しさん
2010/04/30(金) 18:39:35質問です。
html側で入力された、半角スペースで区切られた数字列を、アプレット側で呼び出して
StringTokenizerを使ってばらしたいのですが、
<html側>
<param name="data" value="123 123 222 333">
<アプレット側>
StringTokenizer data = new StringTokenizer("getParameter("data")");
という風にやって見たところ、この行について 文ではありません。というエラーが発生しました。
new StringTokenizer("");の括弧の中に
getParameter("data")を入れたのが悪いのだろうとおもっているのですが、
変数をStringTokenizerでばらす場合にどういった操作をすればいいのでしょうか?
0975デフォルトの名無しさん
2010/04/30(金) 18:46:42new StringTokenizer(getParameter("data"));
0976デフォルトの名無しさん
2010/04/30(金) 18:58:17なるほど!ありがとうございました。
0977968
2010/04/30(金) 19:04:49生成される命令コードの長さが違うのかと思ったが、ちと違うようだ、以下wikiから引用
# ldc - コンスタントプール内の4バイトの定数(int,float,String)の内1バイト以内でエントリ番号を指定できるものをスタックに積む。
# iconst_m1, iconst_0, iconst_1, iconst_2, iconst_3, iconst_4, iconst_5 - intの-1,0,1,2,3,4,5をスタックに積む。
これ見ると、どっちも命令長は1バイトだが、「コンスタントプール内」に定数のエリアが確保されるかどうかの違いがある
とりあえず、その分はメモリ使用量に違いは出るのだろう。
0978デフォルトの名無しさん
2010/04/30(金) 19:31:19>b+=b---c;
これってなんでbは150になるの?
0979デフォルトの名無しさん
2010/04/30(金) 20:02:19http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.2
> The longest possible translation is used at each step,
> even if the result does not ultimately make a correct program
> while another lexical translation would.
> Thus the input characters a--b are tokenized (§3.5) as a, --, b,
> which is not part of any grammatically correct program,
> even though the tokenization a, -, -, b could be part of a grammatically correct program.
0980デフォルトの名無しさん
2010/04/30(金) 20:14:440981デフォルトの名無しさん
2010/04/30(金) 20:18:520982デフォルトの名無しさん
2010/04/30(金) 20:22:17って
b=b+ b + c
b=b - 1
ってことじゃないの?
0983デフォルトの名無しさん
2010/04/30(金) 20:23:241. b と c の値をロードする。仮に t1=b; t2=b; t3=c; としよう。
2. b をデクリメントする。
3. t2 - t3 を計算する。演算結果は t4 に入るとしよう。
4. t1 + t4 を計算する。結果は b に代入される。
つまり b をデクリメントした後に演算結果で上書きされるので b の
デクリメント操作は無効となる。
>>979
それは演算子の認識順位を述べているだけで説明としては 20 点。
もっとがんばれ。
0984デフォルトの名無しさん
2010/04/30(金) 20:26:360985デフォルトの名無しさん
2010/04/30(金) 20:28:11インクリメント演算はロード/ストアが発行されない分効率は良いんだが、
他の混在させるとこういうややこしい事になるので混ぜない方が良い。
0986デフォルトの名無しさん
2010/04/30(金) 21:27:49上記のような結果の上書きが発生する。説明は省略するので宿題だ。
javap の結果をよく見て考えれ。
これを演算子の認識と評価の優先順位問題と見た奴は即死。
>>969 あたりは本当は結果に対して説明ができなくなって諦めたんじゃないか?w
0987デフォルトの名無しさん
2010/04/30(金) 21:40:204バイト確保されてメモリ使用量の変動しない>>956が、一般的に正しい
状態だと思いますが、>>956と同様の検証コードを以ってしてもKVM環境では
値によってメモリ使用量が変動してしまうため、その原因を調べています。
>>960のi=100の例の様に、専用の命令が用意されている-1〜5以外の
値を代入した場合でも0や2147483647やそれ以外の場合と同様に
メモリ使用量が微妙に違ってきてるのです。
>>973
まず疑わしいのは自分のソースだろう、とあたりを付けてはいるのですが
int型以外のケースでもテストを重ねるほど、KVMの仕様を疑いたくなるほど
メモリ使用量に関して腑に落ちない点が出てきます…
単なるテストコードの間違いであってくれれば話は早いのですが。
一人で書き込みすぎるのもあれなので、色々と調べ直してみたいと思います。
ヒントを頂けるかも知れないので、スレはもうしばらく見学させて頂きます。
レスして下さった方々ありがとうございました。
0988デフォルトの名無しさん
2010/04/30(金) 21:56:28そのレベルで調べたいんならKVM解析するしか無いよ
0989デフォルトの名無しさん
2010/04/30(金) 21:58:45単なる実装依存じゃね?
0990デフォルトの名無しさん
2010/04/30(金) 22:01:37ここは質問スレだぞ
口はさめるほど知ってるなら説明してやれよw
おれはj2meなんかさわったことないし知らんけど
0991デフォルトの名無しさん
2010/04/30(金) 22:16:41実行時のメモリ割り当てなんて、コンパイラやらロケーターやらVMやら色々なプログラムが絡むから
全てを明らかにしたいなら、今使ってるバージョンのソフトを全て逆アセンブルでもして、
それぞれの動きを完全に把握する必要があると思うよ。
逆に聞きたいんだが、なんでそんなことが気になるわけ?
Javaなんて抽象度の高い半インタプリタ言語でプログラム作ってる人が
気にするようなことじゃないと思うんだが、それでなんか不具合でも発生してるの?
0992デフォルトの名無しさん
2010/04/30(金) 22:17:530993977
2010/04/30(金) 22:44:14>4バイト確保されてメモリ使用量の変動しない>>956が、一般的に正しい
ん〜、i=2147483647の時は4バイト確保されるけど、i=0の時はメモリ確保されないので
メモリ使用量に違いが出るって言ったつもりなんだけど、僕の言ってること理解出来てます?
iconst_0 とldc1 ではメモリの使用量が違う。
でも、それでメモリの残り容量にどう影響が出るかは、4バイトの使用量の差があっても、
アライメントによっては同じサイズに整合されるかもしれないし。
他の方も言ってる通り、結局は実装依存だと思いますよ。
0994987
2010/04/30(金) 22:57:59不具合とかは無いですが好奇心です
>>993
なるほど、今度は良くわかりました
その線の様な気がしてきました
貴重な回答ありがとうございます。
0995デフォルトの名無しさん
2010/04/30(金) 22:58:03誰かに聞いたことあるんだが思い出せなくて
0996デフォルトの名無しさん
2010/04/30(金) 23:06:590997デフォルトの名無しさん
2010/04/30(金) 23:07:510998デフォルトの名無しさん
2010/04/30(金) 23:14:500999デフォルトの名無しさん
2010/04/30(金) 23:15:431000デフォルトの名無しさん
2010/04/30(金) 23:16:0410011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。