★★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/
488デフォルトの名無しさん
垢版 |
2018/07/14(土) 14:15:19.81ID:Qt+zgvv2
OpenJDKを使うしかない。
アプリに同梱するんだが、アップデータもJavaだから、恐らくOpenJDKを2個インストールして、
Aでアップデータを実行してBをアップデート、
次にBでアップデータを実行してAをアップデート、みたいにやるしかないだろうw
2018/07/14(土) 14:19:55.25ID:LIsDU/xs
>>487
Electron
490デフォルトの名無しさん
垢版 |
2018/07/14(土) 14:54:39.00ID:Qt+zgvv2
OpenJDK+OpenJFXをアプリ同梱、
起動スクリプトでOpenJFXのDLLにパスを通してOpenJDKからアプリのjar起動。
とかでいける・・・のか
491デフォルトの名無しさん
垢版 |
2018/07/14(土) 15:09:18.44ID:Qt+zgvv2
JavaでDLLとかのネイティブコードをアプリ毎に用意させるのは例外的で
そういう方法は確立していないし、
JavaFXのようなクライアントソフトで使われる機能は
エンドユーザー環境で構築しなきゃいけないことが多々あるわけで、
全く破滅的としか思えないが、
JavaFXは情熱的で盛り上がっているコミュニティだとか言われてる。

JavaFXはOracleJDKでしかサポートされてなかったがそれが有償化される、
しかも自分が払えばいいだけじゃなくエンドユーザーもオラクルに金払わないと使えない、
やはりクライアントソフトで使われる技術で大量のエンドユーザーが居る事が多い、
JavaFX開発者は一番フェイント食らっただろう。
2018/07/14(土) 15:37:51.51ID:gXqo7TYC
予想だにしない事態
2018/07/14(土) 15:42:21.59ID:4RxIMQwD
GUI は、HTML, JavaScript が基本。
Rails でもそう。Vue.js でも使えば?

>>480
ファイルの圧縮解凍なら、7-zip を使えば?

Windows のパッケージマネージャーなら、
NuGet, Chocolatey, Microsoft Web Platform Installer, Scoop とか

Windows10 では、NuGet, Chocolatey を使った、
MS 製のPackageManagement(OneGet)が標準搭載された
494デフォルトの名無しさん
垢版 |
2018/07/14(土) 16:15:15.01ID:Qt+zgvv2
解凍処理はアップデータが動作できてる時点でなんかライブラリ使えばいいんだけど。

DLLの問題は、JNIのDLLロードと違って、JavaFXはエントリーポイントからJavaFXのクラスだから、
起動前にDLLのパスが分かっている必要がある。
だから、起動スクリプトでやることになるだろう。
しかし起動スクリプトはOS毎に用意する必要があり、Javaのメリットが薄れる。
もしオラクルがJDK11で何かそのあたりの対策を発表しなかったら、杜撰としか言いようがない。
2018/07/14(土) 16:28:29.02ID:gXqo7TYC
eclipse辺りに移行すんだろ
2018/07/14(土) 16:40:59.62ID:40AkJIOi
swtのことであると超良心的に解釈
497デフォルトの名無しさん
垢版 |
2018/07/14(土) 17:04:10.87ID:Qt+zgvv2
https://www.gnu.org/licenses/gpl-faq.ja.html#IfInterpreterIsGPL
>しかし、インタープリタが他の機能(多くの場合ライブラリですが、
ライブラリである必要はありません)への「バインディング」を提供するように
拡張されている場合、解釈されるプログラムはバインディングを使うことによって
事実上それらの機能とリンクされることになります。ですから、
もしそういった機能がGPLのもとでリリースされているならば、
機能を利用している解釈されるプログラムはGPLと両立する形で
リリースされなければなりません。

OpenJDK、OpenJFXはリンク例外がついているので、
アプリに同梱しても非GPLを維持できる、と思う。
こっそりリンク例外が取り外されたりしないか注意しておく必要がある。

やはり、アプリ同梱作戦で何とか乗り切れるだろう。

Swingにすればjfx問題は無いんだが、結局oracleJDKが有償化されるから
アプリ同梱作戦は必要だから、さほど楽になるわけではない。
javaFX自体はかなり良い印象があるし。
2018/07/14(土) 17:09:59.99ID:FtH+pgzS
今更騒いでもなあ
Oracleに買われた時点でクライアントJavaに未来がないことなんか分かりきってたでしょ
次は乗る船を間違えないこと、間違えたと分かったらすぐに降りること
だいじなことだぞ
499デフォルトの名無しさん
垢版 |
2018/07/14(土) 17:14:54.56ID:Qt+zgvv2
まだJavaで正解だったとは思ってんだよなあ
2018/07/14(土) 17:30:58.33ID:Q0JU5eRb
あるライブラリを使う必要が出てきて、C++用のがなくて、C#にするかJavaにするか迷って、結局Javaにしたんだけど、道を誤ったか。
また環境構築や言語の勉強に何か月もかけるなんて、うんざりするわ。
2018/07/14(土) 17:51:59.42ID:gXqo7TYC
FXだけだろ
502デフォルトの名無しさん
垢版 |
2018/07/17(火) 19:12:47.68ID:sYfkxtZj
>また環境構築や言語の勉強に何か月もかけるなんて
なんでそんなに時間掛かるの?
二つ目以降でそんなに時間掛かるとしたら能力無さすぎ。
2018/07/17(火) 19:36:53.79ID:FdTz4k3A
>>502
Javaを見限ったくらいでそんなに怒らないでよ、ジャバラーさん(笑)
504デフォルトの名無しさん
垢版 |
2018/07/17(火) 19:45:05.49ID:lbJGoJLr
伸びたり縮んだりしそうだな
2018/07/17(火) 20:23:05.97ID:xA2MutdF
配列も自由に伸び縮みしてほしい
2018/07/17(火) 20:35:07.91ID:uV16APrp
うまいこといった、座布団一枚山田君
2018/07/17(火) 20:53:49.04ID:BDOR0qc4
>>503
よう、無能。
何カ月もかけるとかねーわ。
Javaは最も習得が楽な部類の言語だから他の言語は1年はかかるんじゃないかと思うけど頑張ってな。
508デフォルトの名無しさん
垢版 |
2018/07/17(火) 20:57:13.31ID:KCeYVDaR
javaはOS環境の細かいこと覚えなくていいから楽だよな
509デフォルトの名無しさん
垢版 |
2018/07/17(火) 21:20:10.72ID:lbJGoJLr
Javaそのものは楽だがライブラリが多くて最初は何をやる時に何を使ったら良いかよく分からなくて大変かも。
わからなくて自作してしばらくしてからライブラリの中から発見するとかなw
2018/07/17(火) 21:22:14.95ID:fsANPbWs
>>507
それを◆BrBq2CJg6HGdに言い聞かせていただけますか
511デフォルトの名無しさん
垢版 |
2018/07/17(火) 21:30:04.34ID:WkP7uW+n
Javaは完ぺきな言語に見えたけど、色々建て増しして便利にはなったけど当初の完全さが失われていったな。
2018/07/17(火) 22:04:55.58ID:kkggISKf
そうかな?
俺が使い始めた頃は重くて使い物にならんってのが評価だったような
2018/07/18(水) 04:38:41.12ID:md6d4tqx
せやね、セキュリティもがちがちだったし
2018/07/18(水) 08:20:05.70ID:WrUVLEXC
C#でいいよ
速いし楽だしMicrosoftの安心感最高
2018/07/18(水) 08:35:05.13ID:ouSD5X5G
ハハワロスwww
2018/07/18(水) 08:56:30.75ID:2isplW6I
スレチ、おま宗
2018/07/18(水) 09:10:55.41ID:qdiAbYc/
正直オラクルに比べたら100倍マシ
今は亡きJ#のように、Javaを.NET Core上に実装してみんなで移住するのが一番幸せな形だと思うわ
オラクルはAPIの著作権とかいう謎ワードで潰しにくるだろうけど
518デフォルトの名無しさん
垢版 |
2018/07/18(水) 09:53:18.89ID:9IEVAZpR
>>512
Java Applet がブラウザで動いたお陰で世に広まりはしたが初期化で時間が掛かりすぎ、そのため Java は遅いという印象もより多くの人に広めることになってしまったのではないかと思う。
そして確か1998年にはLinusがJavaは死んだと言っている。20年前だ。確かにPCのデスクトップ環境では死んだも同然だった。
まあしかしLinuxもクライアント環境としては市場に受け入れられず死んだも同然で、みんなしてサーバや組み込み機器に逃れた感じではある。
クライアント環境でのLinuxとJavaはAndroidとしてスマホに組み込まれなければこんなに広まることはなかったかも知れない。
2018/07/18(水) 11:17:49.53ID:ouSD5X5G
>>517
30億のデバイスで使われてるんだが?
2018/07/18(水) 11:18:55.86ID:ouSD5X5G
ロンドン証券取引所で大失敗したドトネトは信用できぬ
2018/07/18(水) 11:32:18.31ID:7RCNVxRQ
>>518
20年前っていうとダイアルアップ主流の時代だっけ?
時代を先取りしすぎたんだなぁ
どっちにしろセキュリティ的にだめな気がするけど
2018/07/18(水) 12:06:42.81ID:tghCYv44
失敗例でいうとJavaはあちこちで失敗してるね
日常すぎてわざわざ話題にならんけど
2018/07/18(水) 12:37:19.55ID:ouSD5X5G
>>522
NASDAQはJavaで動いています
Javaの失敗例なんて聞いたことないわ
524デフォルトの名無しさん
垢版 |
2018/07/18(水) 13:33:17.95ID:9IEVAZpR
Write once, Bug anywhere.

OS毎にバグの入り具合が違う。
2018/07/18(水) 13:55:40.65ID:imuZ+lX2
初心者質問で恐縮ですが、世間様では初期化不要なコンストラクタも一応書くのでしょうか?省略するのでしょうか?

派遣の年上の人からルールだから書けと言われ気になりまして
2018/07/18(水) 14:24:01.60ID:JHZwBCBg
>>523
だからわざわざ話題にするほど珍しくないってことだよ
2018/07/18(水) 15:01:03.41ID:hQiorlXz
IBMとかしょっちゅう失敗してるな
2018/07/18(水) 15:09:29.88ID:ouSD5X5G
>>526
失敗例ないじゃんw
2018/07/18(水) 15:10:24.92ID:ouSD5X5G
Javaの有名な失敗例を一つでもいいから挙げてみろよ
2018/07/18(水) 15:11:32.95ID:ouSD5X5G
>>527
IBMはセールスフォースでも裁判沙汰だから
言語の問題じゃない、マネジメントの問題
2018/07/18(水) 15:13:11.38ID:ouSD5X5G
伊達に30億のデバイスで動いてるわけじゃねえぞ
てめえらあんま舐めてっとあれだからな
2018/07/18(水) 15:14:21.70ID:ouSD5X5G
>>525
一般的には書かなくていいものは書かない
533デフォルトの名無しさん
垢版 |
2018/07/18(水) 15:35:58.01ID:6/qiKP15
>>525
「初期化不要」とはどういう意味?
フィールドが一切なく、static(みたいな)クラスのことか?
デフォルトコンストラクタのことなら、「初期化不要」とは言わないぞ。
534デフォルトの名無しさん
垢版 |
2018/07/18(水) 16:30:02.33ID:4ELcifB5
ぺろぺろ
2018/07/18(水) 17:47:21.24ID:ouSD5X5G
あんあん!
2018/07/18(水) 17:57:49.02ID:OmO21Xy3
なんとかぎゃふんといわせたい(笑)
>派遣の年上の人からルールだから書けと言われ気になりまして
2018/07/18(水) 20:28:43.76ID:E4ArJsFy
8月からIT企業に入社します
研修があるので、早めに予習しておきたいのですが
開発環境をどうしたらいいか困ってます

VBAでjavaをすると電話で聞いたのですが
見たところjavascriptでしか見たらず、開発環境はイクリプスでしかネットでも記事が出てきません
VBAで開発環境にしている方はどのように行ってますでしょうか
2018/07/18(水) 20:39:16.63ID:U6m34nVN
次の仕事を探す
539デフォルトの名無しさん
垢版 |
2018/07/18(水) 20:39:56.57ID:3T+bsJq5
>>537
>VBAでjavaをする

それは一体どういう状況なのか?
何か聞き間違えていないか?

それと、開発環境は君が決めても構わないのか?
普通は会社で指定されてたりしないか?
2018/07/19(木) 00:23:47.65ID:WcB0Ld3E
>>539
予習するだけです
C#は余裕してるので問題ないんですが
そもそもVBAでjavaを作動させることはできるんでしょうか?
2018/07/19(木) 00:47:04.50ID:I2KiLRYY
VBAからJavaで作ったアプリを起動する…とかなのか?
VBAやるならMSExcelが必要
2018/07/19(木) 07:30:41.13ID:X7flfBN8
>>533
はいフィールドのない小さいクラスのデフォルトコンストラクタです

アクセサメソッドみたいに丁寧に書くのがしきたりなのか世間様の動向を知りたく
2018/07/19(木) 07:39:20.31ID:B62Oo3TM
>>542
仕事の規模にもよるが、ソースコードを保守しやすくするためにコーディングの方法が決められている(コーディング規約がある)現場が殆ど
ちゃんと統一されてるなら従ったほうが無難

