プログラミング言語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/
探検
★★Java質問・相談スレッド181★★
■ このスレッドは過去ログ倉庫に格納されています
2018/02/10(土) 17:49:40.56ID:l9ZzjyKP
658デフォルトの名無しさん
2018/08/18(土) 22:43:41.07ID:01sV26bM https://github.com/OpenHFT/Chronicle-Network
ここに出てくる"Wire"ってどういう意味ですか?
WireTextだの、WireEchoだの。
たぶんプログラミング界隈の用語だと思うんですが
ここに出てくる"Wire"ってどういう意味ですか?
WireTextだの、WireEchoだの。
たぶんプログラミング界隈の用語だと思うんですが
659デフォルトの名無しさん
2018/08/18(土) 23:10:04.14ID:ddghJ7gy ネットワークを繋ぐ線の概念なんじゃないかな
知らんけど、それっぽいと思った
知らんけど、それっぽいと思った
660デフォルトの名無しさん
2018/08/18(土) 23:30:49.48ID:01sV26bM meta -> meta.write(() -> "tid")
こういう記法は何を意味しますか?
(arg) -> code
みたいなのはラムダ式の説明で出てきますけど、metaはカッコがついていません
こういう記法は何を意味しますか?
(arg) -> code
みたいなのはラムダ式の説明で出てきますけど、metaはカッコがついていません
661デフォルトの名無しさん
2018/08/18(土) 23:35:11.85ID:01sV26bM Wire Message = 電報 ⇒ 通信されるデータ
WireType.TEXTとかWireType.BINARYがあるから、たぶんまさにそれだけの意味。
Network = Wireくらいの意味でこの人は使ってそうです。
WireType.TEXTとかWireType.BINARYがあるから、たぶんまさにそれだけの意味。
Network = Wireくらいの意味でこの人は使ってそうです。
662デフォルトの名無しさん
2018/08/18(土) 23:39:59.88ID:ddghJ7gy >>660
引数が1つのときはカッコを省略できるんよ
引数が1つのときはカッコを省略できるんよ
663デフォルトの名無しさん
2018/08/18(土) 23:58:07.43ID:01sV26bM 数千もの通信を同時処理する高性能なネットワークライブラリを探してるんですが、
何が良いんでしょう?Nettyは内容が難しすぎるんですが・・・。
難しいというか、必要としてるのは単にバイナリを送受信できればいいだけなので、
無駄に高機能過ぎる。
しかし、KeepAliveとか、サーバーが常駐してメッセージを受信してイベント起動、
とかは必要で。ネットワークライブラリの中身なにやってるかあまり詳しくないんですが。
Chronicle-Networkも良く分からない。
// the tid must be unique,
final long tid = tcpChannelHub.nextUniqueTransaction(System.currentTimeMillis());
System.currentTimeMillis()を使ったら、複数クライアントにおいてtidが重複するけど、
それでユニークといっていいのかどうか。
ちょっと情報が少なすぎるのでこれも無理そう。高速らしいんですが
Kryonetは、性能不足ですね。アップデートもされてません。
やはりNettyを頑張るしかないかもしれません。
何が良いんでしょう?Nettyは内容が難しすぎるんですが・・・。
難しいというか、必要としてるのは単にバイナリを送受信できればいいだけなので、
無駄に高機能過ぎる。
しかし、KeepAliveとか、サーバーが常駐してメッセージを受信してイベント起動、
とかは必要で。ネットワークライブラリの中身なにやってるかあまり詳しくないんですが。
Chronicle-Networkも良く分からない。
// the tid must be unique,
final long tid = tcpChannelHub.nextUniqueTransaction(System.currentTimeMillis());
System.currentTimeMillis()を使ったら、複数クライアントにおいてtidが重複するけど、
それでユニークといっていいのかどうか。
ちょっと情報が少なすぎるのでこれも無理そう。高速らしいんですが
Kryonetは、性能不足ですね。アップデートもされてません。
やはりNettyを頑張るしかないかもしれません。
664デフォルトの名無しさん
2018/08/19(日) 00:00:33.27ID:bn6Y5y/t >This comes at the cost of scalability for large number os connections. In this situation, this library should perform at least as well as netty.
これは多数のコンピューターからの同時接続ではNettyと同等の性能しかでない、
ということでしょうか?
想定してるのは1コンピューターとの高速な通信ということでしょうか。
これは多数のコンピューターからの同時接続ではNettyと同等の性能しかでない、
ということでしょうか?
想定してるのは1コンピューターとの高速な通信ということでしょうか。
665デフォルトの名無しさん
2018/08/19(日) 00:24:40.63ID:wM6XArJ0 WebSocket とかじゃないの?
666デフォルトの名無しさん
2018/08/19(日) 10:44:02.78ID:bn6Y5y/t やっぱり高性能なJavaのネットワーキングライブラリはNettyが有力のようです。
あと、Wire Messageは、たぶん「頭4バイトにINT入れて、次8バイトにLONG入れて」みたいな
バイト配列にデータを敷き詰めてく感じの行為をWireというのだろうと。
あと、Wire Messageは、たぶん「頭4バイトにINT入れて、次8バイトにLONG入れて」みたいな
バイト配列にデータを敷き詰めてく感じの行為をWireというのだろうと。
667デフォルトの名無しさん
2018/08/19(日) 11:22:52.85ID:yNrD+B/d よかったね(LOL)
668デフォルトの名無しさん
2018/08/19(日) 15:48:44.36ID:bn6Y5y/t PooledUnsafeDirectByteBufとは何ですか?
Handlerでbyte[]やByteBufなどクラスを限定できますが、
単にbyte[]を使うことと比べてByteBufやPooledUnsafeDirectByteBufは何かメリットがありますか?
Handlerでbyte[]やByteBufなどクラスを限定できますが、
単にbyte[]を使うことと比べてByteBufやPooledUnsafeDirectByteBufは何かメリットがありますか?
669デフォルトの名無しさん
2018/08/19(日) 16:16:30.55ID:bn6Y5y/t どうやら単にbyte[]を送りたい場合でもByteBufを通すのが普通みたいですね
でもそれだとByteBufを作るときもそこからbyte[]を読み取るときもコピー操作があるようで遅そうです
通信に比べればメモリ操作による遅れは微々たるものかもしれませんが
Nettyより高速と謳うライブラリがありますがやはりバッファ周りの問題を指摘してましたが
これですかね
でもそれだとByteBufを作るときもそこからbyte[]を読み取るときもコピー操作があるようで遅そうです
通信に比べればメモリ操作による遅れは微々たるものかもしれませんが
Nettyより高速と謳うライブラリがありますがやはりバッファ周りの問題を指摘してましたが
これですかね
670デフォルトの名無しさん
2018/08/20(月) 08:34:48.22ID:nWwgLLcF ソース読んではいないけど、byte[]のWrapperなんじゃないの?
渡されたbyte[]を丸々コピーするような、あなたのような超初心者な実装はしていないと思うよw
そもそも、byte[]で送るといっても、自分でBufferのサイズを決めたり、通信環境を考慮したり、いろいろやらなきゃいけない。
だから、そういった最適化をByteBufのサブクラスたちは提供してくれているのでしょう。
渡されたbyte[]を丸々コピーするような、あなたのような超初心者な実装はしていないと思うよw
そもそも、byte[]で送るといっても、自分でBufferのサイズを決めたり、通信環境を考慮したり、いろいろやらなきゃいけない。
だから、そういった最適化をByteBufのサブクラスたちは提供してくれているのでしょう。
671デフォルトの名無しさん
2018/08/20(月) 16:30:51.58ID:x31M90y2 こういうコードがあった時、logが呼ばれてもデバッグモードでなければ
意味が無いけど、AnyHeavyMethodは計算されちゃうんでしょうか。
それとも最適化で実行されませんか?
//in some method
log(""+AnyHeavyNoEffectMethod(o));
public void log(String s){
if(isDebugMode())
System.out.println(s);
}
意味が無いけど、AnyHeavyMethodは計算されちゃうんでしょうか。
それとも最適化で実行されませんか?
//in some method
log(""+AnyHeavyNoEffectMethod(o));
public void log(String s){
if(isDebugMode())
System.out.println(s);
}
672デフォルトの名無しさん
2018/08/20(月) 20:31:28.54ID:7cywDiIN JITコンパイラは副作用がないことをどこまで調べるんだろうね
673デフォルトの名無しさん
2018/08/20(月) 20:50:34.41ID:DUHqVJSw >>671
isDebugModeの返す値が定数で、かつそこに登場してる全てのメソッドがインライン展開されれば実行されないんじゃない?
Javaって基本的に大規模アプリケーションに最適化されてて、局所的な速度よりも全体的な安定性やメモリ消費量を重視する傾向があるから、
あまり最適化には期待しないほうがいいよ
isDebugModeの返す値が定数で、かつそこに登場してる全てのメソッドがインライン展開されれば実行されないんじゃない?
Javaって基本的に大規模アプリケーションに最適化されてて、局所的な速度よりも全体的な安定性やメモリ消費量を重視する傾向があるから、
あまり最適化には期待しないほうがいいよ
674デフォルトの名無しさん
2018/08/20(月) 22:27:44.88ID:trJY4lAL AnyHeavyNoEffectMethodが重い処理で、Java8以降ならラムダ式使うんじゃね?
log(() -> "" + AnyHeavyNoEffectMethod(o));
public viod log(Supplier<String> s){
if (isDebugMode())
System.out.println(s.get()); // ここでAnyHeavyNoEffectMethodが実行される
}
log(() -> "" + AnyHeavyNoEffectMethod(o));
public viod log(Supplier<String> s){
if (isDebugMode())
System.out.println(s.get()); // ここでAnyHeavyNoEffectMethodが実行される
}
675デフォルトの名無しさん
2018/08/21(火) 08:43:36.63ID:VaNiE4c6 いいね。そっくりそのままDecoratorにもなってるからすっきりする。
676デフォルトの名無しさん
2018/08/21(火) 09:27:43.13ID:R/vyiArT それJavaの場合はラムダ内で外のミューダブルな変数を参照できないから微妙
677デフォルトの名無しさん
2018/08/21(火) 10:05:53.79ID:VaNiE4c6 どーーしても必要なら、観測したい変数をHeapに逃がせばいい(オブジェクトにぶら下げるとか)わけだけど。
Functional信者は怒りMaxだろうな。
Functional信者は怒りMaxだろうな。
678デフォルトの名無しさん
2018/08/21(火) 12:07:34.45ID:LMQ5YiiU >>676
変態すぎるだろ何やろうとしてるんだよ
変態すぎるだろ何やろうとしてるんだよ
679デフォルトの名無しさん
2018/08/21(火) 12:57:56.56ID:5BiPsrnL680デフォルトの名無しさん
2018/08/21(火) 15:25:34.33ID:LMQ5YiiU681デフォルトの名無しさん
2018/08/21(火) 15:30:01.19ID:LMQ5YiiU あ、わかった
682デフォルトの名無しさん
2018/08/21(火) 17:51:15.05ID:NYseXeYs683デフォルトの名無しさん
2018/08/21(火) 17:55:00.54ID:IftEBw66 ログなら普通にある状況だろ
それを使い方の問題というならラムダをログに使うという>>674の発想が間違ってるわ
それを使い方の問題というならラムダをログに使うという>>674の発想が間違ってるわ
684デフォルトの名無しさん
2018/08/21(火) 20:09:37.16ID:NYseXeYs ないよ。AOPとかDecoratorとか、ラムダが登場する以前からずっとやってきている話。
ラムダはそれをちょっとエレガントにできるようにしただけ。
だから、使い方の問題なんだよ。
ラムダはそれをちょっとエレガントにできるようにしただけ。
だから、使い方の問題なんだよ。
685デフォルトの名無しさん
2018/08/21(火) 22:05:33.53ID:flSi4mUH >>684はミュータブルな変数を一切ログ出力してないの?
自身を持って無いと言い切れるなら偉そうなこと言っていいぞ
自身を持って無いと言い切れるなら偉そうなこと言っていいぞ
686デフォルトの名無しさん
2018/08/21(火) 22:09:43.83ID:flSi4mUH ちなみにログ出力にJavaのラムダが適していないという話であって、ラムダがミューダブルな変数を参照できるべきだなんて誰も言ってないけど
>>684は勘違いしてる
>>684は勘違いしてる
687674
2018/08/22(水) 22:13:46.15ID:xSbYn5li 簡単な実験コード書いてみたけど最適化されませんね。
private static final boolean debug = false;
@Test
public final void testOptimization() {
final long start = System.currentTimeMillis();
log(anyHeavyNoEffectMethod() + "");
final long end = System.currentTimeMillis();
System.out.println((end - start) + "ms");//50ms
}
private static final void log(final String s) {
if (debug)
System.out.println(s);
}
private static final long anyHeavyNoEffectMethod() {
final Random r = new Random();
long total = 0;
int loop = 1000 * 1000;
for (int i = 0; i < loop; i++)
total += r.nextLong();
return total;
}
private static final boolean debug = false;
@Test
public final void testOptimization() {
final long start = System.currentTimeMillis();
log(anyHeavyNoEffectMethod() + "");
final long end = System.currentTimeMillis();
System.out.println((end - start) + "ms");//50ms
}
private static final void log(final String s) {
if (debug)
System.out.println(s);
}
private static final long anyHeavyNoEffectMethod() {
final Random r = new Random();
long total = 0;
int loop = 1000 * 1000;
for (int i = 0; i < loop; i++)
total += r.nextLong();
return total;
}
688デフォルトの名無しさん
2018/08/22(水) 22:39:39.44ID:xSbYn5li ラムダ式の方はanyHeavyNoEffectMethodが呼ばれません。
しかし、指摘のようにミュータブルな変数を渡せません。
log()の実装を二種類用意して使い分けていくのが妥当な気がします。
デコレーターパターンで解決できるんですか?
しかし、指摘のようにミュータブルな変数を渡せません。
log()の実装を二種類用意して使い分けていくのが妥当な気がします。
デコレーターパターンで解決できるんですか?
689デフォルトの名無しさん
2018/08/22(水) 22:48:19.72ID:xSbYn5li このような頻出のパターンについてJITは最適化すべきだと思います。
たぶん、それが一番妥当な解決策です。
副作用が無い事を確認する機能は、JITに既にありそうなものです。
少なくともある程度の範囲で副作用が無い事を確認できるはずです。
どうでもいいんですがこんなパターンにはJITは最適化を見せました。
for(){
list.add(i);
list.remove(i);//追加したものを即削除する
}
たぶん、それが一番妥当な解決策です。
副作用が無い事を確認する機能は、JITに既にありそうなものです。
少なくともある程度の範囲で副作用が無い事を確認できるはずです。
どうでもいいんですがこんなパターンにはJITは最適化を見せました。
for(){
list.add(i);
list.remove(i);//追加したものを即削除する
}
690デフォルトの名無しさん
2018/08/22(水) 22:51:11.60ID:z4qSfGT7 オーバーロードでいんじゃない?
ログの出力ってきほんStringじゃん
ログの出力ってきほんStringじゃん
691デフォルトの名無しさん
2018/08/25(土) 12:01:51.59ID:FONLvq+3 匿名クラスとかでスタック領域の変数を参照できますが、匿名クラスのオブジェクトが破棄されるまでそれらは生存するということですか?
public void method(Observable obs){
Object o = ...;
EventHandler handler = new EventHandler(){
@Override
public void handler(){
System.out.println(o);
}
}
obs.setOnAction(handler);
}
public void method(Observable obs){
Object o = ...;
EventHandler handler = new EventHandler(){
@Override
public void handler(){
System.out.println(o);
}
}
obs.setOnAction(handler);
}
692デフォルトの名無しさん
2018/08/25(土) 12:14:05.20ID:logoA4dK >>691
気のせい
実は無名クラスの中に隠しフィールドが生成されてoの値をコピーしている
ちなみにoは暗黙的にfinalになっており、後でoを書き換えようとするとコンパイルエラー
そこまでするならScalaやKotlinやC#みたいに最初からoをヒープに作っちまえよと思わなくもないが、
この中途半端な仕事かJavaクォリティ
気のせい
実は無名クラスの中に隠しフィールドが生成されてoの値をコピーしている
ちなみにoは暗黙的にfinalになっており、後でoを書き換えようとするとコンパイルエラー
そこまでするならScalaやKotlinやC#みたいに最初からoをヒープに作っちまえよと思わなくもないが、
この中途半端な仕事かJavaクォリティ
693デフォルトの名無しさん
2018/08/25(土) 13:05:07.70ID:KMExyDFm >>691
そうなるよ、参照関係を図で表すとこうな感じでしょ
https://light.dotup.org/uploda/light.dotup.org543719.png
オレンジが変数
緑がオブジェクト
メソッドを抜けてローカル変数o, handler, obsがなくなっても
Observable → EventHandler → Object
の参照は消えない
引数に渡してるObservableはメソッドの外で
変数から参照されてるだろうからメソッドを抜けても
破棄されないよ
そうなるよ、参照関係を図で表すとこうな感じでしょ
https://light.dotup.org/uploda/light.dotup.org543719.png
オレンジが変数
緑がオブジェクト
メソッドを抜けてローカル変数o, handler, obsがなくなっても
Observable → EventHandler → Object
の参照は消えない
引数に渡してるObservableはメソッドの外で
変数から参照されてるだろうからメソッドを抜けても
破棄されないよ
694デフォルトの名無しさん
2018/08/25(土) 13:38:45.65ID:QXNuAaPs695デフォルトの名無しさん
2018/08/26(日) 18:14:43.90ID:oLy9klNt ここを見るとRSA系は2048までしかありません。4096等だとRSA鍵による暗号化ができないということですか?
その場合、非標準のライブラリ等で解決できますか?
https://docs.oracle.com/javase/jp/8/docs/api/javax/crypto/Cipher.html
RSA/ECB/PKCS1Padding (1024、2048)
RSA/ECB/OAEPWithSHA-1AndMGF1Padding (1024、2048)
RSA/ECB/OAEPWithSHA-256AndMGF1Padding (1024、2048)
その場合、非標準のライブラリ等で解決できますか?
https://docs.oracle.com/javase/jp/8/docs/api/javax/crypto/Cipher.html
RSA/ECB/PKCS1Padding (1024、2048)
RSA/ECB/OAEPWithSHA-1AndMGF1Padding (1024、2048)
RSA/ECB/OAEPWithSHA-256AndMGF1Padding (1024、2048)
696デフォルトの名無しさん
2018/08/27(月) 09:33:01.48ID:n6GSDZ7+697デフォルトの名無しさん
2018/08/27(月) 09:47:55.19ID:n6GSDZ7+ 強度の強い暗号化は輸出制限あるから気を付けてね。
うっかりノートPCにセットしたまま他国へ持って行こうとするとバレた時に大変まずいことになるかも知れない。
うっかりノートPCにセットしたまま他国へ持って行こうとするとバレた時に大変まずいことになるかも知れない。
698デフォルトの名無しさん
2018/08/27(月) 17:31:52.62ID:n/TwkHD5 jre1.8の最近のバージョンでデフォルトで強度無制限になったようです。
とはいえ、java8の仕様上、2048までしかサポートする必要は無いようです。
実装によってサポートしているかもしれません。
とはいえ、java8の仕様上、2048までしかサポートする必要は無いようです。
実装によってサポートしているかもしれません。
699デフォルトの名無しさん
2018/08/27(月) 17:33:10.48ID:n/TwkHD5 このようなコードがあった場合、tは生存しますか?
tはどこからも参照されてないとします。
//in some method
Thread t = new Thread(){...};
t.start();
return;
tはどこからも参照されてないとします。
//in some method
Thread t = new Thread(){...};
t.start();
return;
700デフォルトの名無しさん
2018/08/27(月) 20:27:36.23ID:QkMU0TtV >>699
試してみた
https://paiza.io/projects/PxoO2-fLSd_KfpwF5B3prA
結果からわかることは
・メソッドを抜けてもスレッドが終了するわけではない
・スレッドが終了しないならばプロセスは終了しない
・ローカル変数がなくてもスレッドを取得できる
作成したスレッドのオブジェクトはどこかに保持されるみたいね
tは生存します、が答えっす
試してみた
https://paiza.io/projects/PxoO2-fLSd_KfpwF5B3prA
結果からわかることは
・メソッドを抜けてもスレッドが終了するわけではない
・スレッドが終了しないならばプロセスは終了しない
・ローカル変数がなくてもスレッドを取得できる
作成したスレッドのオブジェクトはどこかに保持されるみたいね
tは生存します、が答えっす
701デフォルトの名無しさん
2018/08/27(月) 20:52:27.61ID:l2rfNjjd 変数tを通してアクセスできなくなるだけだな。
702デフォルトの名無しさん
2018/08/27(月) 21:06:10.81ID:ngNgILlM threadは、main thread同様garbage collectionのrootとして扱われるそうなので、生存しまする
703デフォルトの名無しさん
2018/08/28(火) 10:11:17.88ID:nen4cHNL ただし、daemonthreadは除く。
704デフォルトの名無しさん
2018/08/29(水) 16:44:32.01ID:V/7UzzKh Eclipseとかいう汚物にJavaFXを入れたく思いマーケットプレースでjavafxで出てくるe(fx)clipseをインストールしようとしたところ長時間待たされた挙句にエラーが出ました
どうすればいいでしょうか?
どうすればいいでしょうか?
705デフォルトの名無しさん
2018/08/29(水) 16:50:03.76ID:V/7UzzKh706デフォルトの名無しさん
2018/08/29(水) 18:31:24.16ID:bzaK3e7y >>704
JavaFXは廃止されたから使っちゃダメ
JavaFXは廃止されたから使っちゃダメ
707デフォルトの名無しさん
2018/08/29(水) 18:35:28.97ID:bZ2D0xRL 諦めなさい
708デフォルトの名無しさん
2018/08/29(水) 20:23:25.71ID:QbSkJrbm マジで?!廃止されるのswingかと思ってた!
709デフォルトの名無しさん
2018/08/29(水) 20:35:24.50ID:LfUbbQ2v 厳密には廃止ではなく分離とされてる。
あとJava8が2020年までサポートだから、2020年までは1.8系のjreがあれば使える。
あとJava8が2020年までサポートだから、2020年までは1.8系のjreがあれば使える。
710デフォルトの名無しさん
2018/08/29(水) 20:44:48.17ID:LfUbbQ2v そもそもJavaの未来はどうなるのか。JREが有償化される。
OpenJDKはインストーラや自動アップデータが提供されるのか。
JavaFXは単体のライブラリとして独立できるはずだが、誰かがやるのかどうか。
現状だと、何やら面倒なインストール手順が必要なようで、
デスクトップアプリに使われるであろうJavaFXにとって致命的なはず。
mavenとかを使ってアプリに気軽に同梱できるものになればいいのだが。
OpenJDKはインストーラや自動アップデータが提供されるのか。
JavaFXは単体のライブラリとして独立できるはずだが、誰かがやるのかどうか。
現状だと、何やら面倒なインストール手順が必要なようで、
デスクトップアプリに使われるであろうJavaFXにとって致命的なはず。
mavenとかを使ってアプリに気軽に同梱できるものになればいいのだが。
711デフォルトの名無しさん
2018/08/29(水) 20:48:44.47ID:zRPnCBM0 JavaFX will continue to be supported in the future by the company Gluon as a downloadable module in addition to the JDK.
712デフォルトの名無しさん
2018/08/29(水) 20:49:34.59ID:zRPnCBM0713デフォルトの名無しさん
2018/08/29(水) 20:51:13.97ID:zRPnCBM0 このスレではJavaFXをオヌヌメします
JavaFXをオヌヌメしないのはoracleのコウサクイン
JavaFXをオヌヌメしないのはoracleのコウサクイン
714デフォルトの名無しさん
2018/08/29(水) 21:01:34.66ID:CmXgIFV4 JavaでデスクトップのGUI環境自体どうなんだ?
715デフォルトの名無しさん
2018/08/29(水) 21:01:39.61ID:LfUbbQ2v downloadable moduleってなんだろうな。
そもそも後方互換性を捨てて高速リリースとか言ってるのが怖くて仕方ない。
開発者が最新版に対応したって、エンドユーザーが最新版を持ってるか分からない。
どのバージョンに向けて作ればいいんだ?
そもそも後方互換性を捨てて高速リリースとか言ってるのが怖くて仕方ない。
開発者が最新版に対応したって、エンドユーザーが最新版を持ってるか分からない。
どのバージョンに向けて作ればいいんだ?
716デフォルトの名無しさん
2018/08/29(水) 21:02:52.35ID:LfUbbQ2v いやクロスプラットフォームGUIという概念は重要でしょ。
717デフォルトの名無しさん
2018/08/29(水) 21:07:16.02ID:LfUbbQ2v Java8+JavaFXは2022年までサポートされるってかいてあるな
だからもう少し先の話ではあるし、人気のある環境だからそれまでに整備されるだろう。
だからもう少し先の話ではあるし、人気のある環境だからそれまでに整備されるだろう。
718デフォルトの名無しさん
2018/08/29(水) 21:13:19.32ID:LfUbbQ2v AndroidでもJavaFX動くみたいだし、クロスプラットフォーム性という面で
やはり一番優れてるよJavaは
ちなみにJavaやKotlinのコードをネイティブコードにするコンパイラがあって
iPhoneでもJavaやKotlinのソースコードで動かせるみたいだぞ
ちょっと前までiPhone用のJVMもあったんだけどな
やはり一番優れてるよJavaは
ちなみにJavaやKotlinのコードをネイティブコードにするコンパイラがあって
iPhoneでもJavaやKotlinのソースコードで動かせるみたいだぞ
ちょっと前までiPhone用のJVMもあったんだけどな
719デフォルトの名無しさん
2018/08/29(水) 21:16:31.19ID:LfUbbQ2v https://www.oracle.com/technetwork/jp/java/eol-135779-ja.html
Java8 個人ユーザーの公式アップデート終了日 2020-12
このときまでにOpenJDKやGluonのインストーラが登場していなければ困る。
そしてそれが自動アップデータを搭載していなければ。
ところが自動アップデータ搭載されてても、後方互換性を捨てたアップデートを勝手にされると困るw
困りまくりだ
Java8 個人ユーザーの公式アップデート終了日 2020-12
このときまでにOpenJDKやGluonのインストーラが登場していなければ困る。
そしてそれが自動アップデータを搭載していなければ。
ところが自動アップデータ搭載されてても、後方互換性を捨てたアップデートを勝手にされると困るw
困りまくりだ
720デフォルトの名無しさん
2018/08/29(水) 21:22:30.87ID:LfUbbQ2v OpenJDKに自動アップデータが提供されたとする。
OpenJDKのアップデートがアプリのアップデートを先行する
→勝手に互換性を捨てたアップデートが来てアプリが動かなくなる。
アプリを最新版に対応してリリースしてもアプリのアップデータは動かないw
アプリのアップデートが先行する
→エンドユーザーのOpenJDKが古くて動作しない
だから、互換性を捨てて高速リリースとかいってるのはほとんど意図的なJava界隈への攻撃。
OpenJDKのアップデートがアプリのアップデートを先行する
→勝手に互換性を捨てたアップデートが来てアプリが動かなくなる。
アプリを最新版に対応してリリースしてもアプリのアップデータは動かないw
アプリのアップデートが先行する
→エンドユーザーのOpenJDKが古くて動作しない
だから、互換性を捨てて高速リリースとかいってるのはほとんど意図的なJava界隈への攻撃。
721デフォルトの名無しさん
2018/08/29(水) 21:26:20.75ID:LfUbbQ2v 一番欲しいのは、Java8のサポート継続&自動アップデート継続&互換性の維持。
APIを変更するならdeprecatedの期間をある程度とってくれないと無理。
高速リリースがうれしい人が居るのか?
APIを変更するならdeprecatedの期間をある程度とってくれないと無理。
高速リリースがうれしい人が居るのか?
722デフォルトの名無しさん
2018/08/29(水) 21:41:37.34ID:zRPnCBM0 .netと同じ道を歩んでるようにみえて
microsoftの.netはMITライセンス
microsoftの.netはMITライセンス
723デフォルトの名無しさん
2018/08/29(水) 21:46:25.67ID:zRPnCBM0 javaはもうおしまい
724デフォルトの名無しさん
2018/08/29(水) 21:59:08.27ID:LfUbbQ2v OpenJDKのリンク例外つきGPLは十分だろ。
OpenJDKにおいて、互換性を考慮したアップデートが行われ、自動アップデータが提供されるか。
GPLだから誰でもそのプロジェクトをやれる。
OpenJDKにおいて、互換性を考慮したアップデートが行われ、自動アップデータが提供されるか。
GPLだから誰でもそのプロジェクトをやれる。
725デフォルトの名無しさん
2018/08/29(水) 22:00:44.61ID:zRPnCBM0 mitライセンス、bsdライセンス以外は不要
726デフォルトの名無しさん
2018/08/29(水) 22:02:20.50ID:LfUbbQ2v >>720の解決法はこうだ
OpenJDKの次期バージョンで現在のアプリが問題を起こすかチェックする。
→問題があるならOpenJDKがアップデートされる前にアプリをアップデートしておく。
そのアプリの修正は、現在のOpenJDKと次のOpenJDK両方で動作する事を確認する。
OpenJDKの次期バージョンで現在のアプリが問題を起こすかチェックする。
→問題があるならOpenJDKがアップデートされる前にアプリをアップデートしておく。
そのアプリの修正は、現在のOpenJDKと次のOpenJDK両方で動作する事を確認する。
727デフォルトの名無しさん
2018/08/29(水) 22:04:08.95ID:zRPnCBM0 javaを棄てれば解決
728デフォルトの名無しさん
2018/08/29(水) 22:07:18.69ID:LfUbbQ2v もうJavaで書いたアプリがあるし、Javaに慣れてるから。
それに、.NETに移ったとして、同じ事が起こらない保証があるのか?
実は俺はこの問題に対する根本的解決策を知ってる。うまくいくかは知らないが
それも含めて考えると、やはりJavaを続けようと思える。
それに、.NETに移ったとして、同じ事が起こらない保証があるのか?
実は俺はこの問題に対する根本的解決策を知ってる。うまくいくかは知らないが
それも含めて考えると、やはりJavaを続けようと思える。
729デフォルトの名無しさん
2018/08/29(水) 22:13:52.55ID:bGCoQXPI >>726
どうチェックすんの?
どうチェックすんの?
730デフォルトの名無しさん
2018/08/29(水) 22:31:53.32ID:LfUbbQ2v リリース前でもビルドが公開されてるだろうと思ったけど。
プラットフォーム系でプレビューリリースとかアーリーアクセス的なものを提供して
予め対応してもらおうというアイデアは一般的なもので、オラクルがOpenJDKをサポートするなら
たぶんやるだろう、というか既にやってると思うけど。
JDK 11 Early-Access Builds
http://jdk.java.net/11/
プラットフォーム系でプレビューリリースとかアーリーアクセス的なものを提供して
予め対応してもらおうというアイデアは一般的なもので、オラクルがOpenJDKをサポートするなら
たぶんやるだろう、というか既にやってると思うけど。
JDK 11 Early-Access Builds
http://jdk.java.net/11/
731デフォルトの名無しさん
2018/08/30(木) 00:12:55.41ID:2PPyJx3c 大前提の認識が間違ってるぞ。
Java11以降においては無償のスタンドアロンなJREは無くなるんだよ。
デスクトップ用途なら開発者自身がアプリにJavaランタイムを組み込んで配布することが推奨される。
そして、OpenJDKはエンドユーザーが自分で個人端末にインストールするようなことを想定したものではない。
開発者がシステムに元々入っているのOpenJDKに依存してよいのは、業務システムなどで
開発者が完全に実行環境のOpenJDKディストリビューションのバージョンや構成を制御できる場合のみだ。
Java11以降においては無償のスタンドアロンなJREは無くなるんだよ。
デスクトップ用途なら開発者自身がアプリにJavaランタイムを組み込んで配布することが推奨される。
そして、OpenJDKはエンドユーザーが自分で個人端末にインストールするようなことを想定したものではない。
開発者がシステムに元々入っているのOpenJDKに依存してよいのは、業務システムなどで
開発者が完全に実行環境のOpenJDKディストリビューションのバージョンや構成を制御できる場合のみだ。
732デフォルトの名無しさん
2018/08/30(木) 00:46:49.22ID:XYFOdQAI https://docs.oracle.com/javase/jp/8/docs/technotes/guides/deploy/self-contained-packaging.html#A1307236
>自己完結型アプリケーション・パッケージは、プラットフォーム固有で、ビルドしたシステムと同じシステムにのみ作成できます。
各プラットフォーム向けにビルドしなきゃいけないようだ
>自己完結型アプリケーションには、自動更新の組込みサポートがありません。
アプリのアップデータで簡単にアップデートできるなら問題ではない。
アプリへのJREの組み込み手段がサポートされて、
そこでJavaFXがサポートされるなら、問題無い気がする。
JavaFXはそこでサポートされなきゃ意味が無いし。
>自己完結型アプリケーション・パッケージは、プラットフォーム固有で、ビルドしたシステムと同じシステムにのみ作成できます。
各プラットフォーム向けにビルドしなきゃいけないようだ
>自己完結型アプリケーションには、自動更新の組込みサポートがありません。
アプリのアップデータで簡単にアップデートできるなら問題ではない。
アプリへのJREの組み込み手段がサポートされて、
そこでJavaFXがサポートされるなら、問題無い気がする。
JavaFXはそこでサポートされなきゃ意味が無いし。
733デフォルトの名無しさん
2018/08/30(木) 00:57:29.40ID:XYFOdQAI >Java SE 8は、デスクトップ展開を対象とした最後のJava SEリリースです(Java Web StartやスタンドアロンシステムJREなど)。
こういう文言もあるから、Java11以降、OpenJDKでJavaFXみたいな
デスクトップ展開がサポートされるのかどうか。Java8最終版を組み込んで使い続けるか
Gluonに期待するか。
こういう文言もあるから、Java11以降、OpenJDKでJavaFXみたいな
デスクトップ展開がサポートされるのかどうか。Java8最終版を組み込んで使い続けるか
Gluonに期待するか。
734デフォルトの名無しさん
2018/08/30(木) 12:01:02.32ID:rv0GkEtx 初心者だけどJavaFXでFTPサーバーとやりとりして追加したり一覧表示してダウンロードしたりするwindows用アプリを作りたいんだ
apache commons netというライブラリを使ってやろうと思うけどviewにファイルを入れるにはどうすれば良いんだろう?
入れた後はjavaからviewをインスタンス化してその中の変数の値(ファイルのパスかな?)を取り出してって感じでなんとかなりそうだけど...
本当に何も分からない状態で、何か良い勉強方法は無いかな?
FTPサーバーについても素人に近いよ
apache commons netというライブラリを使ってやろうと思うけどviewにファイルを入れるにはどうすれば良いんだろう?
入れた後はjavaからviewをインスタンス化してその中の変数の値(ファイルのパスかな?)を取り出してって感じでなんとかなりそうだけど...
本当に何も分からない状態で、何か良い勉強方法は無いかな?
FTPサーバーについても素人に近いよ
735デフォルトの名無しさん
2018/08/30(木) 12:06:53.68ID:Qomnyyns 素人過ぎて話にならないな
736デフォルトの名無しさん
2018/08/30(木) 12:59:41.93ID:A5Nytyjy そういや今はJavaは標準のライブラリでFTP接続してアップロードとか楽にできるクラスあるのかな?
ダウンロードだけはURLクラスでできるの知ってるが。
ダウンロードだけはURLクラスでできるの知ってるが。
737デフォルトの名無しさん
2018/08/30(木) 21:21:59.87ID:XYFOdQAI viewにファイルを入れるってなに?
TableViewとかTreeViewクラスにアイテムを表示する方法ならチュートリアルあるでしょ
TableViewとかTreeViewクラスにアイテムを表示する方法ならチュートリアルあるでしょ
738デフォルトの名無しさん
2018/08/30(木) 21:23:54.73ID:XYFOdQAI ああ解読できたかも
要するにGUIにアプリから値を設定、ないし
アプリからGUIに値を設定するにはってことでしょ?
てかGUIってそういう使い方しかないし。
そんなのぐぐればいくらでも出てくるのでは。
https://docs.oracle.com/javase/jp/8/javafx/user-interface-tutorial/table-view.htm
要するにGUIにアプリから値を設定、ないし
アプリからGUIに値を設定するにはってことでしょ?
てかGUIってそういう使い方しかないし。
そんなのぐぐればいくらでも出てくるのでは。
https://docs.oracle.com/javase/jp/8/javafx/user-interface-tutorial/table-view.htm
739デフォルトの名無しさん
2018/08/30(木) 22:12:54.72ID:XYFOdQAI 訂正
人→GUI→アプリ
アプリ→GUI→人
この流れがやりたいってことだとおもわれる
人→GUI→アプリ
アプリ→GUI→人
この流れがやりたいってことだとおもわれる
740デフォルトの名無しさん
2018/08/30(木) 23:38:43.13ID:8yCH8Wm6741デフォルトの名無しさん
2018/08/31(金) 00:25:08.31ID:tMQ4ovnC Project Loomを急ぐんだ!
はやく第一級継続を書かせるんだ。
どうか限定じゃありませんように
はやく第一級継続を書かせるんだ。
どうか限定じゃありませんように
742デフォルトの名無しさん
2018/08/31(金) 01:00:04.22ID:CSMn2BX4 イメージできんってもなあ・・・
GUI部品クラスが提供されてて、何らかの値の設定方法、取得方法があるだけじゃん。
StageやSceneクラスという、GUI全体を意味するクラスも提供されてる。
そこにGUI部品を積み上げてくだけだぞ。
GUI部品クラスが提供されてて、何らかの値の設定方法、取得方法があるだけじゃん。
StageやSceneクラスという、GUI全体を意味するクラスも提供されてる。
そこにGUI部品を積み上げてくだけだぞ。
743デフォルトの名無しさん
2018/08/31(金) 01:09:01.54ID:CSMn2BX4 起動って・・・IDEのプロジェクトアーキテクチャの選択でfx系選べば何もしなくても
GUI立ち上がるでしょ
GUI立ち上がるでしょ
744デフォルトの名無しさん
2018/08/31(金) 08:28:19.25ID:XwawDSyV745デフォルトの名無しさん
2018/08/31(金) 09:09:35.21ID:G30RIEnt 何かの障害持ちだと理解の過程が通常と違う
彼らにネットは不向きだと思う
彼らにネットは不向きだと思う
746デフォルトの名無しさん
2018/08/31(金) 10:00:14.28ID:lv4qnKPx お前らすぐそうやって……
747デフォルトの名無しさん
2018/08/31(金) 10:43:19.14ID:s5ujzdS3 なんというか、Windowsならftpアプリなんかわざわざ作らんでもWebブラウザやエクスプローラでURL指定して開いちゃえばいいような気がするが・・・
あ、とにかく作ってみたいのか。
あ、とにかく作ってみたいのか。
748デフォルトの名無しさん
2018/08/31(金) 20:47:37.72ID:jQ6ZKbRR >>747
ピュアな ftp ならプロトコルも対して難しくもないからネットワークの練習にはちょうどいい
ピュアな ftp ならプロトコルも対して難しくもないからネットワークの練習にはちょうどいい
749デフォルトの名無しさん
2018/09/01(土) 00:04:26.42ID:kDvfeVra gluonとopenjfxが両方javafx11ビルドしてるけどこれ同じバイナリだろうか?
750デフォルトの名無しさん
2018/09/01(土) 10:46:03.05ID:faUndSgH >>5
8のreplaceは正規表現を使ってて馬鹿みたいに遅いから気をつけろ
8のreplaceは正規表現を使ってて馬鹿みたいに遅いから気をつけろ
751デフォルトの名無しさん
2018/09/01(土) 10:50:10.09ID:8XWt4TWp752デフォルトの名無しさん
2018/09/01(土) 11:18:35.81ID:4jvmXnIZ >>750
それはreplaceFirst()だろ
それは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は正規表現使ってなかった
@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は正規表現使ってなかった
754デフォルトの名無しさん
2018/09/01(土) 22:52:18.30ID:6Yw3sf7c >>751
元からjavaの一部じゃないから
元からjavaの一部じゃないから
755デフォルトの名無しさん
2018/09/21(金) 23:35:33.58ID:6Tz3djX7 資格に関する質問ってしてもOK?
Oracleの「Java SE 8 Silver」の試験勉強をしようと思うんだけど、参考書に迷ってる
4月からjavaを学習してる程度の人が「徹底攻略 Java SE 8 Silver 問題集」をやるのは難易度高い?
書いてて宣伝っぽい文章になったのはごめん
Oracleの「Java SE 8 Silver」の試験勉強をしようと思うんだけど、参考書に迷ってる
4月からjavaを学習してる程度の人が「徹底攻略 Java SE 8 Silver 問題集」をやるのは難易度高い?
書いてて宣伝っぽい文章になったのはごめん
756デフォルトの名無しさん
2018/09/22(土) 07:41:38.75ID:r0UgUCyq NG
757デフォルトの名無しさん
2018/09/27(木) 05:16:42.90ID:lxTijohv java SE 11 キテター
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 働いて参ります
- ( ・᷄ὢ・᷅ )あ?
- 地震
- こんぺこ!こんぺこ!こんぺこ!🐰🏡
- 早大名誉教授「高市内閣の高支持率はデータ操作か、支持している日本人がアホなのか」👈核心を突いてしまう [868050967]
- ブタをぶったたく
