[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 05/09 23:39 / Filesize : 54 KB / Number-of Response : 212
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者】Java質問・相談スレッド119【歓迎】



1 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 05:54:45 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    pc11.2ch.net/hp/
Webプログラミング pc11.2ch.net/php/
をご利用下さい。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
 【初心者】Java質問・相談スレッド118【歓迎】
pc11.2ch.net/test/read.cgi/tech/1218360111/
次スレは>>990あたりで。

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/

152 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:08:59 ]
Javaクラスファイルの難読化ソフトであるDonQuixote ttp://donquixote.cafebabe.jp/index.html
を使っている人いますか?
Solaris10 for x86(5/08)上で使おうとしているのですが,BCELをとってきて
CLASSPATH=/PATH/TO/bcel-5.2.jar:... のように設定しても
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/bcel/util/Repository
Caused by: java.lang.ClassNotFoundException: org.apache.bcel.util.Repository
というエラーメッセージが出ます どのようにすれば動くのでしょうか?

153 名前:デフォルトの名無しさん [2008/09/07(日) 16:06:05 ]
>>151
いいかげんにおまえが糞ってことに気がついたらどうよ?

154 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:09:22 ]
JSAPIの実装にFreeTTSがありますが、
日本語に対応したオープンソースのJava APIってありますでしょうか?
nativeライブラリだと見つかるので、JavaAPIがないようならJNI使って呼び出すか、
外部プロセス起動で実行させるかしかないですよね・・・


155 名前:デフォルトの名無しさん [2008/09/07(日) 18:17:13 ]
exeなんて古生代の形式に戻す必要あるのか

156 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 18:22:04 ]
Javaのプログラムをjarファイルにしても
解凍ソフトでjarを解凍してクラスが抽出できるから
Jadとか使って逆コンパイルすると
ソースを見られてしまうのですが
これを防ぐ方法はありますか?


157 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 18:23:14 ]
難読化でぐぐれ

158 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 18:23:23 ]
javaを使用しない

159 名前:デフォルトの名無しさん [2008/09/07(日) 18:23:46 ]
難読化はできるが完全に読めなくすることは不可能
てか、ソースを見られてなにか困るのか?
どんなプログラムでも基本的に解析しようとすれば解析できる
少なくともコンピュータには理解できるわけだからな

160 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 18:25:01 ]
完全に読めなくすることは可能



161 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 18:26:16 ]
>>156
逆コンパイルする気にさえならないようなソフトは無敵

162 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 18:26:26 ]
実行もできなくなるけどな

163 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 18:29:11 ]
Javaのソースコードに暗号化をかけることはできますか

164 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 18:30:11 ]
>>163
>>162

暗号化でなく署名なら出来る


165 名前:デフォルトの名無しさん [2008/09/07(日) 18:41:46 ]
>>163
古生代の暗号なら出来るんじゃねーの?

166 名前:デフォルトの名無しさん [2008/09/07(日) 18:49:20 ]
>>155
いつもスルーされて淋しいよな…

167 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 19:26:06 ]
めちゃくちゃソースを分かり難く書いて、
解析する時間が無駄と思わせるようなソースにすればいいんじゃない?
部分的に流用可能なソースも難しいように、スパゲティ構造にしてw

難読化ソフトって使ったことないのだが、上記のようなソースに変換してくれるものとは違うのかな?

168 名前:152 mailto:sage [2008/09/07(日) 20:07:31 ]
難読化ソフトの話題は多分 >>152 に端を発したということでどなたか私めにお答えを...

作者様のBLOG ttp://www.oikaze.jp/~tamada/Diary/cat_e99ba3e8aaade58c96.html を見ると
「・DonQuixote 3.0 Java バイトコード操作フレームワークとして,DonQuixote 3.0 を公開しました.」
とあるのですが,パスワードがかかっていていただくことができません.
DonQuixote1.0を最新のJDK1.6.0-07に使っているのが悪いのでしょうか?
>>152 のエラーメッセージは信用できるように思えるのですが
maven2 を使ったのが初めてなので何か設定が足りないのかもしれません

なお ttp://proguard.sourceforge.net/ の Alternatives にリンクが張られている
フリーの処理形をすべて試してみましたが期待通り動くものはほとんどありませんでした
他に良い難読化ソフトがありましたらお教えくださいませませ

169 名前:デフォルトの名無しさん [2008/09/07(日) 20:27:00 ]
解読しても価値のないプログラムを書けばOK

170 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 20:29:32 ]
【コミュニティーサイト作成有志募集!】

現在コミュニティーサイトGaccoで有志を募集しています。
詳しい概要等は
www36.atwiki.jp/vipvipschool/
こちらをご覧下さい。

・プログラミングができる方
(現在技術陣は6名です)
・ウェブデザイン・画像編集能力がある方
(現在デザイン陣は2名です)
・宣伝能力のある方
(人員募集やサイト完成後の宣伝等。動画編集ができると○。)

