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

★★Java質問・相談スレッド165★★

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/10/20(日) 19:30:39.35
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。

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

前スレッド
★★Java質問・相談スレッド164★★
http://toro.2ch.net/test/read.cgi/tech/1378219684/
0388デフォルトの名無しさん2013/11/05(火) 08:42:01.61
>>296
0389デフォルトの名無しさん2013/11/05(火) 23:37:37.99
JNIの技術使えばandroid携帯の色々な機能が使えたりする?
0390デフォルトの名無しさん2013/11/06(水) 01:50:55.99
色々な機能が使えるよ
0391デフォルトの名無しさん2013/11/06(水) 02:36:56.28
Jarファイル内にDLLを入れてJNIでアクセスすることできる?
0392デフォルトの名無しさん2013/11/06(水) 03:07:41.31
JNI で DLL, SO 等のネイティブライブラリを JAR に含めるには|てくめも@ecoop.net
http://www.ecoop.net/memo/archives/2007-02-17-3.html

Javaで標準以外のライブラリを使用したプログラムを他のPCで動か.. - 人力検索はてな
http://q.hatena.ne.jp/1288867770

Jar ファイルを持つネイティブ dll をバンドル
http://ja.softuses.com/218163

コンピュータ職の徒然日記 - Yahoo!ブログ
http://blogs.yahoo.co.jp/shikakuit/archive/2011/08/25

View Source Native code and classloaders
http://jiemamy.org/plugins/viewsource/viewpagesrc.action?pageId=2162771

Oracle CEPアプリケーションのアセンブルとデプロイ
http://docs.oracle.com/cd/E28389_01/dev.1111/b61654/deploy.htm
0393デフォルトの名無しさん2013/11/06(水) 06:09:41.09
ヒマ人だなお前w
0394デフォルトの名無しさん2013/11/06(水) 06:47:25.39
>>391
直接は出来ない。MANIFEST.MFをごにょごにょすれば出来るとかは基本的に迷信。
getResourceAsStream等でJAR内のDLLを一端テンポラリディレクトリ等に書き出して
System.loadで読み出す必要がある。
0395デフォルトの名無しさん2013/11/06(水) 08:14:15.89
>>392
そーゆーのはブログでやって
0396デフォルトの名無しさん2013/11/06(水) 08:47:18.80
XML使うときってどのライブラリ使うのが一般的というか簡単ですか?
0397デフォルトの名無しさん2013/11/06(水) 09:07:44.30
java
0398デフォルトの名無しさん2013/11/06(水) 09:10:24.16
>>196
重くても楽がいいなら標準DOM
でなきゃ標準SAXで
0399デフォルトの名無しさん2013/11/06(水) 09:16:47.25
rhino上のjQuery経由
0400デフォルトの名無しさん2013/11/06(水) 09:50:30.21
馬鹿には無理
0401デフォルトの名無しさん2013/11/06(水) 09:55:47.17
pull型最強
0402デフォルトの名無しさん2013/11/06(水) 10:03:07.83
Pullはいかにも手続き型って感じで嫌だ
0403デフォルトの名無しさん2013/11/06(水) 12:12:43.18
アホには無理
0404デフォルトの名無しさん2013/11/06(水) 12:27:38.42
java.util.Dateのメソッドは非推奨ばっかりなんですが
日付を扱う場合はCalendarクラス
時刻を扱う場合はDateFormatクラス
を使うのが定番でしょうか?

Java7のドキュメントのこのページ見ながら勉強してます
http://docs.oracle.com/javase/jp/7/api/java/util/Date.html
0405デフォルトの名無しさん2013/11/06(水) 12:32:30.20
ガンバって勉強して下さい
0406デフォルトの名無しさん2013/11/06(水) 12:41:03.38
>>404
いいえ。
0407デフォルトの名無しさん2013/11/06(水) 12:56:44.63
util.Dateを使えって事ですか?
0408デフォルトの名無しさん2013/11/06(水) 13:12:55.70
Date は、地域や暦によらない不変の日付時刻を表す
Calendar は、ある特定の地域と暦における年月日時分秒を表す
例えば、日本時間における西暦2013年11月6日12時27分38秒は、
アメリカ東海岸では西暦2013年11月5日22時27分38秒になる
Date は特定の地域や暦に結びついていないので、 Date 的にはどちらも等しい
同じ Date をまた別の地域や暦の Calendar にセットすれば、その地域や暦に応じた年月日時分秒になる
0409デフォルトの名無しさん2013/11/06(水) 15:11:41.13
未だに日付関連APIすらまともに使えないって…
初心者未満のレベルだってことを自覚した方がいいぞ
0410デフォルトの名無しさん2013/11/06(水) 15:51:44.98
質問スレで上から目線()
0411デフォルトの名無しさん2013/11/06(水) 17:04:27.24
Runnableのような単一のメソッドのみ持ったインターフェースを、コールバック用の
関数っぽく扱うために(メンバ変数などを持たせずに)、runメソッドのみを実装することに
なると思うんですが、そのような関数のためのインスタンスでも、いちいちヒープ領域に
インスタンスを作ったり開放したりするコストなどがかかるのでしょうか?

