X



★★Java質問・相談スレッド181★★
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
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/
0646デフォルトの名無しさん
垢版 |
2018/08/02(木) 08:10:14.12ID:lJdnLKf/
通常プロセスはOS側で管理するべきと思ってるからあまり考えたことないな

どうしてもやりたいなら通信を管理するプロセスを作れば良い
つまり>>643
0647デフォルトの名無しさん
垢版 |
2018/08/08(水) 20:48:19.34ID:Y8NXA7MO
アンドロイドアプリを作りたいのですが
数か月の間、メンターになってくえれる人を探そうと思ったら
どんなサイトで募集すればいいのでしょうか?
0649デフォルトの名無しさん
垢版 |
2018/08/08(水) 21:38:15.67ID:oyXSOhRB
メンターなんて言葉一般的に使うの?
自己啓発セミナーみたいでいやだなあ
あ、ボクはアナルオナニーインストラクターです
0650デフォルトの名無しさん
垢版 |
2018/08/08(水) 21:40:40.73ID:Y8NXA7MO
基本料金1か月3万円でお願いします
あとはオファーにより別途請求というシステムで
0651デフォルトの名無しさん
垢版 |
2018/08/08(水) 22:33:01.96ID:D/rM6Nrn
マンツーマンで教えるとなると時給の最低ラインは3000円だから
月3万円だと月10時間、1日15分ぐらいだな
0652デフォルトの名無しさん
垢版 |
2018/08/09(木) 10:10:38.81ID:gFPymi4k
専属の人を雇うとなると家庭教師雇うみたいなもんだから高くなるのではないか?
本やネットで調べながらでも何れはできるようになる事についてそこまで投資する必要があるのか?
何らかの期限があるなどして早く覚えないとまずいということか?
0654デフォルトの名無しさん
垢版 |
2018/08/09(木) 16:50:59.46ID:bgFYGL9Q
synchronizedListはイテレータがスレッドセーフじゃないといいますが
for(int i=0;i<list.size();i++)
Element e = list.get(i);

もしsizeの増減が無い場合、こんな書き方はスレッドセーフに全要素にアクセスできますか?
0655デフォルトの名無しさん
垢版 |
2018/08/09(木) 18:59:15.93ID:e0VFp9K8
できません
sizeを確認してからgetするまでに要素数が変化する可能性を排除できていません
0657デフォルトの名無しさん
垢版 |
2018/08/09(木) 19:02:22.63ID:e0VFp9K8
それはサイズが既知でgetしか使ってないのと同じで安全
ていうか要素が変化しないならスレッドセーフではないLinkedListでさえ安全に使えるでしょ
0658デフォルトの名無しさん
垢版 |
2018/08/18(土) 22:43:41.07ID:01sV26bM
https://github.com/OpenHFT/Chronicle-Network
ここに出てくる"Wire"ってどういう意味ですか?
WireTextだの、WireEchoだの。
たぶんプログラミング界隈の用語だと思うんですが
0659デフォルトの名無しさん
垢版 |
2018/08/18(土) 23:10:04.14ID:ddghJ7gy
ネットワークを繋ぐ線の概念なんじゃないかな
知らんけど、それっぽいと思った
0660デフォルトの名無しさん
垢版 |
2018/08/18(土) 23:30:49.48ID:01sV26bM
meta -> meta.write(() -> "tid")