を募集しています。
気軽にIRCに参加、またはsuteあっと2ch.bona.jpまでメールを下さい。

スレッド:ttp://ex14.vip2ch.com/test/read.cgi/news4gep/1219068297/l50



171 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 21:08:52 ]
難読化?HSPで書いたら完ぺきだな。
自分でも読む気失せるぞあれは。

172 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 21:22:12 ]
言語がJavaでなくていいなら、intercalかAPLが最強で最凶で最狂でしょ。

173 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 21:35:44 ]
バイナリエディタでマシン語じか打ちだろ。
ソースコード?存在しません。

174 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 21:50:01 ]
逆アセンブルでソースになっちゃう

175 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 00:36:37 ]
それは目的と手段を間違えている

176 名前:デフォルトの名無しさん [2008/09/08(月) 01:12:45 ]
UbuntuでJavaできないんですけど。。。
ちなみに8.04です

177 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 01:40:29 ]
int []a=new int[5];
a[ZERO]=0:
a[ONE]=1;

こんな感じで配列を定数で置き換えたいときってどういう方法がメジャでしょうか?
interface NUM{int ZERO=0;int ONE=1;…}
class Hoge implements NUM{}

class Hoge{
private final int ZERO=0;
private final int ONE=1;
…}

enum NUM{ZERO,ONE,…}

int []a=new int[5];
a[NUM.ZERO.ordinal()]=7;


列挙で扱いたい気がするけれど、javaの場合整数値と直接結びつかないから
ordinalを呼ばないといけないし、理由は忘れましたがordinalを使うようなやり方は
止めるべきという話を以前見聞きした気がします。

178 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 03:03:20 ]
なんでそんなことしたいの??


179 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 04:10:47 ]
良く分からんが、とりあえず、EnumMap

180 名前:デフォルトの名無しさん [2008/09/08(月) 06:08:38 ]
普通に
final int ZEEL=-1;



181 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 06:35:01 ]
>>176
Synaptic で JRE 入れれば動くはず。
あとは gcj とかぶってないか確認しろ。

182 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 11:55:39 ]
>>177
ZEROでa[0]にアクセス、ONEでa[1]にアクセス、…てことなら、
配列そのものをクラスに包んでアクセサ作るのが言語的に”メジャ”っぽいと思う。
class Foo {
enum Num { ZERO, ONE, … };
private int[] a = new int[〜];
int get(Num num) {
switch(num) {
case ZERO: return a[0];
case ONE: return a[1];
:
}}
void set(Num num, int value) {
switch(num) {
case ZERO: a[0]=value;
case ONE: a[1]=value;
:
}}}

183 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 15:04:00 ]
なんでスイッチ…


184 名前:182 mailto:sage [2008/09/08(月) 16:36:16 ]
すまん、EnumMap使ったことないもんだから。
こう?
class Foo {
enum Num { ZERO, ONE, … };
private Map<Num,Integer> a = new EnumMap<Num,Integer>(Num.class);
int get(Num num) { return (a.containsKey(num) ? a.get(num) : 0); }
void set(Num num, int value) { a.put(num, value); }
}

185 名前:デフォルトの名無しさん [2008/09/08(月) 17:11:39 ]
効率悪い

186 名前:167 [2008/09/08(月) 17:35:46 ]
enum Mum
{
ZERO
{
public int getValue()
{
return 0;
}
}
,
ONE
{
public int getValue()
{
return 1;
}
}
,
;

public abstract int getValue();
}


187 名前:186 [2008/09/08(月) 17:36:37 ]
ごめそ167というのは間違い。

188 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 17:53:16 ]
>>185
効率を心配するほどのもの?

189 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 17:54:07 ]
www.atmarkit.co.jp/fjava/rensai2/javaent02/javaent02.html
ここ見て勉強しているのですけど、
メモリを使用するタイミングはどのタイミングなのでしょうか?
変数やメソッドの呼び出しなどがあったときにメモリを消費しているのか、
それとも変数やメソッドを呼ばなくても、定義してるだけで消費するのか。
どちらなのでしょう?
後者なら継承を繰り返すたびにメモリ使用量の多いプログラムになると思うので、
前者だとは思うのですが。

190 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:40:44 ]
なんで素人がやたらメモリとか気にするわけ?




191 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:47:36 ]
参照してる記事がメモリうんぬんと書いてるから、気になったんだろうな。
全く気にしないのも問題だが、それで勉強してるレベルなら、まだ早いよ。

192 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:50:08 ]
>>190
素人だからこそ気にするべきなんだろ
そんなのもわからない阿呆はやめちまえ

193 名前:デフォルトの名無しさん [2008/09/08(月) 18:52:44 ]
メモリもそうだけど、配列アクセスの方がCPUに大きく影響するよ。
あまり記事になってないけど、arr[k]は範囲チェックが必ず入るから、arr[k]を一回アクセスするだけで、
JVM内では(隠れて) if (0<=k && k<arr.length) が呼び出されてる。