同じようなモノをJava8で追加されるラムダ式で実現すると、static finalで作った関数と
同程度の最適化が起こると聞いたので気になります
0412デフォルトの名無しさん2013/11/06(水) 17:09:42.88
ゆっくり休んだほうがいいぞ
0413デフォルトの名無しさん2013/11/06(水) 17:12:14.31
だなw
0414デフォルトの名無しさん2013/11/06(水) 17:20:30.01
>>408
詳しい解説ありがとうございます
Calendarでやってみたんですが日本の日時になってくれません

TimeZone tz = TimeZone.getTimeZone("Asia/Tokyo");
Calendar calendar = Calendar.getInstance(tz);
System.out.println(calendar.getTime());
System.out.println(calendar.getTimeZone());

いくつかのオンラインでためしてみたのですが時間がずれてしまいます
http://www.browxy.com/
http://www.compileonline.com/compile_java_online.php
0415デフォルトの名無しさん2013/11/06(水) 17:32:17.98
>>414
getTime の戻り値は Date
Date は地域に結びついていないと言った
Calendar の年月日時分秒は get で取る
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH) + 1);
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
System.out.println(calendar.get(Calendar.MINUTE));
System.out.println(calendar.get(Calendar.SECOND));
0416デフォルトの名無しさん2013/11/06(水) 17:48:17.65
馬鹿には無理
0417デフォルトの名無しさん2013/11/07(木) 03:02:13.62
JavaDBを使ったアプリを作って配布する際にJavaDBのファイルを含めないとアプリをダウンロードしたユーザはアプリを使えないよね?
JavaDBのファイルってアプリに含めて配布してもいいのかな?どのファイルをアプリに含めればいいんだろ
0418デフォルトの名無しさん2013/11/07(木) 06:38:48.39
java初心者で申し訳ないですが質問です。

public class Sample2 {
public static void main(String[] args) {
int count=5;


while (count !=5&&count>0){
System.out.println("while :count=" +count);
count--;
}


do{
System.out.println("do-while : count="+count);
count--;
}while (count!=5&&count>0);
}

}

で結果が

do-while : count=5
do-while : count=4
do-while : count=3
do-while : count=2
do-while : count=1

になるのですが count!=5 のところの ! の意味がよくわかっていない為よくわかりません。
階乗の意味か逆の意味のどちらかと思い自分なりに考えてみたもののさっぱりでした。
count!=5 の意味に重点においた解説をどなたかしてはもらえませんか?
0419デフォルトの名無しさん2013/11/07(木) 06:43:22.44
甘えてばっかりだなゆとりは
0420デフォルトの名無しさん2013/11/07(木) 07:05:04.47
きみが5歳ならおしえてあげる。
0421デフォルトの名無しさん2013/11/07(木) 07:08:29.05
>>418
count != 5は、countが5ではないって意味。
while (count != 5 && count > 0)
はcountが5ではなく、0より大きければという条件。
countは5なので、条件は不成立。最初のwhile文は実行されない。

do while文では最初にdoのところが処理されて
count--でcountが4になる。
countが5ではなく、0より大きければという条件が成立する。
0422デフォルトの名無しさん2013/11/07(木) 07:11:00.33
オレオレ語を使われてもわかりません。
0423デフォルトの名無しさん2013/11/07(木) 07:23:51.37
>>421
解説ありがとうございます!
おかげで理解することができ、スッキリしました!
0424デフォルトの名無しさん2013/11/07(木) 07:28:31.44
テキスト検索ボックスに入力されるたびにリストのフィルター処理しているんですが、一文字目のフィルター処理中に2文字目が入力された場合、処理を中断して2文字目の処理を優先する方法はありますか?
0425デフォルトの名無しさん2013/11/07(木) 07:29:13.14
>>421
なるほど、大変良くわかりました。
どうもありがとうございました!
0426デフォルトの名無しさん2013/11/07(木) 07:41:39.94
javadbは、jdk7/db/LICENSE のファイル(linux)によると Apache License Version 2.0 とあるので、dbフォルダごと全部そのフォルダの構造やファイルを一切編集しないでコピーすれば、再配布できるはず。
0427デフォルトの名無しさん2013/11/07(木) 08:03:56.16
一番年下のたらちゃんに敬語を強制させているさざえ家の闇に触れた気がした。
0428デフォルトの名無しさん2013/11/07(木) 08:28:14.09
>>422
0429デフォルトの名無しさん2013/11/07(木) 11:45:20.36
集合の比較ができるクラスはありますか?