仮にバグが発生してあなたの追加部分が規約に従ってない場合、面倒くさいことが発せあする可能性がある
2018/07/19(木) 08:01:56.49ID:X7flfBN8
>>543
なるほど、そこはルールに従うのが無難ということですね

参考になります
2018/07/19(木) 08:06:40.53ID:SUmbWwrd
>>542
フィールドがないならインスタンス生成を禁止するためにprivateコンストラクタを必ず定義すべきなんじゃないの?
2018/07/19(木) 08:14:00.46ID:H+BjTpO8
そんな細いことまで規約で定めている現場はソフトウェアの品質が低い
俺の経験ね

品質管理担当とか専任者がいても規約に沿っているかという杓子定規な現場が多く
規約化できないビジネスロジックの妥当性はなぜかチェックしない傾向あり

しょーもない規約がなる揺らぎを許容する現場は
チェックリストに沿った均一的な検査はできないものの
分かっている人がビジネスロジックを査読しようとする傾向がある
2018/07/19(木) 08:16:26.97ID:MYiqAgsV
ルールに従っている限り、問題が起きた場合はルールを作った奴の責任
これ典型的なSI業界の考え方
上から下までSIに身を置く限りは極めて重要な大原則ではあるが、悪く言えば責任逃れだ
この例に限って言えばわざわざ破って余計なリスクを負うほどの価値があるとは思わないが、今後同様に自分で責任を負わないという判断をするときには
それがエンジニアとしての自分の価値を下げているということを頭の片隅に置いておいたほうがいい
どんな業界でも、本当に上へ行く奴は自己責任でやるもんだ
2018/07/19(木) 08:21:20.97ID:B62Oo3TM
>>544
俺も大体>>546と同じ考えだから「規約!」「厳守!」という凝り固まった考えにはならないように注意な

チェックする側が知識ない人って事もあるから余計に規約に従ってるか重視するんじゃないだろうか
2018/07/19(木) 08:38:28.86ID:B62Oo3TM
>>544
後あれだ
なんでこんな規約があるんだって考えるのも最初は勉強になるぞ

件のデフォコン必須!とかはリフレクション多用してて落ちたことがあったからそのまま規約になった〜とか理由があるかもしれない
550デフォルトの名無しさん
垢版 |
2018/07/19(木) 08:46:17.55ID:5x41Wecj
javaはもうwebの世界でしか生きていけないのかな
2018/07/19(木) 08:53:04.66ID:Op5duy3q
>>550
kindleもandroidもJavaで動いてるし
ただ単にwebアプリが増えてるだけだと思う
2018/07/19(木) 08:55:07.02ID:Op5duy3q
webに向いてるというよりはwebの世界が広がっただけ
2018/07/19(木) 08:59:35.72ID:Op5duy3q
>>547
話を一般化しすぎじゃないか
SIを嫌ってるだけだろ
2018/07/19(木) 09:02:43.68ID:Op5duy3q
スカラより簡単ピエチピより厳密
アプリサーバがたくさんあって人材も豊富
作っているのは世に名も高きオラクル
Java最強伝説
2018/07/19(木) 10:26:37.51ID:BQmzByzh
雑談終了
556デフォルトの名無しさん
垢版 |
2018/07/19(木) 11:32:42.94ID:MIkQQrXR
Kotlinもよろしく
2018/07/19(木) 12:41:54.56ID:hUcifAQw
>>551
Andoroidのjavaはもう終わりかな
2018/07/19(木) 13:22:28.48ID:KtebpVot
AndroidはもうKotlinでいいしな
559デフォルトの名無しさん
垢版 |
2018/07/19(木) 13:35:56.12ID:lzwulHPo
Javaの知識があってのKotlinだけどな。
Nativeは知らんけど。
2018/07/19(木) 14:46:46.68ID:Op5duy3q
>>557
終わらぬだろ、終わらぬよ
終わりません!
2018/07/19(木) 18:49:13.04ID:6E4STiKC
googleはjavaでオラクルに一兆円の損害賠償払うのにjavaは捨てられないのかな
2018/07/19(木) 18:52:53.52ID:6E4STiKC
オラクル社長はドラ息子に巨万の富を残してるのにまだ足りないみたいね

andoroidの巨額提訴にjava有償化に
2018/07/19(木) 20:41:02.41ID:m5MPu7YP
>>546
良いこと言うね
Java使いにもまともな人居たんだ
2018/07/19(木) 21:52:48.51ID:Sjf7ku63
寝言は寝て言え
2018/07/20(金) 03:33:50.65ID:KKufvgV7
Java使いに「も」って、まともな人が居ない事前提?

