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/
0443デフォルトの名無しさん
垢版 |
2018/07/09(月) 19:24:11.29ID:mEAcYnRs
その一握りに入れないならWeb系に行く意味なんかないでしょ
大したスキルもなく裁量もなくゴミのような単価でクソを垂れ流すだけ
業務系の方が遥かにマシだ
0447jlZqZIEk
垢版 |
2018/07/09(月) 21:50:21.93ID:AGPubLJK
もう諦めてSwingで書くことにしました
JavaFX、NetBeans、RaspberryPiで検索すると海外でも同じことで悩んでいる人がいるみたいだけど、
どうにもならないみたいですので
みなさん、ありがとうございました。
0451デフォルトの名無しさん
垢版 |
2018/07/10(火) 07:44:34.52ID:LbQkaO6y
>>431-439
まずこの本で、オブジェクト指向を学ぶ。
スッキリわかる Java入門 第2版、2014

基本情報処理なら、スッキリで十分だろ

その後「たのしいRuby 第5版、2016」を読んで、
無料のRails チュートリアルをやる
0453デフォルトの名無しさん
垢版 |
2018/07/10(火) 09:26:50.98ID:lWNPDM52
>>450
自社サービスは自分で設計して自分で作るぞ
うちもエンジニアの大半は社員で全員コード書いてる
自社サービスには人員需要の波がないからエンジニアを抱えることに対して抵抗がないんだよ
0455デフォルトの名無しさん
垢版 |
2018/07/10(火) 12:53:17.79ID:lacLn2e2
9:30なら俺はまだ通勤の電車の中だな
0457デフォルトの名無しさん
垢版 |
2018/07/11(水) 21:35:10.75ID:sDWfv/VL
mainメソッド内の処理において、ポリモーフィズムでnewの使い分けする時ってif文使わない方が良い?
やはりファクトリクラス作って、ファクトリのメソッド内でif文使うべきなのか?
0458デフォルトの名無しさん
垢版 |
2018/07/12(木) 09:34:46.57ID:nIR9VMIg
規模や使用頻度によるのでは?
0461デフォルトの名無しさん
垢版 |
2018/07/13(金) 01:27:43.49ID:xF0Xme8F
返答ありがとう
mainメソッドにif文はあまりつけないべきか悩んでいたのだが、そんなに拘るものでもないのかな
参考になりました
0462デフォルトの名無しさん
垢版 |
2018/07/13(金) 16:30:20.76ID:GBG+HB3a
よろしくお願いします。

Intent intent=getIntent();
String stdNo=intent.getStrintExtra("stdNo");

2行目のintentがインスタンスとして使われてるように見えるのですが
1行目のintent=getIntent();は、getIntent()というメソッドを変数intentに代入して
2行目で代入したgetIntent()のメソッド、getStrintExtra()を使っているということなのでしょか?
0463デフォルトの名無しさん
垢版 |
2018/07/13(金) 16:37:43.58ID:7jgvez+k
Javaではメソッドを変数に代入することはできない
getIntent()はIntentのインスタンスをreturnするメソッドなんだろ
getStrintExtra()でStringのインスタンスがreturnされてきて変数stdNoに入ってる二行目と一緒やん?
0464デフォルトの名無しさん
垢版 |
2018/07/13(金) 16:49:49.29ID:GBG+HB3a
>>463
ありがとうございます。1行目のintentはインスタンスなのですね。
インスタンスはnewで生成する以外にもreturnで取得する方法もあるのですね、勉強になります。
0467デフォルトの名無しさん
垢版 |
2018/07/14(土) 00:49:26.90ID:Qt+zgvv2
jdk11でjavafxが分離されるという話があるけど、
アプリにjavafxのライブラリを同梱するという形態になるんですか?
0468デフォルトの名無しさん
垢版 |
2018/07/14(土) 01:52:18.14ID:6eX3jxiA
>>467
分離じゃなくて廃止ね
オラクルとしては開発を放棄し、OpenJFXだけ残して提供終了
でOpenJFXというのはOracleの開発成果をGPLの下でソースを公開するだけの実体のない組織なので、開発継続の見込みはゼロ
もう無理や
0469デフォルトの名無しさん
垢版 |
2018/07/14(土) 06:08:21.38ID:KbpgtKf9
windowsでコマンドライン引数とかコンソールへの出力にユニコード使ってると、正しく処理できないっぽいですが、
そういうのちゃんとやってくれる定番のライブラリとかありますか?
0471デフォルトの名無しさん
垢版 |
2018/07/14(土) 08:24:20.86ID:rKXc4KlJ
>>467
これ俺も気になってる
JavaFXってJARだけでなくDLLなどのネイティブライブラリも必要なので
JavaFX(openjfx)使ったアプリの配布はプラットフォーム別に用意しないといけなくなるのかな?
0472デフォルトの名無しさん
垢版 |
2018/07/14(土) 10:21:43.78ID:zOneeAc4
OpenJDKやOpenJFXに部外者が参加しようと思ったら、私が提供する著作物はオラクル様が自由に使えます
絶対に訴えたりしませんっていう誓約書にサインしなきゃいけない
あれを見直さない限りコミュニティプロジェクトとしての発展はありえない
ただでさえJDK11の件でオラクルに対する不信感が高まってるのに今更誰がオラクルにケツを差し出す気になるだろう
0474デフォルトの名無しさん
垢版 |
2018/07/14(土) 12:57:15.02ID:Qt+zgvv2
JavaFXのJDKから廃止というのはJREからも廃止ですか?

OpenJDKのインストール方法を調べたらRedHatからダウンロードしろと。
しかもそれは開発者向けでエンドユーザー向けじゃない。
エンドユーザー向けJavaアプリが生き残る方法はあるのか?
0476デフォルトの名無しさん
垢版 |
2018/07/14(土) 13:01:17.39ID:Qt+zgvv2
どれが嘘だと思いましたか?
0477デフォルトの名無しさん
垢版 |
2018/07/14(土) 13:11:09.79ID:Qt+zgvv2
エンドユーザー向けのOpenJDKのインストール方法は見つからない。
つまり、環境変数の設定やコマンドラインを必要としないインストール方法が無い。
0479デフォルトの名無しさん
垢版 |
2018/07/14(土) 13:23:07.56ID:6PGIbnJP
>>468
君がやればいい。

これにて一件落着。
0480デフォルトの名無しさん
垢版 |
2018/07/14(土) 13:28:52.18ID:Qt+zgvv2
公式が配布するOpenJDKはtar.gz形式でwindowsの標準機能で解凍できない。

GPL感染はプロセスを超えないそうなので、
OpenJDKをパッケージに同梱してしまうのは解決策になるかもしれない。
その場合、起動スクリプトを組み込む必要があるし、OpenJDKのアップデートにどう対応するのかという問題がある。
windows向けOpenJDKインストーラ&アップデータを誰かが作る事も考えられる。
しかし、公式サイトへのポーリングや自動的なファイルのDLをしていいのかどうか。
0481デフォルトの名無しさん
垢版 |
2018/07/14(土) 13:30:03.02ID:6PGIbnJP
>>469
windows でも cygwin 使ったり wsl 内で動かせば問題なくできるのでは?

ていうかそういうOSとか実行環境の問題をそこの中で動かされるプログラムでなんとかしようというのは考え方がおかしいのではないか?
どうしようもない場合は別としても、やはり実行環境側でやらねばならない事は実行環境側でやるべきだろう。
0482デフォルトの名無しさん
垢版 |
2018/07/14(土) 13:38:51.88ID:6PGIbnJP
>>480
そういうの主要な Linux ディストリビューションだと悩まなくていいのにな。ネットワーク経由でアップデートする yum だの apt だのがあるから。
Windows には Windows Update があるが、あれはMS専用でMSが受け入れてセットしてくれない限り使えないよな。
0484デフォルトの名無しさん
垢版 |
2018/07/14(土) 13:44:48.39ID:Qt+zgvv2
本当に自分の中でLinuxの評価が上がってる。
みんなそろそろLinuxデスクトップに移行すべきじゃないか。
ゲームエンジンはLinux向けビルドが出来るし、古いゲームでもおおむねWineで動く。
0485デフォルトの名無しさん
垢版 |
2018/07/14(土) 13:58:16.02ID:LIsDU/xs
>>474
スタンドアロンなJREは廃止
Java SE Subscription を契約した上でアプリに同梱して配布するのが正解
価格は、開発環境も実行環境も(!)PC1台一月あたり2.5ドルから
一日10円の御賽銭でオラクル神の手厚いサポートが受けられるんだから安いもんだよね
0487デフォルトの名無しさん
垢版 |
2018/07/14(土) 14:06:15.27ID:upwDNa7V
リナックスでもマックでもウインドウズでも
動くソフトはこれから何で作ればいいの?
0488デフォルトの名無しさん
垢版 |
2018/07/14(土) 14:15:19.81ID:Qt+zgvv2
OpenJDKを使うしかない。
アプリに同梱するんだが、アップデータもJavaだから、恐らくOpenJDKを2個インストールして、
Aでアップデータを実行してBをアップデート、
次にBでアップデータを実行してAをアップデート、みたいにやるしかないだろうw
0490デフォルトの名無しさん
垢版 |
2018/07/14(土) 14:54:39.00ID:Qt+zgvv2
OpenJDK+OpenJFXをアプリ同梱、
起動スクリプトでOpenJFXのDLLにパスを通してOpenJDKからアプリのjar起動。
とかでいける・・・のか
0491デフォルトの名無しさん
垢版 |
2018/07/14(土) 15:09:18.44ID:Qt+zgvv2
JavaでDLLとかのネイティブコードをアプリ毎に用意させるのは例外的で
そういう方法は確立していないし、
JavaFXのようなクライアントソフトで使われる機能は
エンドユーザー環境で構築しなきゃいけないことが多々あるわけで、
全く破滅的としか思えないが、
JavaFXは情熱的で盛り上がっているコミュニティだとか言われてる。

JavaFXはOracleJDKでしかサポートされてなかったがそれが有償化される、
しかも自分が払えばいいだけじゃなくエンドユーザーもオラクルに金払わないと使えない、
やはりクライアントソフトで使われる技術で大量のエンドユーザーが居る事が多い、
JavaFX開発者は一番フェイント食らっただろう。
0493デフォルトの名無しさん
垢版 |
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)が標準搭載された
0494デフォルトの名無しさん
垢版 |
2018/07/14(土) 16:15:15.01ID:Qt+zgvv2
解凍処理はアップデータが動作できてる時点でなんかライブラリ使えばいいんだけど。

DLLの問題は、JNIのDLLロードと違って、JavaFXはエントリーポイントからJavaFXのクラスだから、
起動前にDLLのパスが分かっている必要がある。
だから、起動スクリプトでやることになるだろう。
しかし起動スクリプトはOS毎に用意する必要があり、Javaのメリットが薄れる。
もしオラクルがJDK11で何かそのあたりの対策を発表しなかったら、杜撰としか言いようがない。
0497デフォルトの名無しさん
垢版 |
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自体はかなり良い印象があるし。
0498デフォルトの名無しさん
垢版 |
2018/07/14(土) 17:09:59.99ID:FtH+pgzS
今更騒いでもなあ
Oracleに買われた時点でクライアントJavaに未来がないことなんか分かりきってたでしょ
次は乗る船を間違えないこと、間違えたと分かったらすぐに降りること
だいじなことだぞ
0499デフォルトの名無しさん
垢版 |
2018/07/14(土) 17:14:54.56ID:Qt+zgvv2
まだJavaで正解だったとは思ってんだよなあ
0500デフォルトの名無しさん
垢版 |
2018/07/14(土) 17:30:58.33ID:Q0JU5eRb
あるライブラリを使う必要が出てきて、C++用のがなくて、C#にするかJavaにするか迷って、結局Javaにしたんだけど、道を誤ったか。
また環境構築や言語の勉強に何か月もかけるなんて、うんざりするわ。
0502デフォルトの名無しさん
垢版 |
2018/07/17(火) 19:12:47.68ID:sYfkxtZj
>また環境構築や言語の勉強に何か月もかけるなんて
なんでそんなに時間掛かるの?
二つ目以降でそんなに時間掛かるとしたら能力無さすぎ。
0504デフォルトの名無しさん
垢版 |
2018/07/17(火) 19:45:05.49ID:lbJGoJLr
伸びたり縮んだりしそうだな
0507デフォルトの名無しさん
垢版 |
2018/07/17(火) 20:53:49.04ID:BDOR0qc4
>>503
よう、無能。
何カ月もかけるとかねーわ。
Javaは最も習得が楽な部類の言語だから他の言語は1年はかかるんじゃないかと思うけど頑張ってな。
0508デフォルトの名無しさん
垢版 |
2018/07/17(火) 20:57:13.31ID:KCeYVDaR
javaはOS環境の細かいこと覚えなくていいから楽だよな
0509デフォルトの名無しさん
垢版 |
2018/07/17(火) 21:20:10.72ID:lbJGoJLr
Javaそのものは楽だがライブラリが多くて最初は何をやる時に何を使ったら良いかよく分からなくて大変かも。
わからなくて自作してしばらくしてからライブラリの中から発見するとかなw
0511デフォルトの名無しさん
垢版 |
2018/07/17(火) 21:30:04.34ID:WkP7uW+n
Javaは完ぺきな言語に見えたけど、色々建て増しして便利にはなったけど当初の完全さが失われていったな。
0512デフォルトの名無しさん
垢版 |
2018/07/17(火) 22:04:55.58ID:kkggISKf
そうかな?
俺が使い始めた頃は重くて使い物にならんってのが評価だったような
0517デフォルトの名無しさん
垢版 |
2018/07/18(水) 09:10:55.41ID:qdiAbYc/
正直オラクルに比べたら100倍マシ
今は亡きJ#のように、Javaを.NET Core上に実装してみんなで移住するのが一番幸せな形だと思うわ
オラクルはAPIの著作権とかいう謎ワードで潰しにくるだろうけど
0518デフォルトの名無しさん
垢版 |
2018/07/18(水) 09:53:18.89ID:9IEVAZpR
>>512
Java Applet がブラウザで動いたお陰で世に広まりはしたが初期化で時間が掛かりすぎ、そのため Java は遅いという印象もより多くの人に広めることになってしまったのではないかと思う。
そして確か1998年にはLinusがJavaは死んだと言っている。20年前だ。確かにPCのデスクトップ環境では死んだも同然だった。
まあしかしLinuxもクライアント環境としては市場に受け入れられず死んだも同然で、みんなしてサーバや組み込み機器に逃れた感じではある。
クライアント環境でのLinuxとJavaはAndroidとしてスマホに組み込まれなければこんなに広まることはなかったかも知れない。
0521デフォルトの名無しさん
垢版 |
2018/07/18(水) 11:32:18.31ID:7RCNVxRQ
>>518
20年前っていうとダイアルアップ主流の時代だっけ?
時代を先取りしすぎたんだなぁ
どっちにしろセキュリティ的にだめな気がするけど
0522デフォルトの名無しさん
垢版 |
2018/07/18(水) 12:06:42.81ID:tghCYv44
失敗例でいうとJavaはあちこちで失敗してるね
日常すぎてわざわざ話題にならんけど
0524デフォルトの名無しさん
垢版 |
2018/07/18(水) 13:33:17.95ID:9IEVAZpR
Write once, Bug anywhere.

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

派遣の年上の人からルールだから書けと言われ気になりまして
0531デフォルトの名無しさん
垢版 |
2018/07/18(水) 15:13:11.38ID:ouSD5X5G
伊達に30億のデバイスで動いてるわけじゃねえぞ
てめえらあんま舐めてっとあれだからな
0533デフォルトの名無しさん
垢版 |
2018/07/18(水) 15:35:58.01ID:6/qiKP15
>>525
「初期化不要」とはどういう意味?
フィールドが一切なく、static(みたいな)クラスのことか?
デフォルトコンストラクタのことなら、「初期化不要」とは言わないぞ。
0534デフォルトの名無しさん
垢版 |
2018/07/18(水) 16:30:02.33ID:4ELcifB5
ぺろぺろ
0536デフォルトの名無しさん
垢版 |
2018/07/18(水) 17:57:49.02ID:OmO21Xy3
なんとかぎゃふんといわせたい(笑)
>派遣の年上の人からルールだから書けと言われ気になりまして
0537デフォルトの名無しさん
垢版 |
2018/07/18(水) 20:28:43.76ID:E4ArJsFy
8月からIT企業に入社します
研修があるので、早めに予習しておきたいのですが
開発環境をどうしたらいいか困ってます

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

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

それと、開発環境は君が決めても構わないのか?
普通は会社で指定されてたりしないか?
0540デフォルトの名無しさん
垢版 |
2018/07/19(木) 00:23:47.65ID:WcB0Ld3E
>>539
予習するだけです
C#は余裕してるので問題ないんですが
そもそもVBAでjavaを作動させることはできるんでしょうか?
■ このスレッドは過去ログ倉庫に格納されています

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