int配列1 1,2,3
int配列2 1,3,5
とあって、
この場合、1,3を取得をしたいのです。
0430デフォルトの名無しさん2013/11/07(木) 12:06:57.00
Set、検索するきもないのか
0431デフォルトの名無しさん2013/11/07(木) 12:36:05.92
教えてクレクレ君っていうのはくだらない理由で大学教授を怨むパターンが多い。
0432デフォルトの名無しさん2013/11/07(木) 12:43:12.70
>>172
0433デフォルトの名無しさん2013/11/07(木) 13:27:52.81
>>430
ありがとうございます。
こういうの探してました!
ちょっと試してみます。
0434デフォルトの名無しさん2013/11/07(木) 13:28:14.66
JWS (Java Web Start) 捨てて、
自分でJWSが管理していた部分を実装してるんだけど、
ウェブ上のファイルの最終更新日時の取得ってどうやるんだ?

毎回ダウンロードさせるわけにもいかないし、
更新するファイルだけになんらかの属性つければ話は済むんだが、
なんか方法あるなら教えてください。
0435デフォルトの名無しさん2013/11/07(木) 13:32:25.37
そういうのこそ、自分で管理しないのがコツ
04364342013/11/07(木) 13:36:57.43
自己解決
URL url = new URL("http://...";);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
Date date = new Date(conn.getLastModified());

>>435
証明書の警告がなければ使い続けてたよ。
0437デフォルトの名無しさん2013/11/07(木) 14:50:51.89
>自分でJWSが管理していた部分を実装

この実装をダウンロードさせてインストールさせることには抵抗が無いと?
0438デフォルトの名無しさん2013/11/07(木) 15:11:27.17
>>437

>この実装をダウンロードさせてインストールさせることには抵抗が無いと?

”させる”ってことは俺について言ってるんだよな?
答えは「ない」だ。
大体JWS使ってる時だってオレオレ証明書だったし。


もしユーザー側の抵抗について言ってるんだとしても
やっぱり「ない」けどな。
大体 ユーザーはどうやって実装してるかなんて気にしてないし。
むしろJWSのセキュリティ警告出る方が心配あおるだけだし。
0439デフォルトの名無しさん2013/11/07(木) 15:29:38.59
ライブラリやアプリの開発者は、ユーザが用意した任意のシステムやオーエスについてのセキュリティまでをもサポートする必要はない
0440デフォルトの名無しさん2013/11/07(木) 15:38:58.34
>>172
04414172013/11/07(木) 15:43:35.10
>>426
�d、全部含める必要があるのか・・
0442デフォルトの名無しさん2013/11/07(木) 16:09:17.72
ジャバはオワコンでこれからはシー・シャープですよ?
つまりこれからはサーフェースとエックス・ボックスとウィンドーズ・ホンの時代ってことです!!
マイクロソフトが豊富な資金力で壮大なマーケティングをやってるの知らないんですか!?
0443デフォルトの名無しさん2013/11/07(木) 16:12:29.76
アスペ..netですね、わかります
0444デフォルトの名無しさん2013/11/07(木) 16:14:28.31
構文とライブラリの覚え直しですね
0445デフォルトの名無しさん2013/11/07(木) 16:23:16.03
グーグルがモトローラーを買収して、マイクロソフトがノキアを買収して、オラクルも携帯端末ハード企業を買収して、nexusやmssurface(amr)みたいなjavameのハードウェアのリファレンス・モデルを出してほしい。
0446デフォルトの名無しさん2013/11/07(木) 16:24:36.04
SQLiteみたいにデータベースっぽくファイルへの読み書きができるライブラリとかないの?
0447デフォルトの名無しさん2013/11/07(木) 16:29:44.16
>>446
それがsqliteでは。
他のアプリからも読みるフォーマットでということかな。
perlの頃にcsvファイルフォーマットでsqlとかあったから、それの頭にjつけて探せばあるんじゃね。(適当)
0448デフォルトの名無しさん2013/11/07(木) 16:33:42.62
SQLJet?::?Pure Java SQLite
http://sqljet.com/
0449デフォルトの名無しさん2013/11/07(木) 16:42:41.15
javadbを使ってるんですが、例えばselectで出てきた2行目だけを削除したいときのsqlはどう書けばいいんですか?
0450デフォルトの名無しさん2013/11/07(木) 16:55:32.22
【PureJava】 Derby 1 【OpenSource】
http://toro.2ch.net/test/read.cgi/db/1128799341/
0451デフォルトの名無しさん2013/11/07(木) 17:03:17.89
>>449
sqlに2行目などという概念は無い
0452デフォルトの名無しさん2013/11/07(木) 17:07:16.83
Using Java DB in Desktop Applications
http://www.oracle.com/technetwork/articles/javase/javadb-141163.html