こういう記法は何を意味しますか?
(arg) -> code
みたいなのはラムダ式の説明で出てきますけど、metaはカッコがついていません
0661デフォルトの名無しさん
垢版 |
2018/08/18(土) 23:35:11.85ID:01sV26bM
Wire Message = 電報 ⇒ 通信されるデータ
WireType.TEXTとかWireType.BINARYがあるから、たぶんまさにそれだけの意味。
Network = Wireくらいの意味でこの人は使ってそうです。
0662デフォルトの名無しさん
垢版 |
2018/08/18(土) 23:39:59.88ID:ddghJ7gy
>>660
引数が1つのときはカッコを省略できるんよ
0663デフォルトの名無しさん
垢版 |
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を頑張るしかないかもしれません。
0664デフォルトの名無しさん
垢版 |
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コンピューターとの高速な通信ということでしょうか。
0666デフォルトの名無しさん
垢版 |
2018/08/19(日) 10:44:02.78ID:bn6Y5y/t
やっぱり高性能なJavaのネットワーキングライブラリはNettyが有力のようです。
あと、Wire Messageは、たぶん「頭4バイトにINT入れて、次8バイトにLONG入れて」みたいな
バイト配列にデータを敷き詰めてく感じの行為をWireというのだろうと。
0668デフォルトの名無しさん
垢版 |
2018/08/19(日) 15:48:44.36ID:bn6Y5y/t
PooledUnsafeDirectByteBufとは何ですか?
Handlerでbyte[]やByteBufなどクラスを限定できますが、
単にbyte[]を使うことと比べてByteBufやPooledUnsafeDirectByteBufは何かメリットがありますか?
0669デフォルトの名無しさん
垢版 |
2018/08/19(日) 16:16:30.55ID:bn6Y5y/t
どうやら単にbyte[]を送りたい場合でもByteBufを通すのが普通みたいですね
でもそれだとByteBufを作るときもそこからbyte[]を読み取るときもコピー操作があるようで遅そうです
通信に比べればメモリ操作による遅れは微々たるものかもしれませんが
Nettyより高速と謳うライブラリがありますがやはりバッファ周りの問題を指摘してましたが
これですかね
0670デフォルトの名無しさん
垢版 |
2018/08/20(月) 08:34:48.22ID:nWwgLLcF
ソース読んではいないけど、byte[]のWrapperなんじゃないの?
渡されたbyte[]を丸々コピーするような、あなたのような超初心者な実装はしていないと思うよw
そもそも、byte[]で送るといっても、自分でBufferのサイズを決めたり、通信環境を考慮したり、いろいろやらなきゃいけない。
だから、そういった最適化をByteBufのサブクラスたちは提供してくれているのでしょう。
0671デフォルトの名無しさん
垢版 |
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);
}
0672デフォルトの名無しさん
垢版 |
2018/08/20(月) 20:31:28.54ID:7cywDiIN
JITコンパイラは副作用がないことをどこまで調べるんだろうね
0673デフォルトの名無しさん
垢版 |
2018/08/20(月) 20:50:34.41ID:DUHqVJSw
>>671
isDebugModeの返す値が定数で、かつそこに登場してる全てのメソッドがインライン展開されれば実行されないんじゃない?
Javaって基本的に大規模アプリケーションに最適化されてて、局所的な速度よりも全体的な安定性やメモリ消費量を重視する傾向があるから、
あまり最適化には期待しないほうがいいよ
0674デフォルトの名無しさん
垢版 |
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が実行される
}
0675デフォルトの名無しさん
垢版 |
2018/08/21(火) 08:43:36.63ID:VaNiE4c6
いいね。そっくりそのままDecoratorにもなってるからすっきりする。
0676デフォルトの名無しさん
垢版 |
2018/08/21(火) 09:27:43.13ID:R/vyiArT
それJavaの場合はラムダ内で外のミューダブルな変数を参照できないから微妙
0677デフォルトの名無しさん
垢版 |
2018/08/21(火) 10:05:53.79ID:VaNiE4c6
どーーしても必要なら、観測したい変数をHeapに逃がせばいい(オブジェクトにぶら下げるとか)わけだけど。
Functional信者は怒りMaxだろうな。
0679デフォルトの名無しさん
垢版 |
2018/08/21(火) 12:57:56.56ID:5BiPsrnL
>>678
そう思うだろ?
これでコンパイルエラーなんだよね
int x = 1;
log(() -> x);
x += hoge();
log(() -> x);
0682デフォルトの名無しさん
垢版 |
2018/08/21(火) 17:51:15.05ID:NYseXeYs
>>679
完全に使い方の問題だし、マルチスレッドの問題もあるし。
JavaScriptとかできちゃうけど、それやってどうなってもしらないぞ、と。
0683デフォルトの名無しさん
垢版 |
2018/08/21(火) 17:55:00.54ID:IftEBw66
ログなら普通にある状況だろ
それを使い方の問題というならラムダをログに使うという>>674の発想が間違ってるわ
0684デフォルトの名無しさん
垢版 |
2018/08/21(火) 20:09:37.16ID:NYseXeYs
ないよ。AOPとかDecoratorとか、ラムダが登場する以前からずっとやってきている話。
ラムダはそれをちょっとエレガントにできるようにしただけ。
だから、使い方の問題なんだよ。
0685デフォルトの名無しさん
垢版 |
2018/08/21(火) 22:05:33.53ID:flSi4mUH
>>684はミュータブルな変数を一切ログ出力してないの?
自身を持って無いと言い切れるなら偉そうなこと言っていいぞ
0686デフォルトの名無しさん
垢版 |
2018/08/21(火) 22:09:43.83ID:flSi4mUH
ちなみにログ出力にJavaのラムダが適していないという話であって、ラムダがミューダブルな変数を参照できるべきだなんて誰も言ってないけど
>>684は勘違いしてる
0687674
垢版 |
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;
}
0688デフォルトの名無しさん
垢版 |
2018/08/22(水) 22:39:39.44ID:xSbYn5li
ラムダ式の方はanyHeavyNoEffectMethodが呼ばれません。
しかし、指摘のようにミュータブルな変数を渡せません。
log()の実装を二種類用意して使い分けていくのが妥当な気がします。
デコレーターパターンで解決できるんですか?
0689デフォルトの名無しさん
垢版 |
2018/08/22(水) 22:48:19.72ID:xSbYn5li
このような頻出のパターンについてJITは最適化すべきだと思います。
たぶん、それが一番妥当な解決策です。
副作用が無い事を確認する機能は、JITに既にありそうなものです。
少なくともある程度の範囲で副作用が無い事を確認できるはずです。

