2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

☆★Java質問・相談スレッド180★★

1 :デフォルトの名無しさん:2017/04/21(金) 22:13:17.42 ID:Sf0TFsly.net
プログラミング言語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() を使え。※

質問時の心得
・コンパイルエラーか実行時エラーか、エラーではないが意図しない動作なのかはっきりしろ。あとエラーメッセージちゃんと読め。
・前提条件としてOS、開発環境、バージョン、使用フレームワーク等を明記。

前スレ
★★Java質問・相談スレッド179★★
http://echo.2ch.net/test/read.cgi/tech/1476706523/

108 :デフォルトの名無しさん:2017/05/28(日) 11:43:31.44 ID:lcWhcyEB.net
>>106,107
ありがとうございました
書き換えられてしまうんですね。ちょっと設計見直してみます

109 :デフォルトの名無しさん:2017/05/28(日) 12:15:32.64 ID:KZ/JXw9A.net
Javaでは伝統的にあんまりその辺ガチガチに作らないことが多い
継承はなるべくオープンであるべき!スーパークラスが壊れる?そんなのサブクラスの責任でしょ?っていう考原理主義的な考え方がまだ色濃く残っている
C#なんかだとオーバーライドさせたいところだけprotectedな仮想メソッドとして切り出しておいて
それ以外のオーバーライドは一切認めない、みたいなガッチガチな設計をするのが一般的なんだけど

110 :デフォルトの名無しさん:2017/05/28(日) 12:38:13.92 ID:5K6OvT18.net
上書きされたくないならメソッドに final つけときゃいいんじゃねーの?

111 :デフォルトの名無しさん:2017/05/28(日) 13:22:14.80 ID:KZ/JXw9A.net
Javaでメソッドに軒並みfinal付けると、
上から目線でオブジェクト指向を理解していない馬鹿呼ばわりする奴がいるからなあ

112 :デフォルトの名無しさん:2017/05/28(日) 14:05:04.96 ID:7TA+N736.net
>>111
別にバカが何を言っても関係なくね?

113 :デフォルトの名無しさん:2017/05/28(日) 15:15:34.03 ID:fRR4LI9a.net
インターフェース

114 :デフォルトの名無しさん:2017/05/28(日) 15:33:19.93 ID:TqBbmupp.net
初心者なんだけど、
スカイプとかって、なんという言語で作られてるの?

115 :デフォルトの名無しさん:2017/05/28(日) 15:54:23.33 ID:LqX4nhhl.net
C++だろう
MSだからスマホ版はC#に移行してるかもしれないけど

116 :デフォルトの名無しさん:2017/05/28(日) 16:51:28.22 ID:fRR4LI9a.net
スレチ

117 :デフォルトの名無しさん:2017/05/28(日) 21:32:06.13 ID:QPUrPhGM.net
>>109
Javaは継承したクラスが別物にしてしまうことを想定してないからな。

形だけ継承して中身を書き換えられるからタチが悪い。

118 :デフォルトの名無しさん:2017/05/28(日) 21:34:09.27 ID:QPUrPhGM.net
>>114
高度なWindowsアプリならWindows SDKの可能性が高い。

119 :デフォルトの名無しさん:2017/05/28(日) 22:33:09.13 ID:A2iCvXLz.net
言語言うてるやろ

120 :デフォルトの名無しさん:2017/05/28(日) 22:39:20.62 ID:pJKpSkwh.net
スレチ言うてるやろ

121 :デフォルトの名無しさん:2017/05/28(日) 22:47:21.05 ID:oCI88hgR.net
めんどくせえからVBでテキトーに作っただけだったりしてな

122 :デフォルトの名無しさん:2017/05/28(日) 23:06:34.69 ID:QPUrPhGM.net
>>119
Windows SDKならCかC++なんだよ。知らないなら調べてもの言えよ

123 :デフォルトの名無しさん:2017/05/29(月) 00:12:45.97 ID:3p3NlSCk.net
>>122
スレタイ100回声に出して読んでから来いや

124 :デフォルトの名無しさん:2017/05/29(月) 00:58:20.59 ID:3z87Obs+.net
>>123
読んできました。

125 :デフォルトの名無しさん:2017/06/03(土) 09:33:06.11 ID:os85wqX+.net
ゴスリンがAmazonに入社したらしいね
もうAmazonがJava買ってくれよ

126 :デフォルトの名無しさん:2017/06/03(土) 16:40:49.89 ID:6+8tZLqC.net
尼にメリットがない

127 :デフォルトの名無しさん:2017/06/03(土) 19:56:05.44 ID:wtE6TEU1.net
Googleみたいなウェーイ系の延長と違ってAmazonはエンタープライズITに対してわりと理解があるし
Java開発のAWSへの取り込みを加速させるには悪くないんじゃないかな

128 :デフォルトの名無しさん:2017/06/07(水) 19:46:39.66 ID:3Fne/ooH.net
chromeブラウザのF12で表示される「NetWork」タブみたいに
URLにアクセスした際に送受信されるリクエスト全部取得する処理ってどうやれば実現できますか?
たぶんhttpClientかsocketあたり使うと思うけどhttpClientはレスポンスぐらいしか取れないように見える

129 :デフォルトの名無しさん:2017/06/07(水) 20:30:10.08 ID:oWxqnrnZ.net
>>128
HttpClientでできるよ

130 :デフォルトの名無しさん:2017/06/07(水) 21:28:59.57 ID:JC7MCbjt.net
>>128
Httpclientでなぜできないと思うのか

131 :デフォルトの名無しさん:2017/06/08(木) 07:25:25.31 ID:wdYocHRg.net
javacでコンパイルした後、クリーンのようなコマンドで.javaファイルを全て削除することは出来ないでしょうか?

132 :デフォルトの名無しさん:2017/06/08(木) 08:07:45.80 ID:QV1lsJYM.net
>>131
放っとけ
現実の開発でjavac手打ちなんてありえないからどうでもいい
mavenやgradleを使おうね

133 :デフォルトの名無しさん:2017/06/08(木) 08:53:29.49 ID:V3R1vIUK.net
どーしても欲しいってのならバッチ作ってパス通せばいい

134 :デフォルトの名無しさん:2017/06/08(木) 09:09:29.53 ID:4Sfj3MXg.net
>>131
ファイルを消す方法はOSや操作環境によって違う。
Windowsでコマンドプロンプトならdelコマンド、LinuxやMacOSのようなUNIX系OSならrm等でできる。
ただしディレクトリの階層を降りて行って対象のファイルを全て削除したい場合はそれぞれやり方が大きく異なるのでよく調べてからやった方が良い。
確かUNIX系のOSではfindコマンドと組み合わせないとできない。

それとWindowsのエクスプローラは*.javaで検索後にまとめて選択して削除はできるかも知れない。やったことないけど。

135 :デフォルトの名無しさん:2017/06/08(木) 11:35:11.82 ID:N6bKCzZD.net
>>134
消すのは.classだけにしてあげて

javacに-dだかつけて特定のとこに出力しといて毎回そこ消せばいい
面倒になってワンライナー書くようになって
色々やりたくなってスクリプト化して
mavenとかみたいなソフトを作ってね

136 :デフォルトの名無しさん:2017/06/08(木) 11:51:57.46 ID:AJC0wjYd.net
コンパイルしたら問答無用でソース削除ってすげえな
サムライだわ

137 :デフォルトの名無しさん:2017/06/08(木) 12:24:32.03 ID:2+JnwVdz.net
GridPaneで8×8のマスを作ってGUIのマインスイーパーのアプリケーションを作りたいんだけど
どうやって作ったらいいと思いますか?

138 :デフォルトの名無しさん:2017/06/08(木) 12:32:38.14 ID:V3R1vIUK.net
調べながらやればいいと思う

139 :デフォルトの名無しさん:2017/06/08(木) 13:28:18.05 ID:AJC0wjYd.net
JavaのGUIなんて覚えてもどうせ実際の開発で使う機会はないんだから画面はAAでいいんじゃね
座標を入力してマスを開くようにしたらいい

140 :デフォルトの名無しさん:2017/06/08(木) 18:57:54.02 ID:wdYocHRg.net
javacを質問したものですが.javaにコードを書くのですね
初心者の勘違いでした

java能力検定というものを受けてみようと思うのですが、試験ではjavaファイルを修正してjavacでコンパイルしたものを提出するようなのでビルドとクリーンは押さえておきたいと思い

オプションで出来るだろうなと思っていました

141 :デフォルトの名無しさん:2017/06/08(木) 19:35:14.41 ID:HjFtHmDJ.net
>>140
何を言ってるのかますますわからん。

142 :デフォルトの名無しさん:2017/06/08(木) 20:59:29.83 ID:C8PmrmH4.net
そんなレベルで受かるような試験なら受ける価値は全くないと思う

143 :デフォルトの名無しさん:2017/06/08(木) 23:01:38.03 ID:FAwIWNwN.net
え?javacのオプションでファイル消せると思ってたの?
んなこたできねえ。

144 :デフォルトの名無しさん:2017/06/08(木) 23:02:59.28 ID:FAwIWNwN.net
試験のお題が「ファイルを削除するプログラムを作りなさい」だったら笑うな。

145 :デフォルトの名無しさん:2017/06/08(木) 23:13:50.27 ID:Ie+JXWe+.net
antを使いなさい

146 :デフォルトの名無しさん:2017/06/09(金) 15:00:31.56 ID:AVL5YzBz.net
コンパイラとビルドツールの違いがいまいち分かってないのか
というか、コンパイラがコンパイル対象消すって、機能としてはまず入れないと思うぞ
自分がクラスファイルを書き出した根拠を消すって、怖すぎ

147 :デフォルトの名無しさん:2017/06/09(金) 19:24:11.51 ID:2o9pD8dn.net
本でしか勉強してないのかな
実践しなよ

それができないなら情報処理技術者試験とかのがいいんじゃないか

148 :デフォルトの名無しさん:2017/06/09(金) 21:05:11.77 ID:HFELVm93.net
そういやファイル削除するプログラムは初心者向けのお題としてはいいかも知れんな。
ワイルドカードも使えてオプションでディレクトリを降下して削除することもできるようなやつ。
暇な初心者は作ってみな。

149 :デフォルトの名無しさん:2017/06/09(金) 21:22:20.33 ID:lTunlEdI.net
Runtime.getRuntime().exec(new String[] {"bash", "-c", "find . -type f -name *.java" | xargs rm"});

150 :デフォルトの名無しさん:2017/06/09(金) 21:50:56.86 ID:HFELVm93.net
Write once, Run once.

151 :デフォルトの名無しさん:2017/06/09(金) 21:54:48.29 ID:Lf5I0uKH.net
Eclipse使えよ

152 :デフォルトの名無しさん:2017/06/09(金) 22:33:25.96 ID:lTunlEdI.net
ビルドツール使わずにEclipseでビルドが許されるのは小学生まで

153 :デフォルトの名無しさん:2017/06/10(土) 01:28:25.17 ID:Aw9IeMww.net
>>149
惜しい。*をエスケープしないとカレントディレクトリに一つjavaファイルがあったらbashに展開されてそのファイル名一つが指定されたことになってしまう。2つ以上あったらfindコマンドがエラーになって動かない。

154 :デフォルトの名無しさん:2017/06/10(土) 01:42:53.38 ID:Aw9IeMww.net
それ以前の問題としてOSがUNIX系OSでなければ動かない可能性大か・・・

155 :デフォルトの名無しさん:2017/06/10(土) 09:33:16.08 ID:0q4Mq4Kr.net
パッと見で、rmのエイリアスどうなってるのか不安になる

156 :デフォルトの名無しさん:2017/06/10(土) 10:07:20.48 ID:chD4P6/F.net
>>153
print0もない

157 :デフォルトの名無しさん:2017/06/10(土) 15:12:22.05 ID:Aw9IeMww.net
>>156
あー。スペース入りファイル名ね。その場合 xargs に -0 が必要になるな。

てか、既に話が Java ではなくなってるな。

そう言えば Java だと1.7以降は java.nio.file.Files#walkFileTree() 使えば楽にできそうだな。
自分で再起処理書く必要がない。

158 :デフォルトの名無しさん:2017/06/10(土) 15:15:07.76 ID:Aw9IeMww.net
walkFileTree()はstaticメソッドだった。何もしないでいきなり使える。

159 :デフォルトの名無しさん:2017/06/14(水) 06:53:55.92 ID:Q+Hg17ig.net
walkFileTreeは典型的なJavaらしい使い辛さ
なんでプル型(イテレータみたいに利用者側のアクションで取りに行く形のこと)にしなかったのか
ああいうSAXみたいなスタイルのAPIって実装する側は楽かもしれないけど利用者は面倒臭いだけなんだよな

160 :デフォルトの名無しさん:2017/06/14(水) 07:08:13.41 ID:Q+Hg17ig.net
Visitorを実装するのが面倒臭いというのももちろんあるけど、
ああいうAPIの一番の問題はスレッドをブロックしやがること
処理を一時中断するにはいちいち別のスレッドを起動しなきゃいけない

161 :デフォルトの名無しさん:2017/06/14(水) 07:56:23.35 ID:y6/KXvpo.net
プル型の処理はnewDirectoryStreamやJava8で追加されたfindで可能
結果、
visitorの実装が面倒でブロッキングなwalkFileTree
サブディレクトリを再起処理してくれない上にStreamの名を冠しながらJava8のStreamと互換性のないnewDirectoryStream
メソッド増えすぎて反省したのか手軽なオーバーロードがなく引数の指定が面倒なfind
わずか2バージョンでこの乱立ぶりよ

162 :デフォルトの名無しさん:2017/06/14(水) 10:05:21.83 ID:gMpitCBj.net
walkfiletreeは知らないがSAXは便利に使ってる
普段からsedとか使ってるからかな

163 :デフォルトの名無しさん:2017/06/14(水) 11:02:50.40 ID:y6/KXvpo.net
>>162
Javaも今はプルパーサが主流よ
SAXは不要な制限が付くだけの糞

164 :デフォルトの名無しさん:2017/06/14(水) 11:48:12.85 ID:gMpitCBj.net
>>163
流行りとかどうでもいいけど、どんな制限?

165 :デフォルトの名無しさん:2017/06/14(水) 12:22:31.58 ID:y6/KXvpo.net
>>164
制御を奪われてしまう
>>160の通りだね
プルパーサはラップすることで簡単にSAXを実装できるけど、逆にSAXをベースにプルパーサを実装するのは(シングルスレッドの範囲では)不可能
SAXを好む人を否定はしないけど、少なくとも低レベルAPIとして位置付けるには制限が強くて向いてないんだよ

166 :デフォルトの名無しさん:2017/06/14(水) 13:25:11.04 ID:gMpitCBj.net
>>165
ストリーム開けっ放しにして他のこと始めるのか
その発想がなかった

167 :デフォルトの名無しさん:2017/06/14(水) 15:46:33.83 ID:y6/KXvpo.net
>>166
今時は非同期プログラミングの普及でいったん制御をフレームワークへ戻したいケースもよくあるからそんなにおかしな発想ではないぞ
DOMに近い感覚で必要な要素だけを処理できるのも大きなメリットだ
SAXだと、特定の要素に対する処理だけをメソッドに切り出すってのが非常にやりづらい

168 :デフォルトの名無しさん:2017/06/14(水) 17:03:52.08 ID:gMpitCBj.net
>>167
あーそういうレベルで難しいんだ
それならしょうがない
出来る方法でやるといいよ

169 :デフォルトの名無しさん:2017/06/14(水) 17:16:50.12 ID:7kOowwdv.net
プルのいいところは軽量と速さだろ

170 :デフォルトの名無しさん:2017/06/14(水) 18:08:39.39 ID:QP2Q0Xjx.net
>>159
walk()もよろしく。

171 :デフォルトの名無しさん:2017/06/14(水) 18:08:55.88 ID:OTRTw69H.net
プッシュだと例えば複数のxmlを開いて結合することができないわけです

172 :デフォルトの名無しさん:2017/06/14(水) 19:04:54.50 ID:QP2Q0Xjx.net
不可能ではないが大変面倒

173 :デフォルトの名無しさん:2017/06/14(水) 19:05:27.78 ID:QP2Q0Xjx.net
問題はメモリ食うことかな

174 :デフォルトの名無しさん:2017/06/15(木) 18:38:11.28 ID:EyGOo2Io.net
データをソートして出力したいんですが
TreeSetを使うとコンパレータのスコアが重複するデータは上書きされるみたいで
重複を許して保持するようなライブラリってありますでしょうか

175 :デフォルトの名無しさん:2017/06/15(木) 18:48:33.62 ID:B79jGaPH.net
ArrayListをソートしてどうぞ

176 :デフォルトの名無しさん:2017/06/15(木) 19:00:21.53 ID:EyGOo2Io.net
レスありがとうございます
ArrayListの中にsortらしいメソッドがみあたらないのですが
じぶんでsortアルゴリズムをかかなければいけないということなのでしょうか?

177 :デフォルトの名無しさん:2017/06/15(木) 19:10:29.12 ID:BXhoALLT.net
なんでこの会話はSetとListがごっちゃになってるんだ?

178 :デフォルトの名無しさん:2017/06/15(木) 19:18:26.03 ID:6VMUpjHZ.net
>>176
sortあるじゃないか
https://docs.oracle.com/javase/jp/8/docs/api/java/util/ArrayList.html#sort-java.util.Comparator-

Java7以前つかってるんか?
http://docs.oracle.com/javase/jp/7/api/java/util/Collections.html#sort(java.util.List, java.util.Comparator)

179 :デフォルトの名無しさん:2017/06/15(木) 19:31:49.07 ID:EyGOo2Io.net
いまだにjava6つかってました…
この期にアップデートしてみます

180 :デフォルトの名無しさん:2017/06/15(木) 19:35:29.73 ID:ttGDN5KX.net
TreeSetですでにコードかいてるなら
ComparableのcompareToが0だったら1を返すとか0を返さないようにすればいいだけ

181 :デフォルトの名無しさん:2017/06/15(木) 20:00:44.40 ID:udtNcQ4R.net
バージョン上げるならJava8でStreamでソートが鉄板

182 :デフォルトの名無しさん:2017/06/15(木) 22:12:59.08 ID:s6cEPBpB.net
サーブレット環境下
(tomcat8.0, java8)
の開発環境(eclipse neon.3)
でデータベース(postgresql)に
jdbcを使用し接続したいのですが
java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432/test
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
の例外により接続できません。
jdbcドライバはWEB-INF/libの中にありeclipseではクラスパスを通してあります。
またWEB-INF/lib内の他のjarはjavaから認識されております。
jdbcドライバがtomcatから認識されていないのが問題だと考えておりますが、
その理由がよくわかりません。
よろしくお願いします。

183 :デフォルトの名無しさん:2017/06/15(木) 22:22:40.42 ID:qujjETaM.net
その通りjdbcドライバーが見つからないのだろう

184 :デフォルトの名無しさん:2017/06/15(木) 22:27:58.11 ID:B79jGaPH.net
>>182
https://stackoverflow.com/questions/5556664/how-to-fix-no-suitable-driver-found-for-jdbcmysql-localhost-dbname-error-w

Connection con = null;
try {
 //registering the jdbc driver here, your string to use
 //here depends on what driver you are using.
 Class.forName("something.jdbc.driver.YourFubarDriver");
 con = DriverManager.getConnection("jdbc:apache:commons:dbcp:test");
} catch (SQLException e) {
 throw new RuntimeException(e);
}

ドライバクラスはスタティックイニシャライザでレジストするインプリメンテーションがデフォルト

185 :デフォルトの名無しさん:2017/06/15(木) 22:34:58.54 ID:qujjETaM.net
Tomcat 8.xだとTOMCAT_HOME/libに置かないといけなくなった。

186 :デフォルトの名無しさん:2017/06/15(木) 22:43:56.31 ID:qujjETaM.net
JNDI
http://tomcat.apache.org/tomcat-8.5-doc/jndi-datasource-examples-howto.html

187 :デフォルトの名無しさん:2017/06/15(木) 22:46:36.54 ID:qujjETaM.net
Tomcat8.0はこっち
http://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html

188 :デフォルトの名無しさん:2017/06/16(金) 08:56:51.80 ID:GfJ3Qlj3.net
>>184
>>185
ありがとうございます
ドライバが見つからないのはおまかんなわけではなく正しい挙動なんですね

189 :デフォルトの名無しさん:2017/06/16(金) 16:47:26.57 ID:KtCc4FWk.net
変な奴

190 :デフォルトの名無しさん:2017/06/16(金) 23:56:36.61 ID:mVd3o9jj.net
おまかん?

191 :デフォルトの名無しさん:2017/06/17(土) 06:38:57.83 ID:zhqgErrF.net
どこの方言?

192 :デフォルトの名無しさん:2017/06/17(土) 09:31:28.78 ID:RkyTVT3o.net
おまかんって略語否定するのもそろそろ老害みたいで見苦しいぞ

193 :デフォルトの名無しさん:2017/06/17(土) 10:05:03.24 ID:4jZoropc.net
キモ豚用語?

194 :デフォルトの名無しさん:2017/06/17(土) 13:09:59.57 ID:boIwNXkm.net
>>192
いや、初めて見た。

195 :デフォルトの名無しさん:2017/06/17(土) 16:29:51.64 ID:h2C93wHL.net
「ありがとうざいます」だけでいいだろ

196 :デフォルトの名無しさん:2017/06/17(土) 20:06:56.55 ID:P9o9pGro.net
人の言動にまで注文つけるのか
おまかんがわからないなら訊けばいいだけだろ

197 :デフォルトの名無しさん:2017/06/17(土) 20:32:58.23 ID:+2iYDCUP.net
人に聞くまでもなくちょっとググればいいだけでしょ

198 :デフォルトの名無しさん:2017/06/17(土) 20:33:28.55 ID:Y15actJI.net
使わない方がいんじゃないかな?
なんでおまかんなんて言っちゃったんだ
破廉恥すぎるだろ、状況考えろよ

199 :デフォルトの名無しさん:2017/06/17(土) 20:42:50.29 ID:P9o9pGro.net
>>198
正規表現で置換するときに興奮するのかよ
文脈考えろ

200 :デフォルトの名無しさん:2017/06/17(土) 21:01:56.25 ID:Y15actJI.net
>>199
文脈考えたら「おまかん」なんて使うべきじゃないってわかるよね?
下品だよ

201 :デフォルトの名無しさん:2017/06/17(土) 21:03:42.82 ID:Y15actJI.net
ドライバ見つかったのかな?

202 :デフォルトの名無しさん:2017/06/17(土) 21:10:29.58 ID:P9o9pGro.net
>>200
文脈ってそういう意味じゃないよ

203 :デフォルトの名無しさん:2017/06/17(土) 21:14:55.34 ID:ZIBVNPpE.net
>>196
しってるよ、アホ

204 :デフォルトの名無しさん:2017/06/17(土) 21:18:03.31 ID:ZIBVNPpE.net
答えるほうが質問者の環境のことを揶揄して使うものだろ

205 :デフォルトの名無しさん:2017/06/17(土) 21:32:50.85 ID:P9o9pGro.net
>>203
知ってるのに違う使い方するとかアホだな

206 :デフォルトの名無しさん:2017/06/17(土) 21:35:55.87 ID:P9o9pGro.net
>>204
特段、揶揄のイメージないな
質問者がこれっておま環?って聞き方もよく見る

207 :デフォルトの名無しさん:2017/06/17(土) 21:38:33.18 ID:ZIBVNPpE.net
>>205
知るかボケ、誰のこと言ってんだカス

208 :デフォルトの名無しさん:2017/06/17(土) 21:40:11.78 ID:lbM+W8dy.net
で、どういう意味?

総レス数 1002
244 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★