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

■ このスレッドは過去ログ倉庫に格納されています
2018/02/10(土) 17:49:40.56ID:l9ZzjyKP
プログラミング言語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質問・相談スレッド180★★
https://mevius.5ch.net/test/read.cgi/tech/1492780397/
740デフォルトの名無しさん
垢版 |
2018/08/30(木) 23:38:43.13ID:8yCH8Wm6
>>739
そうそんな感じ
全然イメージ出来ん
どうやって起動させるの?
でも公式ドキュメント見やすそうだねありがとう
2018/08/31(金) 00:25:08.31ID:tMQ4ovnC
Project Loomを急ぐんだ!
はやく第一級継続を書かせるんだ。
どうか限定じゃありませんように
742デフォルトの名無しさん
垢版 |
2018/08/31(金) 01:00:04.22ID:CSMn2BX4
イメージできんってもなあ・・・
GUI部品クラスが提供されてて、何らかの値の設定方法、取得方法があるだけじゃん。
StageやSceneクラスという、GUI全体を意味するクラスも提供されてる。
そこにGUI部品を積み上げてくだけだぞ。
743デフォルトの名無しさん
垢版 |
2018/08/31(金) 01:09:01.54ID:CSMn2BX4
起動って・・・IDEのプロジェクトアーキテクチャの選択でfx系選べば何もしなくても
GUI立ち上がるでしょ
744デフォルトの名無しさん
垢版 |
2018/08/31(金) 08:28:19.25ID:XwawDSyV
>>743
webアプリならサーバー起動させてコントローラにある接続用のurlをブラウザに入れれば始めれるじゃん
これはメイン関数なくても行けるんでしょ?起動ボタンあるの?
2018/08/31(金) 09:09:35.21ID:G30RIEnt
何かの障害持ちだと理解の過程が通常と違う
彼らにネットは不向きだと思う
2018/08/31(金) 10:00:14.28ID:lv4qnKPx
お前らすぐそうやって……
747デフォルトの名無しさん
垢版 |
2018/08/31(金) 10:43:19.14ID:s5ujzdS3
なんというか、Windowsならftpアプリなんかわざわざ作らんでもWebブラウザやエクスプローラでURL指定して開いちゃえばいいような気がするが・・・

あ、とにかく作ってみたいのか。
2018/08/31(金) 20:47:37.72ID:jQ6ZKbRR
>>747
ピュアな ftp ならプロトコルも対して難しくもないからネットワークの練習にはちょうどいい
2018/09/01(土) 00:04:26.42ID:kDvfeVra
gluonとopenjfxが両方javafx11ビルドしてるけどこれ同じバイナリだろうか?
2018/09/01(土) 10:46:03.05ID:faUndSgH
>>5
8のreplaceは正規表現を使ってて馬鹿みたいに遅いから気をつけろ
2018/09/01(土) 10:50:10.09ID:8XWt4TWp
>>749
JavaFXはもうJavaの一部ではないのでこのスレのスコープ外だよ
専用スレか公式フォーラムで聞きなさい
2018/09/01(土) 11:18:35.81ID:4jvmXnIZ
>>750
それはreplaceFirst()だろ
753デフォルトの名無しさん
垢版 |
2018/09/01(土) 13:34:55.66ID:tt1XTLVx
調べてみた

@since 1.5
replace(CharSequence target, CharSequence replacement)

@since 1.4
replaceAll(String regex, String replacement)

@since 1.4
replaceFirst(String regex, String replacement)

replaceは正規表現使ってなかった
2018/09/01(土) 22:52:18.30ID:6Yw3sf7c
>>751
元からjavaの一部じゃないから
2018/09/21(金) 23:35:33.58ID:6Tz3djX7
資格に関する質問ってしてもOK?
Oracleの「Java SE 8 Silver」の試験勉強をしようと思うんだけど、参考書に迷ってる
4月からjavaを学習してる程度の人が「徹底攻略 Java SE 8 Silver 問題集」をやるのは難易度高い?