どうでもいいんですがこんなパターンにはJITは最適化を見せました。
for(){
list.add(i);
list.remove(i);//追加したものを即削除する
}
0690デフォルトの名無しさん
垢版 |
2018/08/22(水) 22:51:11.60ID:z4qSfGT7
オーバーロードでいんじゃない?
ログの出力ってきほんStringじゃん
0691デフォルトの名無しさん
垢版 |
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);
}
0692デフォルトの名無しさん
垢版 |
2018/08/25(土) 12:14:05.20ID:logoA4dK
>>691
気のせい
実は無名クラスの中に隠しフィールドが生成されてoの値をコピーしている
ちなみにoは暗黙的にfinalになっており、後でoを書き換えようとするとコンパイルエラー
そこまでするならScalaやKotlinやC#みたいに最初からoをヒープに作っちまえよと思わなくもないが、
この中途半端な仕事かJavaクォリティ
0693デフォルトの名無しさん
垢版 |
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はメソッドの外で
変数から参照されてるだろうからメソッドを抜けても
破棄されないよ
0694デフォルトの名無しさん
垢版 |
2018/08/25(土) 13:38:45.65ID:QXNuAaPs
>>693
691が気にしてるのはローカル変数o自体の寿命でしょ
実際には無名クラスの外側にある変数oとhandlerの中で参照してる変数oは別の実体だから問題ない、が答えだよ
後者は>>692の通り無名クラスの隠しフィールドであり、インスタンス生成時に値をコピーしている
この仕様だと、後で内側または外側でoの値を書き換えてしまうと辻褄が合わなくなるから、
oを後で書き換えてはいけないという制限が必要なの
0695デフォルトの名無しさん
垢版 |
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)
0697デフォルトの名無しさん
垢版 |
2018/08/27(月) 09:47:55.19ID:n6GSDZ7+
強度の強い暗号化は輸出制限あるから気を付けてね。
うっかりノートPCにセットしたまま他国へ持って行こうとするとバレた時に大変まずいことになるかも知れない。
0698デフォルトの名無しさん
垢版 |
2018/08/27(月) 17:31:52.62ID:n/TwkHD5
jre1.8の最近のバージョンでデフォルトで強度無制限になったようです。
とはいえ、java8の仕様上、2048までしかサポートする必要は無いようです。
実装によってサポートしているかもしれません。
0699デフォルトの名無しさん
垢版 |
2018/08/27(月) 17:33:10.48ID:n/TwkHD5
このようなコードがあった場合、tは生存しますか?
tはどこからも参照されてないとします。

//in some method
Thread t = new Thread(){...};
t.start();
return;
0700デフォルトの名無しさん
垢版 |
2018/08/27(月) 20:27:36.23ID:QkMU0TtV
>>699
試してみた
https://paiza.io/projects/PxoO2-fLSd_KfpwF5B3prA

結果からわかることは
・メソッドを抜けてもスレッドが終了するわけではない
・スレッドが終了しないならばプロセスは終了しない
・ローカル変数がなくてもスレッドを取得できる

作成したスレッドのオブジェクトはどこかに保持されるみたいね
tは生存します、が答えっす
0701デフォルトの名無しさん
垢版 |
2018/08/27(月) 20:52:27.61ID:l2rfNjjd
変数tを通してアクセスできなくなるだけだな。
0702デフォルトの名無しさん
垢版 |
2018/08/27(月) 21:06:10.81ID:ngNgILlM
threadは、main thread同様garbage collectionのrootとして扱われるそうなので、生存しまする
0703デフォルトの名無しさん
垢版 |
2018/08/28(火) 10:11:17.88ID:nen4cHNL
ただし、daemonthreadは除く。
0704デフォルトの名無しさん
垢版 |
2018/08/29(水) 16:44:32.01ID:V/7UzzKh
Eclipseとかいう汚物にJavaFXを入れたく思いマーケットプレースでjavafxで出てくるe(fx)clipseをインストールしようとしたところ長時間待たされた挙句にエラーが出ました
どうすればいいでしょうか?
0707デフォルトの名無しさん
垢版 |
2018/08/29(水) 18:35:28.97ID:bZ2D0xRL
諦めなさい
0708デフォルトの名無しさん
垢版 |
2018/08/29(水) 20:23:25.71ID:QbSkJrbm
マジで?!廃止されるのswingかと思ってた!
0709デフォルトの名無しさん
垢版 |
2018/08/29(水) 20:35:24.50ID:LfUbbQ2v
厳密には廃止ではなく分離とされてる。
あとJava8が2020年までサポートだから、2020年までは1.8系のjreがあれば使える。
0710デフォルトの名無しさん
垢版 |
2018/08/29(水) 20:44:48.17ID:LfUbbQ2v
そもそもJavaの未来はどうなるのか。JREが有償化される。
OpenJDKはインストーラや自動アップデータが提供されるのか。

JavaFXは単体のライブラリとして独立できるはずだが、誰かがやるのかどうか。
現状だと、何やら面倒なインストール手順が必要なようで、
デスクトップアプリに使われるであろうJavaFXにとって致命的なはず。
mavenとかを使ってアプリに気軽に同梱できるものになればいいのだが。
0711デフォルトの名無しさん
垢版 |
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.
0713デフォルトの名無しさん
垢版 |
2018/08/29(水) 20:51:13.97ID:zRPnCBM0
このスレではJavaFXをオヌヌメします
JavaFXをオヌヌメしないのはoracleのコウサクイン
0715デフォルトの名無しさん
垢版 |
2018/08/29(水) 21:01:39.61ID:LfUbbQ2v
downloadable moduleってなんだろうな。

そもそも後方互換性を捨てて高速リリースとか言ってるのが怖くて仕方ない。
開発者が最新版に対応したって、エンドユーザーが最新版を持ってるか分からない。
どのバージョンに向けて作ればいいんだ?
0716デフォルトの名無しさん
垢版 |
2018/08/29(水) 21:02:52.35ID:LfUbbQ2v
いやクロスプラットフォームGUIという概念は重要でしょ。
0717デフォルトの名無しさん
垢版 |
2018/08/29(水) 21:07:16.02ID:LfUbbQ2v
Java8+JavaFXは2022年までサポートされるってかいてあるな
だからもう少し先の話ではあるし、人気のある環境だからそれまでに整備されるだろう。
0718デフォルトの名無しさん
垢版 |
2018/08/29(水) 21:13:19.32ID:LfUbbQ2v
AndroidでもJavaFX動くみたいだし、クロスプラットフォーム性という面で
やはり一番優れてるよJavaは

ちなみにJavaやKotlinのコードをネイティブコードにするコンパイラがあって
iPhoneでもJavaやKotlinのソースコードで動かせるみたいだぞ
ちょっと前までiPhone用のJVMもあったんだけどな
0719デフォルトの名無しさん
垢版 |
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
困りまくりだ
0720デフォルトの名無しさん
垢版 |
2018/08/29(水) 21:22:30.87ID:LfUbbQ2v
OpenJDKに自動アップデータが提供されたとする。

OpenJDKのアップデートがアプリのアップデートを先行する
→勝手に互換性を捨てたアップデートが来てアプリが動かなくなる。
アプリを最新版に対応してリリースしてもアプリのアップデータは動かないw

アプリのアップデートが先行する
→エンドユーザーのOpenJDKが古くて動作しない

だから、互換性を捨てて高速リリースとかいってるのはほとんど意図的なJava界隈への攻撃。
0721デフォルトの名無しさん
垢版 |
2018/08/29(水) 21:26:20.75ID:LfUbbQ2v
一番欲しいのは、Java8のサポート継続&自動アップデート継続&互換性の維持。
APIを変更するならdeprecatedの期間をある程度とってくれないと無理。
高速リリースがうれしい人が居るのか?
0722デフォルトの名無しさん
垢版 |
2018/08/29(水) 21:41:37.34ID:zRPnCBM0
.netと同じ道を歩んでるようにみえて
microsoftの.netはMITライセンス
0723デフォルトの名無しさん
垢版 |
2018/08/29(水) 21:46:25.67ID:zRPnCBM0
javaはもうおしまい
0724デフォルトの名無しさん
垢版 |
2018/08/29(水) 21:59:08.27ID:LfUbbQ2v
OpenJDKのリンク例外つきGPLは十分だろ。
OpenJDKにおいて、互換性を考慮したアップデートが行われ、自動アップデータが提供されるか。
GPLだから誰でもそのプロジェクトをやれる。
0725デフォルトの名無しさん
垢版 |
2018/08/29(水) 22:00:44.61ID:zRPnCBM0
mitライセンス、bsdライセンス以外は不要
0726デフォルトの名無しさん
垢版 |
2018/08/29(水) 22:02:20.50ID:LfUbbQ2v
>>720の解決法はこうだ

OpenJDKの次期バージョンで現在のアプリが問題を起こすかチェックする。
→問題があるならOpenJDKがアップデートされる前にアプリをアップデートしておく。
そのアプリの修正は、現在のOpenJDKと次のOpenJDK両方で動作する事を確認する。
0727デフォルトの名無しさん
垢版 |
2018/08/29(水) 22:04:08.95ID:zRPnCBM0
javaを棄てれば解決
0728デフォルトの名無しさん
垢版 |
2018/08/29(水) 22:07:18.69ID:LfUbbQ2v
もうJavaで書いたアプリがあるし、Javaに慣れてるから。
それに、.NETに移ったとして、同じ事が起こらない保証があるのか?

実は俺はこの問題に対する根本的解決策を知ってる。うまくいくかは知らないが
それも含めて考えると、やはりJavaを続けようと思える。
0730デフォルトの名無しさん
垢版 |
2018/08/29(水) 22:31:53.32ID:LfUbbQ2v
リリース前でもビルドが公開されてるだろうと思ったけど。
プラットフォーム系でプレビューリリースとかアーリーアクセス的なものを提供して
予め対応してもらおうというアイデアは一般的なもので、オラクルがOpenJDKをサポートするなら
たぶんやるだろう、というか既にやってると思うけど。

JDK 11 Early-Access Builds
http://jdk.java.net/11/
0731デフォルトの名無しさん
垢版 |
2018/08/30(木) 00:12:55.41ID:2PPyJx3c
大前提の認識が間違ってるぞ。
Java11以降においては無償のスタンドアロンなJREは無くなるんだよ。
デスクトップ用途なら開発者自身がアプリにJavaランタイムを組み込んで配布することが推奨される。
そして、OpenJDKはエンドユーザーが自分で個人端末にインストールするようなことを想定したものではない。
開発者がシステムに元々入っているのOpenJDKに依存してよいのは、業務システムなどで
開発者が完全に実行環境のOpenJDKディストリビューションのバージョンや構成を制御できる場合のみだ。
0732デフォルトの名無しさん
垢版 |
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はそこでサポートされなきゃ意味が無いし。
0733デフォルトの名無しさん
垢版 |
2018/08/30(木) 00:57:29.40ID:XYFOdQAI
>Java SE 8は、デスクトップ展開を対象とした最後のJava SEリリースです(Java Web StartやスタンドアロンシステムJREなど)。

こういう文言もあるから、Java11以降、OpenJDKでJavaFXみたいな
デスクトップ展開がサポートされるのかどうか。Java8最終版を組み込んで使い続けるか
Gluonに期待するか。
0734デフォルトの名無しさん
垢版 |
2018/08/30(木) 12:01:02.32ID:rv0GkEtx
初心者だけどJavaFXでFTPサーバーとやりとりして追加したり一覧表示してダウンロードしたりするwindows用アプリを作りたいんだ
apache commons netというライブラリを使ってやろうと思うけどviewにファイルを入れるにはどうすれば良いんだろう?
入れた後はjavaからviewをインスタンス化してその中の変数の値(ファイルのパスかな?)を取り出してって感じでなんとかなりそうだけど...
本当に何も分からない状態で、何か良い勉強方法は無いかな?
FTPサーバーについても素人に近いよ
0736デフォルトの名無しさん
垢版 |
2018/08/30(木) 12:59:41.93ID:A5Nytyjy
そういや今はJavaは標準のライブラリでFTP接続してアップロードとか楽にできるクラスあるのかな?
ダウンロードだけはURLクラスでできるの知ってるが。
0737デフォルトの名無しさん
垢版 |
2018/08/30(木) 21:21:59.87ID:XYFOdQAI
viewにファイルを入れるってなに?
TableViewとかTreeViewクラスにアイテムを表示する方法ならチュートリアルあるでしょ
0738デフォルトの名無しさん
垢版 |
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
0739デフォルトの名無しさん
垢版 |
2018/08/30(木) 22:12:54.72ID:XYFOdQAI
訂正
人→GUI→アプリ
アプリ→GUI→人
この流れがやりたいってことだとおもわれる
0740デフォルトの名無しさん
垢版 |
2018/08/30(木) 23:38:43.13ID:8yCH8Wm6
>>739
そうそんな感じ
全然イメージ出来ん
どうやって起動させるの?
でも公式ドキュメント見やすそうだねありがとう
0741デフォルトの名無しさん
垢版 |
2018/08/31(金) 00:25:08.31ID:tMQ4ovnC
Project Loomを急ぐんだ!
はやく第一級継続を書かせるんだ。
どうか限定じゃありませんように
0742デフォルトの名無しさん
垢版 |
2018/08/31(金) 01:00:04.22ID:CSMn2BX4
イメージできんってもなあ・・・
GUI部品クラスが提供されてて、何らかの値の設定方法、取得方法があるだけじゃん。
StageやSceneクラスという、GUI全体を意味するクラスも提供されてる。
そこにGUI部品を積み上げてくだけだぞ。
0743デフォルトの名無しさん
垢版 |
2018/08/31(金) 01:09:01.54ID:CSMn2BX4
起動って・・・IDEのプロジェクトアーキテクチャの選択でfx系選べば何もしなくても
GUI立ち上がるでしょ
0744デフォルトの名無しさん
垢版 |
2018/08/31(金) 08:28:19.25ID:XwawDSyV
>>743
webアプリならサーバー起動させてコントローラにある接続用のurlをブラウザに入れれば始めれるじゃん
これはメイン関数なくても行けるんでしょ?起動ボタンあるの?
0745デフォルトの名無しさん
垢版 |
2018/08/31(金) 09:09:35.21ID:G30RIEnt
何かの障害持ちだと理解の過程が通常と違う
彼らにネットは不向きだと思う
■ このスレッドは過去ログ倉庫に格納されています

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