これってderby.jar単体を自分のアプリのjarに含めて配布してOKってこと?
>>426が言うみたいに全部のファイルを含める必要はないってことでOK?
0453デフォルトの名無しさん2013/11/07(木) 17:12:07.31
1, taro
2, jiro
2, jiro
3, san

となってるときwhereを使うと全ての2, jiroの行が消えちゃうんですよ。
例えばこのとき2行目だけを消せるようなsqlはどう書くんでしょうか?
0454デフォルトの名無しさん2013/11/07(木) 17:13:55.06
>>452
ライセンスをちゃんと理解できればそうもできるけど、分からないなら全部配布した方がいい。
0455デフォルトの名無しさん2013/11/07(木) 17:14:53.62
>>453
distinct
てかスレチ
0456デフォルトの名無しさん2013/11/07(木) 17:23:01.78
>>452
>derby.jar単体を自分のアプリのjarに含めて

そんなことそのページに書いてないよ
0457デフォルトの名無しさん2013/11/07(木) 17:23:23.01
>>453
主キーが無いのが悪い
0458デフォルトの名無しさん2013/11/07(木) 17:23:26.00
distinctはそういうときに使うんですか。
selectはできても、deleteはできないみたいですね。
0459デフォルトの名無しさん2013/11/07(木) 17:28:22.00
>>457
dbで直接updateしないで、csvをインポートしたtableを作成したりなんで、sqlはまったく同じデータが複数行で被ってるときに弱いんですよ。
今はこの脆弱性をどうしようか思案中です。
0460デフォルトの名無しさん2013/11/07(木) 17:35:09.45
>>459
ROWNUMが無いならどうしようもないな
0461デフォルトの名無しさん2013/11/07(木) 17:41:23.96
sqlだと結局そうなるんですよねー^^
0462デフォルトの名無しさん2013/11/07(木) 17:45:13.15
distinctはもれなくgroup by nameに置き換え可能ですか?
0463デフォルトの名無しさん2013/11/07(木) 17:47:17.69
>>453
お前には2番目と3番目に出てきたものの違いがわかるのか?
CSVを取り込んだ時の順番かどうかは実装次第じゃないのか?
0464デフォルトの名無しさん2013/11/07(木) 17:50:47.37
自分で実装したプログラムで取り込むなら主キーを設定すればいいが
そうではないのだろう
だから無理
0465デフォルトの名無しさん2013/11/07(木) 17:57:07.78
>>172
0466デフォルトの名無しさん2013/11/07(木) 18:42:16.68
前処理で行番号付ければいいんじゃね。
0467デフォルトの名無しさん2013/11/07(木) 18:46:22.90
>>454
derby.jarの中のMETA-INFにapache license 2.0の要求するLICENSEファイルとNOTICEファイルが入ってるみたいだし、derby.jar単体で再配布とか使ってもいいとかそういうことではない?
0468デフォルトの名無しさん2013/11/07(木) 18:55:31.67
>>467
derby.jarだけでなく、他に必須のderbyclient.jar, derbyLocale_ja_JP.jar にもライセンスの喚起のファイルがあるね。
それならjarの中身をいじらないままなら該当のだけを個別に配布しても多分大丈夫だろう。
0469デフォルトの名無しさん2013/11/07(木) 19:06:42.94
ただし己のJARにderby.jarを含めるなら話は別だ
0470デフォルトの名無しさん2013/11/07(木) 21:04:00.74
組み込み型のderbyとSQLiteとどっちのほうが
0471デフォルトの名無しさん2013/11/07(木) 21:13:34.43
licenses/Apache_License_2.0 - Open Source Group Japan Wiki - Open Source Group Japan - SourceForge.JP
http://sourceforge.jp/projects/opensource/wiki/licenses%2FApache_License_2.0