書いてて宣伝っぽい文章になったのはごめん
2018/09/22(土) 07:41:38.75ID:r0UgUCyq
NG
2018/09/27(木) 05:16:42.90ID:lxTijohv
java SE 11 キテター
2018/09/27(木) 09:12:53.75ID:rZRe7wqK
有料だから注意しろよ
無料で落とせるやつはちゃんとLAに「評価と開発以外の目的に使うな」と書かれてる
そんな大事なことをダウンロードページに明記してなくてLA読まないと分からないようにしてるのは流石天下のオラクル様ですわ
2018/09/27(木) 23:41:43.99ID:vISpszsR
OpenJDK11があるじゃん。そのうちAdapt OpenJDK11もでるだろ。
2018/09/28(金) 11:03:15.31ID:2WodH1m0
JDK11が多すぎて混乱しそう
2018/09/29(土) 00:56:04.15ID:kyybLiyB
だいたいダウンロードページにOTN開発者ライセンスに変わったって書いてあるし
762デフォルトの名無しさん
垢版 |
2018/09/29(土) 18:23:46.96ID:o+PWeM92
JavaでJson読ませるの、どのライブラリが使い勝手いい?
なんかいろいろありすぎて困る
2018/09/29(土) 22:43:49.26ID:tgpIib8y
>>762
JSR 374がjaxpに似せてるから学習コスト低いよ。
ttps://javaee.github.io/jsonp/
2018/10/03(水) 01:25:23.37ID:9ie+5iaR
質問です。
下記のコードで、
https://ideone.com/0RbRo7
出力が0と0の間で2行開いてしまっているのですが、これはなぜでしょうか?
System.out.printlnをSystem.out.printにすると空白は出ないのですが…。
2018/10/03(水) 01:59:25.15ID:VtwiWIya
区切り文字を{},の3文字にしてsplitしたからでしょ。
766デフォルトの名無しさん
垢版 |
2018/10/03(水) 07:18:02.71ID:3B507mk5
>>764
空文字列が入ってるから、フィルタするなりで
https://paiza.io/projects/6hDp8xbY-QC0oLgrDBj0Sw?language=java
2018/10/03(水) 20:33:31.74ID:Yoi2jO2M
正規表現か書式を見直したほうがいいんじゃないの?
768764
垢版 |
2018/10/04(木) 00:11:26.33ID:smFA2GkF
>>765
>>766
>>767
返信ありがとうございました。
また質問させて頂くかもしれませんが、よろしければその時もまたお願いします。
769デフォルトの名無しさん
垢版 |
2018/10/04(木) 11:58:36.08ID:YAdWzVOj
http://acro-engineer.hatenablog.com/entry/2013/10/17/113216
>MyProtocolClientHandler extends ChannelInboundHandlerAdapter

Inbound 受信時に使用される処理
Outbound 送信時に使用される処理
という理解なんだけど、クライアント側のInboundはレスポンスを受信するときに動くということ?
でも送信時のコードが書かれてるようで、分からない。
NettyのInbound, Outboundとは?
2018/10/04(木) 13:51:17.62ID:k+Ofe9B1
Inbound:中国人の観光客
Outbound:日本人の海外旅行
771デフォルトの名無しさん
垢版 |
2018/10/04(木) 14:09:27.89ID:YAdWzVOj
ああわかりました
channelActiveは返信等を受け付けれるような状態になった時に呼び出されて、
それはinbound,outbound関係無いってことですね
パイプラインのハンドラーというより、メッセージ送信の
コントローラー的なものがそこに書かれてるということですね
たまたまハンドラのイベントにそういう処理が書かれてる
772デフォルトの名無しさん
垢版 |
2018/10/06(土) 11:51:41.21ID:mwcXVcDx
https://netty.io/4.0/api/io/netty/channel/ChannelDuplexHandler.html
> intercept operations and also state updates

この部分どういう意味ですか?intercept operationとは?

DuplexHandlerはパイプライン上でどういう順序で実行されますか?
受信時と送信時で実行して欲しい順番が異なる場合どうすれば?
773デフォルトの名無しさん
垢版 |
2018/10/06(土) 19:22:07.94ID:3cjxIhmP
Java SE API & ドキュメント
https://www.oracle.com/technetwork/jp/java/javase/documentation/api-jsp-316041-ja.html


Java11の日本語ドキュメントはいつごろ出てくるのでしょうか?
2018/10/08(月) 07:44:21.00ID:fU+WK0rO
bronzeの問題集やっててイライラしてきたんだけど、問題になるようなコードは基本的に書くなってことでいいんですよね?
&&||の右側にインクリメント演算子書いたから場合によって評価されないとかif文の中身1行しかないからカッコ省略したら読みづらくなってるとか
問題として出されるくらいヒューマンエラーを産みかねないってことでOK?
775デフォルトの名無しさん
垢版 |
2018/10/08(月) 08:33:34.55ID:QRotEnod
読めるようになれってことじゃないの?
>&&||の右側にインクリメント演算子書いたから場合によって評価されない
例えばこれは、
if(a != null && a.get()>1)
こんな行があった時に2つ目の演算でNPE起きない事が保証されると分かれ、ということだろう
書くな、じゃないよ。こんなコードたくさんあるし、こう書かないと冗長になる
2018/10/08(月) 08:56:01.75ID:fU+WK0rO
>>775
演算子のほうはちゃんと意味考えて書けよってことですよね?って聞いたつもりだったんです、言葉足らずでした
評価されない場合使って簡潔に書くのはよくあることなんですかね

中身1文ブロックのカッコ省略のメリットがさっぱりわからないんですが見た目がすっきりするだけですかね……?
どこ読んでもあえて推奨されてることがなくて、ブログのコメント欄とかはだいたいケンカになってるんでこれはあまり触れてはいけないアレなんでしょうか
777デフォルトの名無しさん
垢版 |
2018/10/08(月) 08:58:46.13ID:QRotEnod
まあそれは簡単に言うと
開発時のソースコードはデバッグ出力の行があったりするんだけど
リリース時はデバッグ出力の行を文字列置換で一掃したりする。で、もし
if(...)
debugLog(...);

こういう行があったとして、debugLog(...);を置換で削除したら、エラーになる。
if(...){
debugLog(...);
}
これは置換しても大丈夫。

だから、括弧無しは処理部分を置換する事があるか、による
経験上置換するのはデバッグ系コードだけ
2018/10/08(月) 09:13:02.08ID:fU+WK0rO
書き換えるつもりがない1行のはカッコ省略で書くと読みやすい、あとあと置換するdebugLog(…)とかは消したときに空のブロックになるように{}書いとく、ってことでしょうか?
2018/10/08(月) 09:51:13.29ID:UTHfaM17
>>777
嘘をついてはいけない
デバッグ出力を置換で消す場合は ";" に置き換えれば良いので
{} の有無など関係ない
780デフォルトの名無しさん
垢版 |
2018/10/08(月) 09:55:23.16ID:QRotEnod
>>779
それは気付いてなかったw

じゃあ括弧無しのデメリットは特に思いつかない
2018/10/08(月) 10:26:38.83ID:2rmJ0ycQ
>>774
落ち着け、深呼吸しろ
2018/10/08(月) 11:34:11.42ID:H/mp1NsO
>>774-776
&&・||の右側に、副作用があったら危険!
副作用とは、何かの状態を変えること

ぱっと見ただけでは、副作用が実行されるかされないのかが、わかりにくい。
右側に、副作用が無ければよいけど

if-else 文なんかより可読性が低いから、誤解しやすい

すべての言語で、言われている。
MISRA-C とか、C言語のルールでも、決められている
783デフォルトの名無しさん
垢版 |
2018/10/08(月) 12:02:59.41ID:QRotEnod
副作用があるかもしれないから、という理由なら条件分岐関係無くない?
if(a == null)
return;
if(a.get()<=1)
return;
これでget()呼ぶのも副作用あるかもしれないよね?
784デフォルトの名無しさん
垢版 |
2018/10/08(月) 12:20:29.15ID:tKqgyITq
>>783
別スレッドによって a が null にされてしまう可能性はあるな。だいたいの場合はそういうスレッドがないか、
またはあると分かっているならロックしてからアクセスするように作るから問題にならないんだろうけど。
785デフォルトの名無しさん
垢版 |
2018/10/08(月) 12:26:37.42ID:QRotEnod
ん?こういう理解だけど。参照が渡されてるだけだから
別スレッドが参照を破棄しても関係ないぞ