だからメモリを気にしながら設計するのも大事だけど、byte[1000*32]とか良く作るんだし、配列アクセスの方を気にしたほうがいいよ。

194 名前:デフォルトの名無しさん [2008/09/08(月) 18:56:34 ]
メモリの方は、PCだけの人は気にならないんだろうけど、携帯とかアプレットとかあるし。
アプレットはまだ携帯とか小型端末じゃみれないけど、そういう小型機器はメモリが極小64kbとかだから、
メモリの方も気にしなければいけない。

195 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:58:28 ]
性能に頼ってプログラミングしている気でいる現代の若者を見てると
おじさん悲しくなってくるよ

196 名前:189 mailto:sage [2008/09/08(月) 19:01:45 ]
みなさんレスありがとうございます。
それで結局のところどちらなのでしょう・・?
おかしな質問だとは自覚しているのですが、気になって仕方がありません。
どうかよろしくお願いします。

>>193
配列って使うんですか?
コレクションフレームワークのほうが高機能なので配列よりそちらを使うようなことを書いてましたが。

197 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:12:53 ]
素人が気にし出すとろくなことにならんよ
ちゃんと理解出来ないんだから勘違いの嵐

198 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:15:53 ]
>>196
変数やメソッドの種類と、JVMによる。

199 名前:189 mailto:sage [2008/09/08(月) 19:37:23 ]
>>197
そうは言いますが、素人向けの説明でメモリの話が出てきてるのだから、
やはり重要だと思うのですが・・・
たとえ今は理解できないとしても、ステップとして踏んでおくべきだというのが私の考えです。
書籍やWebからの情報でも、100%ちゃんとした説明できる人のほうが少ないと思うので、
勘違いがあるのは当然だと思います。
そういうのは後々間違いに気づいていくので、
はじめの段階では特に問題視する必要はないと思います。

お答えいただけないようなので別のとこで質問しなおしたいと思います。
というわけで質問しめます。

200 名前:デフォルトの名無しさん [2008/09/08(月) 19:43:46 ]
配列はね、CharBufferとかでよく使うよ。
素人向けの解説だとStringBuilderとかなのかもしれないけど…
初心者の壁を越えられるかどうかは、java.nioの解説やAPIを熟読して理解できたかどうかだろうけど、ネイティブのファイル・アクセスとメモリ(ポインタなど)は難しいからな…



201 名前:デフォルトの名無しさん [2008/09/08(月) 19:47:18 ]
>お答えいただけないようなので別のとこで質問しなおしたいと思います。 

こういうのは生意気だし、「ばくちゃん、まだ身の程をわかってません!」って感じww

202 名前:189 mailto:sage [2008/09/08(月) 19:50:30 ]
>>200
ありがとうございます。
あとでそのクラスを調べてみます。

>>201
私は自分のことを客観的に見ることができるんです。
あなたとは違うんです。

203 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 20:00:03 ]
なんだ釣りか

204 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 20:01:09 ]
スレに張り付いてまでいちいち煽るくらいなら
少しのヒントを出すぐらいすれば
まだ自分の優位性をアピールできるだろうに。
気持ち悪いやつだ

205 名前:189 mailto:sage [2008/09/08(月) 20:17:22 ]
>>203
ちょっと生意気な閉め方したら食いついてくる人がいると思って、
最近はやりだったから言ってみたかったんです。すみません。
変な質問だとは自覚してましたが、本当に聞きたかったことなので、
またで直します。

206 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 20:33:24 ]
質問をお願いします.

java.awt.event.KeyEvent
を使用してキーの同時押しを持ってきたいのですが、
スペース 押下時に、 上 と 左 の同時押し(結果的に3つ)
を取ろうとすると、 KeyEvent.VK_UP と KeyEvent.VK_LEFT が帰ってきません。

順番を逆にし、上左押下時のスペースは持ってこれます。

他の組み合わせ(スペース + 上右、下左、下右)はどれも正常に動作します。


KeyEventについて詳しくないのですが、これはどういうことなのでしょうか?

207 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 20:38:38 ]
コーディングが悪いんでないの?
if文の順番が変とか。
ソース晒してみ

208 名前:206 mailto:sage [2008/09/08(月) 20:39:22 ]
すみません訂正です

>順番を逆にし、上左押下時のスペースは持ってこれます。
これも KeyEvent.VK_SPACE がもってこれません

209 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 20:39:24 ]
>>206
pc11.2ch.net/test/read.cgi/tech/1204155623/640

210 名前:206 mailto:sage [2008/09/08(月) 20:51:54 ]
>>209
なるほど、ありがとうございました。
スレ違ったようですみません

>>207
おかげさまで原因がわかりました
ありがとうございました。



211 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 20:57:03 ]
>>205
ここにはもう来ないで欲しい






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<54KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef