Java有償化まとめ
■ このスレッドは過去ログ倉庫に格納されています
よく分からんのでまとめて下さい。
会社のローカル開発環境はお金払うの?
JavaRuntimeとかあったような…
諸々よろしく。 今から業務系のシステムを作るとなったらJava以外に何採用すればいいの? MSの良い?所は(開発環境を作った)コードに対してしか課金しない。
(最近はApple真似て開発環境無料で年会費取るけど)
CPUやコア数で課金しない。
(開発人数では課金するけど、逆にVSエンプラが無いのは、それだけ開発者を揃えられない(悪い意味での)証だったから、VSエンプラ入れてない会社なんてなかった)
個人的にはWinMobileとかの方が初期投資さえ済ませれば好きに作って配布できた分楽だった。
(ファイルへのアクセス含め)
ユーザーやセキュリテイ的には今の方が安全かもだけど、開発的には楽。
個人でも最適化欲しさにProは買ってた。 デスクトップや小規模なwebアプリには今はいい時代になったと思うけど、モバイル向けの環境は学習にはやや不便。 あるtwitterより
効率よく開発できるならプログラミング言語は何でも良い派ですが、
Javaに関してはOracleJDKにしてもOpenJDKにしても、そこまでしてJavaにこだわる必要はもうほぼないよねという印象です。
今後Oracleが何するか読めないのも面倒くさいし、どうしても必要な場合を除き弊社ではJavaでの開発はやめました。 >>756
言語そのものしか使っていないならその通りだが、それ以外のツールなどを使って
エコシステムにどっぷり漬かっていると、そうできないからみんなこんなに騒いでいる。 今後の新規開発にJavaを一切使わないのは現在Javaにべったり依存している組織においても技術的にはそれほど難しいことではない
問題は、>>757の「それ以外のツール」ってのがSIerにとってはJavaドカの工数と事実上ほぼ同義であることで、この状況を覆すのは容易ではない
そもそもJava自体が何よりも "Learn Once, Work Everywhere" の性質を背景にして普及してきたプラットフォームであるわけで、
他の言語と比べても人的リソースに特に強く左右される言語であることはいうまでもないだろう Learn Once, Work Everywhere, Pay Someday >>693
Androidのアプリ開発してるところは、Android 6.x以前の端末に対してアプリ提供を
続けていくつもりなのかな?
Android 6.x以前の端末に対しては、そもそもGoogleがOSサイドでOpenJDK対応して
ないから色々難しい面があるのではないかと思うけど >>760
Android6.0.1以前は切り捨てでしょ 古いバージョンのJVMを使っていても強制的に金払わないといけないんですか? Java8があと数年更新されるから
Java8を使って置いて、サポートが切れた&Java8で脆弱性が見つかったら
OpenJDKの最新版に乗り換える、とかで良いのかな? >>763
Java8の無償サポートって、期限来年の1月末までなんですが....
もう残り3ヶ月切ってるよ
個人のPCでネット接続しないスタンドアローンのものならば構わないけど、
そうじゃない限りサポート無しっていう訳にはいかないだろ
金払いたくないけどJava使いたいならOpenJDKぐらいかな選択肢は OpenJDKの開発環境のセットアップとか
アプリへの同梱作業は難しかったりするの? OpenJDKもLTSが無いとかでAdoptOpenJDKが最有力に思える
でも信頼性が無い・・・ >>766
信頼性とかRedHatエンプラやIBMもねーよ >>254
バトルフィールド5の初日パッチで修正される不具合
135ページに渡るらしいぞ。
開発間に合わなかったのかね Java8+JavaFXでやってるけど
AdoptOpenJDK 11に乗り換えるか・・・
Eclipseもアプリ側も変更になる
どれくらい大変なんだろうか ありがとう。とりあえず11で試みて、ダメそうだったら8でビルドしてみる >>769のJavaFX 11体験談に期待。
http://mevius.5ch.net/test/read.cgi/tech/1404491265/
あたりでお待ちしています。
こちらはGluonのOpenJFX11を使いたいけど、32bit環境が残っているので足踏み状態。 ・AdoptOpenJDKのLTSは、オラクルのサポートが打ち切られた後にバグが見つかったら、
独自修正するんだろうか?
・その場合、その修正はオラクルの特許に絡まないんだろうか?
・絡んだ場合、AdoptOpenJDKの再配布はリスクだろうか? あらゆるソフトウェアが数多ある特許の何れかを侵害してしまうリスクを抱えているのでは >>774
結局Javaそのものがリスクになるんだよ。
Oracle以外がそうならないように頑張っているのは周知のとおりだけど、
Oracleが自分のところ以外のLTSを潰しにかかって言いがかりをつけ始めたら
泥沼化は避けられない。
そこまで馬鹿ではないだろうとか勝ち目はないだろうとか、そうならない
だろう材料は当然あるけど、どんな馬鹿が台頭するかもわからないわけで。
それを、ある日インターネットが世界的に禁止されたら、と同じ程度の
リスクと考えるか、ガソリンがレギュラー160円になるくらいのリスクと
考えるかはあなた次第。それをうまく立ち回れるのが求められている事。 OracleJDKはいやだ
サードパーティーもいやだ
OpenJDKを追いかけるのもいやだ
理想の世界はなんなの? Java以外に行っても解決しないだろ
例えばC#に行ったら、次はMSに振り回されるだけだ C#は標準化してるからMSに振り回されることはないだろ
トランプやEUがケチつけてくるとかはあるかもしれないが >>781
Javaの方がずっと古くから標準化されていると思うんだけど。 標準化ってISOでの標準化でしょ。
JavaはSunやOracleが権利振りかざして管理してただけで。
C#はMS以外からコンパイラでても訴えられる事はない。
(ただし、MonoみたいにMSに買収されることはあり得るが) 古くから標準化されてるからって、それがなんなの?
それをいったらCOBOLはそれのずっと前から標準化されてるって話になるけど つまり変な仕変にや環境ごとの仕様の違いに振り回されることはない
C#みたいに誰かの思惑でいいように内容を変えられたりしにくいってこった
COBOLがだめなのは別の理由 MS系はやっぱり振り回される可能性高いと思うよ
何だったかWindowsストアと連携した機能とかあった気がする
あとC#アプリ作ったとして、WindowsとLinux(Mono)で起動方法が違ってくるはず、昔調べた結果によると
確かWindows限定で動作する起動コードが同梱されるんだったか
Windowsだとダブルクリックだけで起動できるけど、
Linuxだと.exeとMonoを関連付けないといけない
でも.exeはC#限定拡張子ではない
.jarはJavaを意味する拡張子だからJREと関連付けるのは妥当なんだけど >>786
だから今でも生き残ってるし、Javaが死んでもCOBOLは安泰。
>>788
環境毎の違いをあげつらって、振り回されるとか言われてもなあ。 そうじゃなくて、俺が言ってるのは、
MSが自社製品を優遇するような仕様を入れるのは珍しい事じゃないということ http://www.atmarkit.co.jp/fdotnet/special/mono10_01/mono10_01_04.html
>「え! Linuxなのに拡張子が“.exe”なの!」と思う読者もいると思うが、そのとおりである。
.exeは”MS系OSの実行可能ファイル拡張子”で、クロスプラットフォームな拡張子じゃない。
まずこの時点で自社製品優遇の仕様が入れられてる。 >>788
Linux用のバイナリ起動はよくは知らないんだけど、例えそうだとしたらexeからmonoとかに拡張子変えればいいだけじゃないのん?
後、細かいことだけどMonoはC#環境じゃなくて.NET互換環境じゃないのん? それ言ったら言語とかの基礎的な仕様の意味が無いでしょ
「これしかできない」とか「これが標準的なやり方」っていうのを定めて、
それ以外を想定しなくていいことがメリットなんだから。
あとC#と.NETは適当に読み替えてくれ 仕様には入ってないだろ
Microsoft.*名前空間にいろんなパッケージを作って配布はしてるのは事実だけど
それは他のサードパーティ製パッケージやオープンソースパッケージを使うのと同じことだよね それは仕様という言葉を極端に狭くとらえてる。
お前は今仕様という言葉を”言語仕様”に限定したんだろ?
標準的な実行可能ファイルがexeである時点で、MS製品への誘導を行っていて、
クロスプラットフォームを純粋に追及できていない。 >>791
そもそもMonoはオープンソースで拡張子を決めたのはMicrosoftじゃないだろ
exeはMicrosoft優遇とかいう理論も全くもって意味不明
格安はファイル名の延長でしかなくファイル名を解釈するプロセス側の問題 >>793
喧嘩売るつもりは全くないんだけど、Linux環境では「exeはMono用のIL」ってルールで運用しちゃダメなのん?
気持ちいいか悪いかだけの問題な気がする。 Monoだけじゃなく当然Visual Studioとかで実行可能ファイルを作成してもexeだ
その状況が何らかの標準化された仕様によるのか慣習なのかは知らないが、
クロスプラットフォーム的ではない。
>>798
もしexeに.NETと無関係な他のプログラムが関連付けられていたら?
jarにjreを関連付けるのはそういう問題が無い >ファイル名の延長でしかなくファイル名を解釈するプロセス側の問題
そうじゃない。世界のソフトウェア開発全般のエコシステムの問題で、
exeを.NET限定拡張子であるかのように扱う事ができないんだけど、
それを要求されてしまってるんだよ。 >>799
実際にLinuxでデファクトスタンダードにexe拡張子が何かに割り当てられてるんだっけ?
もし「仮に割り当てられたら」という話ならjarだって同じ話になるんじゃないのん? >>787
COBOLは金勘定特化言語ゆえ無くならない
コンセプト勝ち
Javaは開発も実行も無料で、どこでも動く、だったのが
実行したければ金払え、になったから >>799はWindows環境で.NET FrameworkでVSで実行可能ファイルを作成しても、という意味 >>800
ああ、ようやく貴方の言いたいことがわかった。
「Windowsでexeが実行ファイルの拡張子である限り、LinuxでのexeはMonoの拡張子じゃ許されない」ってこと? >>801
>>788
”意味が違う”。現時点で実際に関連付けられているかじゃなく、
今後exeに.NETと無関係なプログラムを関連付ける事が行われても不思議じゃないということ。
jarにjavaともjvmとも無関係なプログラムを関連づけるなら、それは関連付けたやつが間違い。
jar = java archive
https://ja.wikipedia.org/wiki/JAR_(%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88)
>JAR(ジャー)またはJava Archive(ジャバ アーカイブ)とは、コンパイルされた複数のJavaバイトコード及びそれが使用する画像などのリソースを一つにまとめZIP形式で圧縮されたファイル、及びそれを出力するツールのこと。
exe
https://ja.wikipedia.org/wiki/EXE%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88
>EXEフォーマット(エグゼフォーマット)とはMS-DOSおよびその互換・後継環境の実行ファイルフォーマットである。 >>804
「exeがWindows用実行可能ファイル全般の形式として定義されている限り、
Linux環境でMonoとexeを関連付ける事ができない」ということ >>800
だれもexeを.NET限定拡張子としてないし要求もしてない
アプリケーションがexeという拡張子を見てどう解釈するか?
それを決めるのはアプリケーションの開発者の自由 >>806
.NET Core知らないおばかさんかな? >>806
Linux環境でMonoとexeが関連付けできないと言い切るのは少し違和感があるけど、Monoはオープンソースなんだしコミュニティに要望出してみたらどうだい? >>806
関連付けできるよ
お前は何が言いたいんだ? >>807
Windowsと同じ起動方法を取らせるにはlinux環境でmonoを.exeと関連付ける必要があるから。
>>798もLinux環境でexeをmono専用にしようというアイデアを持ってしまってる。
>>808
それでどんな事情が変わるのかを教えてくれ JVMJ9CL002I クラスは、非 J9 ライブラリーか、誤って縮小された JXE からのものです
説明 クラス・ライブラリーの .jar ファイルは、この仮想マシンと互換性がありません。
システムの処置 JVM は開始できません。
ユーザーの処置 クラス・ライブラリーを JVM と互換性があるようにしてください。
JVMJ9CL003E 互換性のないクラス・ライブラリー・バージョン: JCL %1$x、VM %2$x
説明 クラス・ライブラリーが、JVM と同じリリースからのものではありません。
システムの処置 JVM は開始できません。
ユーザーの処置 JVM とクラス・ライブラリーが同じリリースからのものになるようにしてください
JVMJ9CL005E 互換性のないクラス・ライブラリー・バージョン: VM v%1$i が必要ですが、v%2$i が見つかりました
説明 クラス・ライブラリーが、JVM と同じリリースからのものではありません。
システムの処置 JVM は開始できません。
ユーザーの処置 JVM とクラス・ライブラリーが同じリリースからのものになるようにしてください。 >>810 >>800
例えばLinux向けデスクトップアプリを配布するにあたって
monoとexeを関連付けるように呼び掛ける事はできない。
世界のソフトウェア開発のエコサイクルのため、できない。意味が違うから。
コンピューターがチューリング完全であるという意味から可能というのは、違う。 jarとかclassファイルをzip化しただけのクソのくせに
なにいきってんの >>813
起動スクリプトでもなんでも書けばいいだろがい
お前の言い分が通るならjarをjavaの拡張子としてシステムに登録することを個々のユーザーに強いることはできないからjarもアウトだぞ? 複数のvmをインストールして動作させてる環境では
複数のjarファイルがあった場合
どのvmで動作させるのが適切か判別すらできない >>816
>jarをjavaの拡張子としてシステムに登録することを個々のユーザーに強いることはできない
できる。jarはjava専用拡張子だから。
起動スクリプトを書いたとして、linuxユーザーは起動スクリプトを使う、
windowsユーザーはexeを直接使うといった事を指示しなきゃいけない。
クロスプラットフォーム的じゃない。 うん、さすがに論理展開が強引になってきちゃったな。
早い話がLinuxとWundowsで少しでも起動方法が違うのが許せない、真のマルチプラットフォームとは言えないって事だよね。
OSが違うんだし、そのぐらいは許容してよ。 >>819
俺の主張が変化したかのように印象操作をするのをやめてくれ。
俺の主張は少しも変化していない。
>>788
>WindowsとLinux(Mono)で起動方法が違ってくるはず、 JVMJ9CL000E 非互換クラス・ライブラリー
説明 クラス・ライブラリーの .jar ファイルはクラス・ライブラリーのネイティブ・コードと互換性がありません。
システムの処置 JVM は開始できません。
ユーザーの処置 vm.jar ファイルが JVM と同じバージョンになるようにしてください
JVMJ9CL001I -jcl:%s を指定して実行してください
説明 クラス・ライブラリーの .jar ファイルは、クラス・ライブラリーのネイティブ・コードおよび JVM と互換性がありません。
システムの処置 JVM は開始できません。
ユーザーの処置 クラス・ライブラリーのネイティブ・コードおよび JVM を、指定されたクラス・ライブラリーの .jar ファイルと互換性があるようにしてください。
そもそもjavaがネイティブコード埋め込むのを許容してる
もともとクラスプラットホームである保証なんかどこにもない javaはコマンドからしか使わないから
jarをダブルクリックしたらzip解凍してほしいと考える特殊なユーザーだっている(俺のことな)
なので俺は関連付けでそうなるようにしてる
拡張子は「使う側がどうしたいか?」それだけなんだよ
monoユーザーは大部分の人がexeでいいと納得してる
でもお前みたいなexeは嫌だと考える人が居てもいいんだ
嫌なら関連付けの設定を変えるだけでいい
それは誰も禁止なんてしてない >>821
>クラス・ライブラリーのネイティブ・コード
これはJVMの標準ライブラリのネイティブコードであって、
アプリ側のネイティブコードを指してるわけじゃないと思う。 関連付けても
利用者の計算機で実行できる保証なんかどこにもない
javaのバイトコードだけであっても動作する保証がどこにもない
そんな関連付けられるほうが迷惑 >>818
java専用じゃない
俺は解凍に割り当ててる
それは法律も認める俺の自由だ
違いが気になるならWindowsの方も起動スクリプトを書けばいいだろがい >>820
ごめんな、やっぱり何を主張したいか俺にはよく分からない。
LinuxでexeをMonoと関連付けできないという主張なのは分かるんだけど、その理由がさっぱり分からない。 >>822
jarに解凍プログラムを関連付けるという行為は個人的な特殊な対応だから、
何が標準的に期待できるかということに影響しない。
>monoユーザーは大部分の人がexeでいいと納得してる
"monoユーザーは"そうだったとしても、
.NET以外に.exeにプログラムを関連付ける事を推奨しようとするプロジェクトが出現してもおかしくないんだよ。
そしたらそのプロジェクトのユーザーはそのプロジェクトのプログラムを
.exeに関連付ける事に納得しているかもしれないね。 >>825
それは世界的に流通してる定義を無視した個人的な対応だから、
世界のソフトウェアエコシステムにおいて意味を持つ主張じゃない。 つまりjavaなんかつかってんのは
池沼しかいない >>818
Javaってパス区切りは統一されてるんだっけ?
されてなければクロスプラットフォーム的じゃないはJavaにも当てはまるよ。
されてるというのなら、されてる方を優遇しているだけで、あんたがexeを叩いてるのと同じことだ。 >>825
>java専用じゃない
これが間違い。
jar=java archiveで、”java専用拡張子であることが定義されている”。
その定義を無視した個人的対応が存在する事はjarがjava専用拡張子であるという主張を否定しうるものではない。 >>827
monoの知名度は十分
新しい拡張子を広めようとするようなコミュニティがexeに関連する著名なアプリケーションを知らない&調べないなどということはまずありえないだろう
だから気にしなくていい >>831
jar拡張子ってISOやIEEEやRFCみたいな公的機関や事実上それに準ずる機関が決めてるんだっけ?
もしjarがそういう機関で決まってるならあなたの主張はその通り。 >>832
定義や標準化された仕様ではなく勢力によって守られているという事になるし、
その拡張子の競合問題は、もし.NET系言語が流行った場合、
LinuxではなくWindowsを使おうという誘因になってしまう。 >>834
ITの歴史を見ればスタンダードを無視して広く使われているものが事実上のスタンダードになった事例はいくつもある
デファクトスタンダードというのだけど知らなかった?新人かな?
拡張子の競合がどうなればWindowsを使おうになるんだ?
後半は何いってるかまったく意味不明だね >>835
exeの意味のデファクトは既にあって、「MS系OSの実行可能形式」なの。
そのデファクトに挑むように(Linux環境でだけ).NET専用拡張子だという勢力が出現してるということ。
それはLinuxの拡張子と処理系の関連付けを荒らすような行為だ。 >>836
ちがーう
exeのデファクトは「Windowsでは実行可能形式。Unix系ではmono」
拡張子が異なるプラットフォームで同じ意味を持たなければならないという決まりはない
それは解釈する側の問題だからだ >>837
>拡張子が異なるプラットフォームで同じ意味を持たなければならないという決まりはない
これが間違い。
bmp,jpg,gif,いずれもプラットフォームを超えて同じ意味を持ってる。
その解釈がデファクト。 >>838
exeという例外もある
みんな知ってるし受け入れてる
なのでこちらがデファクト 拡張子全般を見渡して、プラットフォームによって意味が変わるような定義は見たことが無い。
.html .jpg .bmp .gif .zip .mp3 .mp4 どれでもプラットフォーム非依存な定義されてる。
拡張子一覧
http://www.tohoho-web.com/wwwxx061.htm
ここ見て全部確認してみよう。どこにプラットフォームによって意味が変わる拡張子がある? >拡張子が異なるプラットフォームで同じ意味を持たなければならないという決まりはない
この主張はいきなり終わりか? だからC#はLinuxの環境破壊だけでなく
”拡張子がプラットフォーム非依存で同じ意味を持つという想定”
をも破壊しにかかってるということになる。 >>843
もう結論付いて話すこともないし良いんじゃない?
隔離スレとして存在してれば まぁ早い話がデファクトな拡張子ルールに従ってないから俺は気持ち悪いぜ!って主張でしかないわな。
確かにスレチなのでもし本気でそう思うならこの続きはMonoコミュニティでやればいいよ。 >>840
お前がさんざんレスしとるexeがまさにそれなんだが大丈夫?
>>841
ああ
真と結論でて終わりだね http://ascii.jp/elem/000/001/770/1770229/index-4.html
.NETは、Windowsに組み込まれている「.NET Framework」とは別に、オープンソースで更新速度の速い「.NET Core」がある。
.NET Coreは、プラットフォームに依存しない.NETの実装で、特定のプラットフォームの事情や細かい互換性を考慮しないため、
新機能がすぐに搭載され、更新の速度も速い。
現在では、.NET Coreとその標準ライブラリとなる.NET Standardによりデスクトップアプリケーションの開発も可能になっている。
こちらは.NET Frameworkの仕切り直し的な部分があるが、デスクトップアプリケーション側から見れば、アプリケーションモデルの選択が増えた格好になる。
.NET Core 3.0では、WPFやWinFormがサポートされた。また、複数バージョンの.NET Coreを共存させることも可能になり、
アプリケーションは、特定バージョンの.NET Coreを使い続けることができるようになった。
アプリケーションに.NET Coreを組み込んで出荷することも可能であり、ホストシステム側のバージョンに依存しない実行環境を維持できる。 >>845
>デファクトな拡張子ルールに従ってないから俺は気持ち悪いぜ!
”俺は”じゃなく、世界のソフトウェア開発のエコシステムにとって間違っていると主張している。
.NET coreの話を持ち出しているやつがいるが
exeもdllも.NET専用拡張子ではないのでこの議論の事情を変化させる主張ではない 間違ってないから今も問題なく動いてるし
今後は勝手にexeを使おうとするやつはデファクトに反する無法者ということになる ■ このスレッドは過去ログ倉庫に格納されています