func1(Object a){
if(a == null)
return;
a.get();//絶対にNPEが起きないマルチスレッド無関係
}
func2(Object a){
a = null;
}
2018/10/08(月) 12:29:19.11ID:r0dViXxq
そもそも式の中で副作用のある関数を呼び出すのは危険
&&や||は評価順序が決まってるからまだマシな方でそれ以外の演算子だと評価順序もどうなるかわからんし
787デフォルトの名無しさん
垢版 |
2018/10/08(月) 12:32:49.91ID:QRotEnod
でも副作用がある関数はset,write,update,createとか大体それっぽい名前ついてるし
分かるでしょ?
というか情報処理はCRUDだからcreate,update,delete的な名前が必ずついてる

副作用を広くとらえればログ出力も副作用だけど、そういうのは問題無い
getは副作用無しか問題無い副作用のみ、CRUDのRに相当するものだから

だからコーディング規約を作るなら、CRUDを意識させるようなものであるべきで、
真理式でメソッドを呼び出すなとかいうわけわからん規約を作るべきではない
CRUDのうちRのみ呼び出していい、とすべき
788デフォルトの名無しさん
垢版 |
2018/10/08(月) 12:37:02.60ID:QRotEnod
ぶっちゃけCUDでも呼び出していい
結局、意味を捉えて間違えないように書けということでしかない
コーディング規約をどういじくってもそこから逃げれるわけじゃない
2018/10/08(月) 12:43:00.19ID:wqzMNkqt
if (a == 0 || b++ < 1) {
}
こういう書き方をすると一見bが常にインクリメントされるように誤解されやすいからやめとけよって言ってるだけでしょ。
790デフォルトの名無しさん
垢版 |
2018/10/08(月) 12:48:22.90ID:QRotEnod
真理式に複数の演算があって、かつ一部に副作用があるとまずい、ってことか
2018/10/08(月) 13:19:09.60ID:H/mp1NsO
副作用・副作用完了点
評価順序・マクロ

MISRA-C でも、こういう間違いやすい所の、ルールは厳しい
2018/10/08(月) 14:53:07.06ID:tKqgyITq
>>785
それならないな。

残るは get() して 1 以下なのを検査した直後に別スレッドによって a の状態が変化して get() が返す値が変わるとかかな。
(そんなの想定の範囲内なら問題ないが)。
2018/10/10(水) 01:35:05.39ID:gneY7b7h
adopt openjdkのjdk11リリースされたじゃん。
ttps://adoptopenjdk.net/?variant=openjdk11&jvmVariant=hotspot

LTSだぞ。
ttps://adoptopenjdk.net/support.html?variant=openjdk11&jvmVariant=hotspot
2018/10/12(金) 06:07:22.65ID:LkXNeCMg
Java 11のJREって無いんですか?
2018/10/12(金) 08:34:35.39ID:kCbZI2NA
クライアントJREは廃止された
今現在、要JREとして世に出ているアプリをエンドユーザーが実行する公式な方法は存在しない(自己責任で開発環境を入れるしかない)
今後のクライアントサイドJavaアプリの唯一の配布方法は、JDKに含まれるコマンドラインツールを使用して
プラットフォーム毎に実行環境とアプリを同梱した実行可能なパッケージを作ることである
クライアントサイドに関しては、もはやJavaはバイナリ互換ではない
OracleはクライアントサイドJavaを段階的に廃止しようとしており、新規には決して使ってはならない
2018/10/12(金) 09:00:21.36ID:U0bHLz7N
>>793
当てにならんよこんなの
こいつらはただのビルド屋で、自分達でソースに手を入れる体制はない
次のバージョンのOpenJDKがリリースされた後もOpenJDK公式リポジトリの旧バージョンのソースに対してLTS向けのパッチが提供されるかどうかは、
オラクル様の温情次第
2018/10/12(金) 20:45:34.37ID:LkXNeCMg
>>795
サンクス
798デフォルトの名無しさん
垢版 |
2018/10/22(月) 16:04:20.83ID:1yTQ4g+U
何時の間にかvar使えるようになってたな
799デフォルトの名無しさん
垢版 |
2018/10/22(月) 23:21:36.65ID:KYkLOyp1
いないいないvar
2018/10/22(月) 23:32:16.95ID:sd28W5TQ
Javaに型推論が無いことをディスられると、意識高い系Javaerさん達は
ローカル変数の型もinterfaceにするべきだからそんなもん要らんと上から目線で反論してたけど
梯子外されちゃって哀れだな
801デフォルトの名無しさん
垢版 |
2018/10/23(火) 03:01:58.72ID:IDcT8U1C
これ2じゃなくて1が出力される。何で?
@Test
public void mapObjTest() {
Map<Long, Integer> m = new HashMap<>();
Long key = 1L;
m.put(key, 1);
Integer val = m.get(key);
val++;
System.out.println(m.get(key));
}
802デフォルトの名無しさん
垢版 |
2018/10/23(火) 03:05:36.61ID:IDcT8U1C
悪く言われるけどクライアントサイドについてJRE同梱は良いんじゃない?
もはやファイルサイズは小さな問題だし、JREのバージョン違いでの誤作動を減らせる。
クライアントサイドJavaがそれで悪くなったと思わないけどな、俺は
JavaFXが外されたのは悪くなったと思うけど、でもどうせ同梱する作業するときに入れるんだし
妥当な変化じゃないの?
803デフォルトの名無しさん
垢版 |
2018/10/23(火) 05:51:34.87ID:6lDUuVuA
>>801
val++は↓これと同じ
val = val + 1
変数valに値を代入してる

↓こう書けば値は2になる、value.valueはドット演算子を使ってオブジェクトの状態を変えてる

public class Main {
 public static void main(String[] args) {
  Map<Integer, Value> map = new HashMap<>();
  map.put(1, new Value(1));

  Value value = map.get(1);
  value.value++;

  System.out.println(value.value);
 }
}

class Value {
 int value;

 Value(int value) {
  this.value = value;
 }
}

変数に対する代入と
オブジェクトの状態を変えることとは
異なる操作なんやで
804デフォルトの名無しさん
垢版 |
2018/10/23(火) 07:00:55.65ID:6lDUuVuA
変数への操作か、オブジェクトへの操作かを区別する必要があって

それぞれの違いはこんな感じ
https://light.dotup.org/uploda/light.dotup.org554015.png
2018/10/23(火) 07:55:16.19ID:ukFWTvzy
>>801
Integerをインクリメントした瞬間に新しくIntegerインスタンスが生成されるからだな

詳しくはオートボクシング、インクリメントとかでググるといい
2018/10/23(火) 08:11:13.69ID:ukFWTvzy
要するにval++は↓の省略系
val = new Integer(val.intValue()+1)
2018/10/23(火) 09:23:24.20ID:cDc5Fd7g
>>802
悪くはなってないよね
0に何を掛けても0だからな
2018/10/23(火) 09:42:44.32ID:AS/7ikV7
すごーい
2018/10/23(火) 23:29:12.49ID:baThXOF4
>>802
動的リンクしまくってるからFullJRE前提だわ。
810デフォルトの名無しさん
垢版 |
2018/10/25(木) 05:33:58.31ID:KXlarInO
Object#equals()
public boolean equals(Object obj) {
return (this == obj);
}
なんでreturn this == obj;じゃなく括弧で囲ってるの?
811デフォルトの名無しさん
垢版 |
2018/10/25(木) 09:55:01.19ID:hw/Q19JU
囲ってみたい気分だったのだろう
2018/10/25(木) 11:06:47.39ID:jwOWZyFv
return文に記述された式が複雑なときは括弧で括ったほうがmore readableだから推奨してる人のほうが多いように思うけど、
this == objが複雑かどうかは微妙だね。

でも自分なら括弧つけるかな。
理由は、括弧でくくることで、等式が値を返す数式として使われていることを明示できるから。
2018/10/25(木) 11:34:47.74ID:r31i+JfI
Javaの最黎期に書かれたものだろうから、コードスタイルが今の基準からすれば変でもおかしくない
今では一般的には括弧はつけないのが主流だね
2018/10/25(木) 12:09:47.24ID:VLidr5ui
最近はアローで書いちゃうから一行だしな
2018/10/25(木) 14:00:36.81ID:oNBD1gf9
計算がよくわからん時は、まず括弧で囲えって、
今でも教える人がいるからな
2018/10/25(木) 14:21:09.91ID:6wYT/HJT
かっこいい、かっこわるい?
2018/10/25(木) 18:46:51.45ID:zmVgc+jl
>>815
演算子の優先順位の話なら不要だと思ってもあえてつけたままにすることはあるな
+ と * とかならいいけどビット演算子とか言語によって違う奴とかもあるしね
2018/10/27(土) 15:01:56.02ID:1x6RXWmG
javaでaccessdbと接続するようなソフト作ってみたいんですが
フレームワークって必要ですか
ちょっとフレームワーク自体よくわかってないです。
規模は社内で5人くらいで使用します。
819デフォルトの名無しさん
垢版 |
2018/10/27(土) 19:11:03.52ID:RbshV9yz
検索すれば出てくるけど
ハマることが多そうだからオススメしない
Javaが要件なのかAccessが要件なのかわからんが
820デフォルトの名無しさん
垢版 |
2018/10/27(土) 19:15:14.94ID:LS+3DLFQ
>>812
Webで避けて通れないJavaScriptのせいとかもあるな。
JavaScriptのセミコロン省略可能はいまだに嵌る。
2018/10/27(土) 19:16:29.43ID:ZlRq8doU
Ruby on Rails, Node.js などでは、開発環境では、SQLite を使うけど
2018/10/27(土) 22:29:57.54ID:229rJcCX
>>802
Write once,Run anywhere

配布しようと思ったら環境に応じたJRE添付してやらないといけないんだよね?
根本理念に喧嘩売ってる気がする
823デフォルトの名無しさん
垢版 |
2018/10/28(日) 03:09:10.51ID:7tRDHbkL
>>822
バイナリ互換じゃなくなるけどソースコード互換ではあるので・・・

JavaでGUIアプリ作ってネットで配布する場合、エンドユーザーの環境に依存するの辛いでしょ
むしろJRE同梱したい、と思うのが普通だよ

JRE同梱によるファイルサイズ増加はもはや問題にならないし
どうせJRE同梱作業するなら、その時にJavaFX入れれば良いので、分離されたのも妥当な気がするし
むしろクライアントサイドで進歩してると言っても良いのでは
2018/10/28(日) 03:59:58.74ID:WcIuuSyz
>JavaでGUIアプリ作ってネットで配布する場合、エンドユーザーの環境に依存するの辛いでしょ
JRE同梱だと回避できて、JARだけだとダメな問題ってどういうのがあるん?
実際にクライアントの環境が異なってたらどうやって提供しようが辛さは一緒におもえる

だいたいJRE同梱なんかされたら何仕込まれてもわからん
サンドボックスのしっかりした仕組みがあるわけじゃなし
そもそもWindowsとかOS側が信用できない

共通のJavaだから信頼感あったのに
2018/10/28(日) 04:08:51.40ID:z9u8vCUJ
今どき.NETですらランタイム同梱する流れだからな
2018/10/28(日) 04:22:29.53ID:WcIuuSyz
MSはユーザーの個人情報盗みたい側だし
827デフォルトの名無しさん
垢版 |
2018/10/28(日) 04:26:41.29ID:7tRDHbkL
>>824
何言ってるか良く分からんが、JRE同梱すればJREのバージョン違いによる問題が無くなるだろう。
いちいちJREをインストールしてもらう手間も無くなる。
例えば一部のJREはJavaFXを同梱しているが、一部はそうではない。