36歳がそうだからと言って全体を括るのは乱暴かと
2018/07/23(月) 06:03:22.92ID:a5odQemo
javaの致命的に糞な所を3つ挙げるとしたら何?
おまけで他言語よりこここだけは良いということ1つ
有料化になること以外でよろ
2018/07/23(月) 07:40:33.50ID:tja2UxRY
糞なところ
・貧弱なジェネリクス、極めて非直感的なワイルドカード
・直交性が目的化していて利便性が犠牲になっている標準ライブラリ群
・プログラマの平均スキルの低さ
良いところ
・安い単価でプログラマを大量に調達できる
2018/07/23(月) 07:46:24.27ID:r2NgEomY
致命的と思うところはない
だって致命的な欠点があったらJava使うのやめてるだろ

Javaの良いところはクラスライブラリと開発コミュニティ
Java自体の言語仕様は今となっては秀でている点はなく後発言語のほうが優れている
しかしJavaの豊富なクラスライブラリに多言語が追い付くの容易ではない

Java開発者は標準クラスライブラリに沿って・似せてクラス設計する人が多い印象
そのため外部ライブラリを見つけてきてもインターフェイスに一貫性があり使いやすいことが多い

昔、Perlでもモジュールを集めるCPANというものがあったけど一貫性がなくモジュールごとに作法がバラバラだった

Javaの良さは世界中の開発者が設計ポリシーを共有していて作られたライブラリが相互運用しやすいエコシステムにある
2018/07/23(月) 11:24:26.77ID:ZjQpUEmE
オラクルかな
570デフォルトの名無しさん
垢版 |
2018/07/23(月) 18:43:51.10ID:dX14gRVE
それをいっちゃあおしめえよ
2018/07/23(月) 19:32:54.33ID:IsAC2rDC
変数宣言が冗長すぎ
Date date = new Date()
Date型って最初に宣言してんだからnewもDateで基本問題無いやろ
2018/07/23(月) 19:50:26.60ID:EvGqybr2
>>571
Object o = new String() ;
ってやりたいこともあるから。
573デフォルトの名無しさん
垢版 |
2018/07/23(月) 19:56:00.68ID:dX14gRVE
型推論してくれるKotlinはナイスだな
2018/07/23(月) 20:09:10.55ID:stexMLiC
君らvar使ってないのか
575デフォルトの名無しさん
垢版 |
2018/07/23(月) 20:11:54.87ID:RCR4OhGD
moduleが難しすぎて突破できないから
Java8で行くお!
2018/07/23(月) 20:14:19.78ID:cHxBvLXH
そういや最近宣言と同時にnewってあんましてないな
577デフォルトの名無しさん
垢版 |
2018/07/23(月) 20:17:45.49ID:m6zef+c0
varはポリモーフィズムとは相容れないから。
2018/07/23(月) 20:27:02.30ID:ddy5leO9
>>577
相容れないなんてことは無いだろ。
限られたシチュエーションで使えないだけだ。
2018/07/23(月) 22:14:25.10ID:IsAC2rDC
>>572
それならそういうときはそれでいいけど、
Date date;
みたいに省略したときは自動でDateをnewしてくれ
2018/07/23(月) 22:16:05.03ID:IsAC2rDC
略するところを間違えた、まあ空気読んでくれ
2018/07/24(火) 04:21:52.30ID:/tfIts3n
Ky ky= new Ky();
582デフォルトの名無しさん
垢版 |
2018/07/24(火) 09:02:46.76ID:3bmjSXS4
Kotlin使えばよい
後から作った言語なのでそういう細かいことは解消されている
583デフォルトの名無しさん
垢版 |
2018/07/24(火) 09:06:29.72ID:WgNXUi2L
>>579
とてつもなく浅い知識で批判とか恥ずかしくないの?
2018/07/24(火) 09:40:11.61ID:uOakFE5H
そんなに浅くない
585デフォルトの名無しさん
垢版 |
2018/07/25(水) 07:32:49.10ID:BeP5/XfH
>>582
ははーん、さてはおめー何もわかってねーな
586デフォルトの名無しさん
垢版 |
2018/07/25(水) 09:27:06.98ID:GNtg4sP8
>>585
というと?
2018/07/25(水) 19:09:16.20ID:s14gtaOU
否定だけして根拠示さないのは例の人かな?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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