トップページ⇒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/
0061デフォルトの名無しさん2013/10/26(土) 14:54:44.59
security managerが動いてると駄目なのか、いまいち使えないな。
0062デフォルトの名無しさん2013/10/26(土) 16:40:47.34
すみません、fc2ブログで、多数の画像のaltを一括で一つの文章(単語)に変更したいのですが、
javaとかでこう言う事は可能でしょうか?
また可能なら参考になるサイトがあれば教えてください。
0063デフォルトの名無しさん2013/10/26(土) 16:45:08.30
>>62
HTMLの変換ならXLSTでできる、XML Javaの本かggrb見つかる
0064デフォルトの名無しさん2013/10/26(土) 16:51:05.70
>>59
mvn dependency:copy-dependenciesじゃ駄目かな。
ほしいJarをdependencyに書いておいてこのコマンドで依存性も含めて全部落としてきて
target/dependency内にコピると思うけど。
0065デフォルトの名無しさん2013/10/26(土) 16:56:53.25
>>63
レスありがとうございます
そちらの方を検索して探してきます
0066デフォルトの名無しさん2013/10/26(土) 17:22:10.04
>>62
xmlstarletで簡単にできそうなんでやってみたら、xhtml的に解釈できないとこがあって無理だった。
0067デフォルトの名無しさん2013/10/26(土) 18:24:39.87
import javax.swing.text.html.parser.ParserDelegator;
import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.HTML;
import javax.swing.text.MutableAttributeSet;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.swing.text.BadLocationException;