JARはここで言う「成果物」に相当するの?
0472デフォルトの名無しさん2013/11/07(木) 21:27:48.12
[ThinkIT] 第1回:Javaはまだまだこれからだ! (1/3)
http://thinkit.co.jp/free/article/0708/9/1/

> JARという配布形式では依存しているライブラリを1つにまとめて扱えない
>
> JARはその内部にJARを持つような構造をサポートしていません。
> あるライブラリが依存するJARを一緒にまとめて配布することはできても、まとめて1つのファイルとしてJVMにロードすることはできません。
0473デフォルトの名無しさん2013/11/07(木) 21:29:16.04
>>471
ここでやれ
http://toro.2ch.net/test/read.cgi/tech/1266247461/
0474デフォルトの名無しさん2013/11/07(木) 23:03:47.98
あいかわらず変な奴が多いなここ
0475デフォルトの名無しさん2013/11/07(木) 23:17:14.74
Pure Javaに拘る奴はバカ
0476デフォルトの名無しさん2013/11/07(木) 23:18:28.91
>>475
ここはおまえのくるところではない
0477デフォルトの名無しさん2013/11/07(木) 23:24:50.77
JNI
0478デフォルトの名無しさん2013/11/08(金) 01:31:59.62
「PureJavaじゃありません」とかわけのわからんこと言って客の要求を却下してこそ一流
0479デフォルトの名無しさん2013/11/08(金) 01:35:02.58
SQLiteは著作権放棄だからJavaに移植して使えばいいのよ
0480デフォルトの名無しさん2013/11/08(金) 05:21:36.23
>>455
java6からderby (javadb)とrhino (scripting)がjavase jdkに含まれてるから、一応このすれで扱っても問題ない。
しかも、それらはjdkのスタンダード・ライブラリ扱いってことで、いい宣伝にもなるんじゃないか。
0481デフォルトの名無しさん2013/11/08(金) 06:23:49.10
Apache Licenseなのだからjarの中身を弄ろうがバラそうが自分の成果物と混ぜて
uber jarにしようが、使ってますということをリンク付きでどこかに明示して
オリジナルのNOTICEファイルを配布物の目につくどこかに突っ込んでおけば無問題。
0482デフォルトの名無しさん2013/11/08(金) 06:42:28.13
ライセンスの人為的解釈だとそうもいえるけど、著作物の同一性保持の法的保護ってのが先立って存在するから、何でもありって分けじゃあない。
0483デフォルトの名無しさん2013/11/08(金) 07:15:23.29
926+1 :デフォルトの名無しさん [↓] :2013/10/25(金) 00:03:45.26
javafxを習得しても、javafxは現状、iphoneでもandroidでもwindhowsphoneでも、ipadでもnexusでもsurfaceでも動かん。
0484デフォルトの名無しさん2013/11/08(金) 07:23:06.30
>>482
派生物の許諾を許可するライセンスなのに巻き戻して同一性保護とかわけわからん。
日本だとOSSプロジェクトのフォークは永遠に無理だな。
0485デフォルトの名無しさん2013/11/08(金) 07:25:28.27
派生物の許諾 > 派生物の配布
0486デフォルトの名無しさん2013/11/08(金) 07:31:31.86
そのライセンスは、派生物の何を明示的に許諾するのか、暗黙では何ができて何ができないのか、そういうのを理解できないならその成果物の塊のままで再配布すればいいですよ。
とくにプログラムものでは、それの二次創作なのか、ライブラリとして利用するだけなのかとかも、ちゃんと理解してないといけません。
そうでなければ、スクラッチで、まったくの無から作って下さい。
オープンとかフォークとか成果物自体は結構どうでもよくて、自分である程度形になったものを作れるようになると、著作権とかライセンスとかにある意義の大事なところが理解できてくるでしょう。
0487デフォルトの名無しさん2013/11/08(金) 07:46:08.79
>>484
日本でオープンソースのプロジェクトなんてのは成功しなくていい
日本人が中心になってやってるのなんかは想像するだけできもい
0488デフォルトの名無しさん2013/11/08(金) 07:48:39.34
ボかさないでApache Licenseで許諾されている派生物の配布がどのように同一性の
保護云々で妨げられるのか説明してくれ。

そしてApapche commons等々がバラされて混ぜられて一つのjarに固められたものが
当たり前のように配布されていたりMaven centralから落ちてきて頭を抱える昨今、
DerbyというApache Projectの成果物をそのように扱うことにどの程度のリスクが
あるのか実務的な観点から答えてみてくれ。

ヒマ人以外にとっては単に「杞憂」。
■ このスレッドは過去ログ倉庫に格納されています