何仕込まれても、ってのは良く分からんが
スタンドアロンアプリでもセキュリティマネージャーは動くはず
828デフォルトの名無しさん
垢版 |
2018/10/28(日) 04:32:23.62ID:7tRDHbkL
確かにこれまでと比べると、オラクルのサイトからJRE落としてそれで動かしてたのに比べると
アプリ毎にJRE同梱されちゃうとおかしなネイティブ実行ファイルが同梱されてないか、という問題はある

しかし同梱されたプラットフォーム固有の実行ファイルはハッシュ値とかで適切なファイルかを照合できるはず
あとそもそもバイトコード部分でも相当な処理が可能だから、さほどセキュリティリスクが変わると思わない

ネットからプログラムを落とすなら、オープンソースか信頼できる大御所か
これまでと変わらないのでは
2018/10/28(日) 04:34:29.37ID:z9u8vCUJ
>>826
ランタイム同梱の意味わかってる?
2018/10/28(日) 04:36:35.55ID:WcIuuSyz
問題はJREのバージョンか
たしかに多少の問題はあるが

JRE同梱必須にしたらJavaの目指していた未来と可能性そのものを切り捨てることになる
そうできるってのとそうしなきゃいけないってのはえらい違い
831デフォルトの名無しさん
垢版 |
2018/10/28(日) 04:42:15.05ID:7tRDHbkL
JREを同梱しないと、10年経ったら動かなくなってると思う

クライアントサイドはJRE同梱で作れと強制する事は、そんな悪い事じゃないと思う
そうしないとJavaがバージョンアップしづらい問題もあるから、オラクルはそうしたいんだろう
832デフォルトの名無しさん
垢版 |
2018/10/28(日) 04:46:39.09ID:vBzuIBdi
元々Write once,Test anywhere

って失望されてたじゃ無いか。。。
HTML5も同じだけど、理想と現実は遥かに遠い隔たりがある。
833デフォルトの名無しさん
垢版 |
2018/10/28(日) 04:48:23.37ID:GS4HIDpq
スタティックリンクの肥大した実行ファイルと一緒だよね
Write Onceで全プラットフォームで動いたら開発者としては理想じゃないかな
834デフォルトの名無しさん
垢版 |
2018/10/28(日) 04:49:04.83ID:7tRDHbkL
オラクルはJavaを高速バージョンアップしたいみたいな事も言ってるが、
一連の話は整合性がある
サーバーサイドはエンジニアが管理しててJRE固定できる、
クライアントサイドはJRE同梱。
現状だとJavaから古いAPIを削除したら多くのアプリが動かなくなるから、
移行期間を作ってそのようなアプリが減るのを待つ。
そうしないとJavaに未来が無いという判断は、理解できなくない。
2018/10/28(日) 05:01:48.54ID:WcIuuSyz
じぶんとこのOracleDBは枯れまくってても平気なくせに
836デフォルトの名無しさん
垢版 |
2018/10/28(日) 05:47:19.26ID:D9Gt7gmT
改変されたJREを同梱されたら終わりではないか?
837デフォルトの名無しさん
垢版 |
2018/10/28(日) 05:51:56.29ID:7tRDHbkL
だから、同梱されたファイルのハッシュ値調べればわかるし、
アンチウイルスだって有名な実行ファイルについてハッシュ値を知識として持っておくべき。
オープンソースは誰かが検証すべき。
で、もともとバイトコード部分でも相当な事ができるからセキュリティリスクは変化してない。
2018/10/28(日) 14:47:49.66ID:Ii5bdv+P
クラス変数にもvar使わせてほしいよな
無名クラスにリフレクションで値を代入するフレームワークとかでてきそうだし

class Hoge {
public var xyz = new Object() { int x, y, x };
}
2018/10/28(日) 23:50:32.90ID:vn58j50+
それをやると型を特定するために延々先を辿らなきゃいけなくなるんだ…
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況