class Hoge extends HTMLEditorKit.ParserCallback
{
public static void main(String[] args) throws FileNotFoundException, IOException {
Hoge hoge = new Hoge();
FileReader file = new FileReader("unko.html");
ParserDelegator pd = new ParserDelegator();

pd.parse(file, hoge, true);

file.close();

}
0068デフォルトの名無しさん2013/10/26(土) 18:32:12.60
eclipseってなにがいいの?
swingはnetbeansのほうが優れてると思うし、
eclipseってwebアプリケーションとかの人が使ってるんだろうか
0069デフォルトの名無しさん2013/10/26(土) 18:35:45.95
http://www54.atwiki.jp/projecthikky/pages/38.html
使えなかった
0070デフォルトの名無しさん2013/10/26(土) 18:43:48.71
>>68
動作が軽快なとこがいいよ。
0071デフォルトの名無しさん2013/10/26(土) 18:45:40.67
if ((p = (char *)malloc(size)) != NULL){...}

javaでこういう比較と代入を一括でできませんか?
0072デフォルトの名無しさん2013/10/26(土) 19:15:20.81
出来るけど古いイディオムかな。
書かれているmallocの例の場合は処理の流れの読みやすさを優先して個人的は二行に
分割すると思う。

比較的頻出するパターンだとwhileを使ったファイルの逐次読み込み。
Java File whileでググるとwhileの条件内で代入と比較を同時に行う例がよく出てくる。
ただ最近はこういった逐次読み込みもイテレーターとして抽象化してfor(:)で手軽に
行えるようにする場合が多い気がする。
0073デフォルトの名無しさん2013/10/26(土) 22:34:25.01
8ならStreemにする。
Files#lines(java.nio.file.Path, java.nio.charset.Charset)とか
0074デフォルトの名無しさん2013/10/26(土) 22:35:24.18
>>57
>>58
同じ名前でもループした分だけちゃんとクラスが作られてるんですね
親切に教えていただいてありがとうございます。謎が解けました
0075デフォルトの名無しさん2013/10/26(土) 22:49:29.27
ジャバのウンコさんたちはイテレータとかストリームとか難しいこといっぱい知ってるんですねT_T
0076デフォルトの名無しさん2013/10/26(土) 23:03:26.53
うんこがしゃべった
0077デフォルトの名無しさん2013/10/26(土) 23:11:47.50
藁
0078デフォルトの名無しさん2013/10/26(土) 23:17:14.24
>>74
なんの亀レスかと思ったら>>56のextentの話か

>(最後に入力したデータ)を読みにいっている
見えるか見えないかじゃなくて存在するかしないかの話。見えるのと存在するのと代入はそれぞれ違う。

>同じ名前でもループした分だけちゃんとクラスが作られてるんですね
javaはブロックスコープだからループ回すたびにコールスタックにスタックフレームpushするからループ回すたびに存在する、
ループ抜けるとスタックからpopするから存在しなくなる。これが繰り返されるから結果ループ回すたびにループした分だけちゃんとクラスが作られる。
無限ループするとStackoverflowするじゃん。スタック足らなくなって変数作れなくなったぜベイベー!って合図。
0079デフォルトの名無しさん2013/10/26(土) 23:35:43.70
うんこをプッシュしたりポップしたりして長いループでベイベーなんですか?
0080デフォルトの名無しさん2013/10/26(土) 23:40:59.16
例えば、80秒を1分20秒に変換してくれるフォーマットはありますか?

60秒に満たない場合は秒表示のみできると助かるんですが。
0081デフォルトの名無しさん2013/10/26(土) 23:52:45.62
>>80
ない。
自作すれば。
簡単だし
0082デフォルトの名無しさん2013/10/26(土) 23:52:56.95
>>78
>javaはブロックスコープだからループ回すたびにコールスタックにスタックフレームpushするからループ回すたびに存在する
違う。同じローカル変数を初期化して再利用してる。
コンパイラがブロックスコープで名前解決してくれてるだけ。
0083デフォルトの名無しさん2013/10/27(日) 00:01:09.25
java6でもそうだっけ
0084デフォルトの名無しさん2013/10/27(日) 00:07:49.07
実装次第と言えばそうなんだが、
C系の静的言語の設計ではブロック変数を>>82のように実装するのが大々大前提だからね
よほど今と大きく異なるアーキテクチャのマシンで動かすのでもない限りは変わることはありえない
0085デフォルトの名無しさん2013/10/27(日) 00:30:51.25
>>81
30分ぐらい探してたので、ないと言ってもらえて助かりました。

private String fomatSecound(int secound){

int h = secound / 3600;
int m = (secound - (h * 3600)) / 60;
int s = (secound - (h * 3600) - (m * 60));

String duration;
duration = h == 0 ? "" : h + "時間";
duration = m == 0 ? duration : duration + m + "分";
duration = s == 0 ? duration : duration + s + "秒";

return duration;

}
こんなコード書いたんですけど、
もっとスマートな方法あったら教えてください。
0086デフォルトの名無しさん2013/10/27(日) 00:57:47.01
jettyでspring3を使おうと思うのですが、怒られてしまいます。
何か設定が悪いからなのでしょうか?

SEVERE: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.NoSuchFieldError: NULL
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:529)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
0087デフォルトの名無しさん2013/10/27(日) 02:40:28.26
軽く調べてみたらSpringの各コンポーネント間のバージョンのコンフリクトが
原因で起こっている事例がいくつか。
0088デフォルトの名無しさん2013/10/27(日) 03:13:17.33
>>85
無いのなら自前で作ったものをライブラリとして公開するとかしたらとても
0089デフォルトの名無しさん2013/10/27(日) 03:23:50.94
おし!ライブラリ公開だ!

class TimeFormater
{
  
  public static void main(String[] args) {
    int s = TimeFormater.toSeconds(7, 33, 55);
    System.out.println(TimeFormater.format(s));
    
  }
  
  public static int toSeconds(int hours, int minutes, int seconds) {
    return 3600 * hours + 60 * minutes + seconds;
  }
  
  public static String format(int seconds) {
    int h = seconds / 3600;
    int m = (seconds / 60) % 60;
    int s = seconds % 60;
    return (h > 0 ? h + "時" : "") + (h + m > 0 ? m + "分" : "") + s + "秒";
  }
  
}
0090デフォルトの名無しさん2013/10/27(日) 03:28:32.61
>89

つ Joda PeriodFormatter
0091デフォルトの名無しさん2013/10/27(日) 03:33:30.93
>>85
"Java time pretty print"でググればそれなりに方法は出てくる。
あと時刻に関してJavaでちょっと凝ったことをする場合はJodaが定番。
0092デフォルトの名無しさん2013/10/27(日) 03:42:09.10
Joda便利杉ワロタ

Joda-Time - Java date and time API - Home
http://www.joda.org/joda-time/index.html
0093デフォルトの名無しさん2013/10/27(日) 03:54:18.30
>>92
これはいいかも!
Calendarにはガバガバメモリーリークしてるバグがあるからなw
0094デフォルトの名無しさん2013/10/27(日) 04:28:13.28
ヨーダのステマ
0095デフォルトの名無しさん2013/10/27(日) 04:29:18.51
>"Java time pretty print"でググればそれなりに方法は出てくる。

英語で検索とは・・・日本語圏での情報は少ないってことか
0096デフォルトの名無しさん2013/10/27(日) 05:31:30.09
ちなみにCalendarを1つインスタンス化する度に600kbメモリーリークしてたと記憶している。
0097デフォルトの名無しさん2013/10/27(日) 05:35:57.85
英語の方が情報がたくさんあるというのもあるけれども、この手の「読みやすい文字列として
出力する」という操作はpretty printという呼び方で決まり切っているから。
Googleで検索もしやすい。
0098デフォルトの名無しさん2013/10/27(日) 05:44:55.03
Prettyprint (or pretty-print) is the application of any of various stylistic formatting conventions to text, source code, markup, and other similar kinds of content.
0099デフォルトの名無しさん2013/10/27(日) 07:28:06.68
>>93
マジかお・・・Java 7の話?昔の話?
0100デフォルトの名無しさん2013/10/27(日) 07:35:39.01
javaをこれから始めるんですが
本に書いてあった.javaを.classにする作業で使うjavacというコマンドをコマンドプロンプトに入力すると
エラー:メイン・クラスcom.sun.tools.javac.mainが見つからなかったかロードできませんでした
とメッセージが表示されて.classが作れません、どうすればできるか教えてください

jdkはインストールされてます、pathも確認しました
0101デフォルトの名無しさん2013/10/27(日) 07:48:04.75
エスパーするとだな、JAVA_HOMEとしてJDKではなくJREをセットしているでしょ。
0102デフォルトの名無しさん2013/10/27(日) 07:55:43.71
>>100
tools.jarが見つからないのじゃないか。
jdkを再インストールすればいいよ。
0103デフォルトの名無しさん2013/10/27(日) 08:10:00.16
>>102
再インストールは2回しましたが解決できませんでした
0104デフォルトの名無しさん2013/10/27(日) 08:10:52.74
>>101
つまりどういうことですか?
Java_homeとはなんのことですか
0105デフォルトの名無しさん2013/10/27(日) 08:16:54.98
>>103
PATHになんと設定したのか教えて
0106デフォルトの名無しさん2013/10/27(日) 08:29:24.01
>>104
ごめん。環境変数JAVA_HOMEのこと。コマンドプロンプトから
set JAVA_HOME
set CLASSPATH
それぞれのコマンドを実行した結果をコピペしてみて。
(ユーザー名などが含まれる場合があるので要注意。その場合は名前の部分を書き換えて)
0107デフォルトの名無しさん2013/10/27(日) 08:45:17.51
馬鹿には無理
0108デフォルトの名無しさん2013/10/27(日) 12:59:49.40
>>105
jdkの中のbinというフォルダです
C:\Program Files\Java\jdk 1.7.0_45\bin\だった気がします
0109デフォルトの名無しさん2013/10/27(日) 13:15:47.45
Windowsのversion、32bit版か64bit版か、
jdkのversion、32bit版か64bit版か
0110デフォルトの名無しさん2013/10/27(日) 13:36:05.15
>>109
win64bit、jdkは1.7.0_45もちろん64bit版です
スペックが足りてないんでしょうか
javaを始めるのはこんなにも難しいものなんですね
0111デフォルトの名無しさん2013/10/27(日) 13:36:06.39
>>108
このパスだと、クォート必要だぞ
0112デフォルトの名無しさん2013/10/27(日) 13:50:33.24
JAVA_HOMEとCLASSPATHの設定値はどうなの・・・
0113デフォルトの名無しさん2013/10/27(日) 14:06:20.51
本に書いてないことがたくさん・・・
ここのほうかよっぽど頼りになります

java_homeはわかりません、設定してみます
0114デフォルトの名無しさん2013/10/27(日) 14:15:48.92
設定しなくて良いし勝手に小文字にしない > JAVA_HOME
繰り返すけどSET JAVA_HOMEとSET CLASSPATHの実行結果はどうなの?
0115デフォルトの名無しさん2013/10/27(日) 14:17:24.04
JAVA_HOMEはないならないでpathから推測してくれるのだが、
逆に変な値が設定されているとそうなるね。

set JAVA_HOME=
で解除できる
0116デフォルトの名無しさん2013/10/27(日) 20:53:55.61
正規表現で
マッチさせたい文字列が、対象文字列の中に複数存在する時、
指定した回数目に現れる部分をマッチさせる方法ってある?

例えば
s = "hoge foo hoge bar hoge piyo hoge qux";
この文字列の左から3つめのhogeから文末まで後方参照とかしたいのです

ループ文を使うほかない?
0117デフォルトの名無しさん2013/10/27(日) 21:43:27.19
>>100
tools.jarはjava1.7から廃止されたんじゃなかったけ?
>>116
方法はある
0118デフォルトの名無しさん2013/10/27(日) 21:51:43.21
>>116
方法の有無でいえばすぐ例は出せるだろうに
(?:hoge.*?){3}(hoge.*)
上手な正規表現で済ませたいって話なら正規表現のスレで相談しろという話になる
01191162013/10/27(日) 22:42:28.37
はい…ありがとうございます
0120デフォルトの名無しさん2013/10/27(日) 22:48:01.53
>>87
レスありがとうございました
0121デフォルトの名無しさん2013/10/28(月) 22:03:58.89
プログラミング経験なしでAndroidアプリを作ろうと思っているんですけど、何か良い書籍教えていただけませんか?
0122デフォルトの名無しさん2013/10/28(月) 22:17:26.93
>>121
本屋のjavaコーナー行って端から端まで買え
0123デフォルトの名無しさん2013/10/28(月) 22:17:41.00
サーブレッドを使ってプログラムを作っているのですが、設定ファイル(ORMの設定ファイル)はどこに置くのがベストですか?
/WEB-INF とかが無難なところでしょうか
0124デフォルトの名無しさん2013/10/28(月) 22:19:49.14
>>121
ttp://www.amazon.co.jp/dp/4822281655
0125デフォルトの名無しさん2013/10/29(火) 03:56:33.65
>>123 yes
0126デフォルトの名無しさん2013/10/29(火) 04:30:26.49
>>114
set JAVA_HOMEの実行結果は
JAVA_HOME=C:\Program Files\Java\jdk1.7.0_45\bin;でした
set CLASSPATHは
環境変数 CLASSPATH が定義されていません でした

CLASSPATHを設定すれば使えるようになりますかね
0127デフォルトの名無しさん2013/10/29(火) 09:01:30.26
やってから言え
0128デフォルトの名無しさん2013/10/29(火) 09:32:18.65
JAVA_HOMEにbinは不要だと思う。
0129デフォルトの名無しさん2013/10/29(火) 13:25:18.41
java7のjavacならJAVA_HOMEは参照してないから問題ないはずだけどな。
もしかして古い版のjavaが入ってて、pathがそっち先になってないかな?
0130デフォルトの名無しさん2013/10/29(火) 16:44:36.62
となると

javac -version

でまずバージョン確認か。
0131デフォルトの名無しさん2013/10/29(火) 23:53:45.51
jdkのインストールは最大の難関だから
0132デフォルトの名無しさん2013/10/29(火) 23:55:44.69
そんなもんJavaプログラミング自体の面倒臭さに比べれば全く無視して差し支えないオーバーヘッド
0133デフォルトの名無しさん2013/10/30(水) 00:41:26.74
>>131
コンピュータ(というかシェル)について基本的なこと知っていれば朝飯前だろ。
普段から人任せで、どうやって動いているのか理解してないと、結局プログラムもサンプル以上のことできないから、先にコンピュータについて学んだほうがいいと思うぞ。
0134デフォルトの名無しさん2013/10/30(水) 00:43:53.74
馬鹿には無理
0135デフォルトの名無しさん2013/10/30(水) 01:05:33.06
jdkのインストールできる=javaできます!だろ
0136デフォルトの名無しさん2013/10/30(水) 01:07:32.64
馬鹿には無理
0137デフォルトの名無しさん2013/10/30(水) 01:16:10.28
WindowsならJDKのインストーラが細かいとこまでやってくれんじゃねえの?
0138デフォルトの名無しさん2013/10/30(水) 06:32:23.53
Eclipse落とすだけでいいじゃない
0139デフォルトの名無しさん2013/10/30(水) 07:30:02.19
環境変数くらいプログラミングやってたらどのみち使うだろ
0140デフォルトの名無しさん2013/10/30(水) 07:41:39.18
>>137
トラブルに対しては無力だから、そーっとそーっと崩さないように使い続けなければいけなくなる。
0141デフォルトの名無しさん2013/10/30(水) 12:47:29.08
>>122
入門書の棚買いはさすがに未だかつて無いのでは
0142デフォルトの名無しさん2013/10/30(水) 13:28:00.48
クラスパスだろうjk
0143デフォルトの名無しさん2013/10/30(水) 14:43:22.78
>>121
本を読むより先にエクセルなり使って
具体的なアプリの画面イメージとか動作イメージを作ってみる方が有意義
0144デフォルトの名無しさん2013/10/30(水) 15:49:10.57
ランタイムの話はjreポータブルはどうなん?
0145デフォルトの名無しさん2013/10/30(水) 20:00:21.81
>>142
PATHの仕組みを理解してれば、CLASSPATHの仕組みを理解するのも簡単じゃないかな。
0146デフォルトの名無しさん2013/10/30(水) 20:16:22.53
>>145
結構はまった記憶がある、どこにオブジェクトがあってどこで実行されるとか
0147デフォルトの名無しさん2013/10/30(水) 20:24:06.34
>>146
そりゃ実装でなくて概念で理解しないとハマるだろうけど。C言語使いに多い気がする。
0148デフォルトの名無しさん2013/10/30(水) 20:33:40.69
IDE使ってると頭つかわねーからな、コマンドラインにうつるととまどう
0149デフォルトの名無しさん2013/10/30(水) 21:46:23.58
javaはc#の生産性に勝てるかい?
.netばかりやっている上司を論破できるのか、俺にはそれが問題だ!!
0150デフォルトの名無しさん2013/10/30(水) 21:56:10.97
そうかよかったね
0151デフォルトの名無しさん2013/10/30(水) 22:37:28.70
>>149
ビジネスモデルや開発手法を無視してそう。
C#ってCI(継続的開発)ツールって使えるの?
0152デフォルトの名無しさん2013/10/30(水) 22:43:04.43
馬鹿にかまうなよ
0153デフォルトの名無しさん2013/10/31(木) 00:01:09.18
>>149
JavaかC#かは関係ない。
コレクションやオブジェクト関係のメソッドを知ってるか、知ってないかの差が大きい。
0154デフォルトの名無しさん2013/10/31(木) 00:26:08.92
意味不明
0155デフォルトの名無しさん2013/10/31(木) 00:58:31.27
>>154
ハッシュコードの概念とかequalsメソッドの意味
知らないとリストを回してGetしはじめる
0156デフォルトの名無しさん2013/10/31(木) 01:00:04.85
ダメなプロジェクトは
Equalsメソッドとハッシュコードの自動生成をやってない
0157デフォルトの名無しさん2013/10/31(木) 01:06:23.15
自動生成ってEclipseの?
0158デフォルトの名無しさん2013/10/31(木) 01:07:19.30
>>155
意味不明2
0159デフォルトの名無しさん2013/10/31(木) 01:09:35.53
>>157
フレームワークでも、Eclipseでもどっでも良いんじゃないの?
フレームワークならアノテーションつけといてAntやAPTでDTOの自動生成とか。
0160デフォルトの名無しさん2013/10/31(木) 01:18:00.11
自動生成しないとどうなるの?
0161デフォルトの名無しさん2013/10/31(木) 01:29:31.58
>>160
List、Mapの機能で本来の機能を果たさなくなる。
■ このスレッドは過去ログ倉庫に格納されています