Java入門・初心者質問スレ Part.8

■ このスレッドは過去ログ倉庫に格納されています
2018/06/07(木) 20:17:08.87ID:N8MsK2gr0
Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.7
http://mevius.5ch.net/test/read.cgi/tech/1515549964/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured
516デフォルトの名無しさん (アウアウカー Sa99-pCnF [182.251.138.241])
垢版 |
2018/09/22(土) 16:47:30.75ID:iewBY6fOa
jbossのEJBってのが全然わかりません。
517デフォルトの名無しさん (アウアウカー Sa99-pCnF [182.251.138.241])
垢版 |
2018/09/22(土) 16:55:17.83ID:iewBY6fOa
Tomcatにちょっと毛が生えたのがEJBなんだろうな。
518デフォルトの名無しさん (アウアウカー Sa99-pCnF [182.251.138.241])
垢版 |
2018/09/22(土) 17:28:31.88ID:iewBY6fOa
Spring FrameWorkとEJB使ったらどんなイメージなんだ?
519デフォルトの名無しさん (ワッチョイ bb9f-3QZN [175.134.57.7])
垢版 |
2018/09/22(土) 18:18:39.84ID:ezjvT9yw0
>>515
KotlinのString#split()は引数がStringのやつとRegexのやつがあって、ただの文字列の一致で分割したい場合はStringのやつを使い正規表現のパターンとの一致で分割したい場合はRegexの方を使う。
520デフォルトの名無しさん (ワッチョイ bb9f-3QZN [175.134.57.7])
垢版 |
2018/09/22(土) 18:32:14.34ID:ezjvT9yw0
Charのやつもあった。
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/split.html
しかしJavaのやつを拡張してあって引数が多いのだがデフォルト値がセットされているので呼び出し時の記述に全ての引数は必要ない。
今回上のソースで使用したRegexを受け付けるsplitももう一つlimitが引数として存在しているがデフォルトのままで良いので呼び出す所では省略している。
2018/09/22(土) 19:57:13.70ID:UaEFgueIF
元ファイルをgzip形式で圧縮したファイルを、更にzipで複数個アーカイブしたファイルを扱ってます

今はzipファイルを全て展開→展開された圧縮ファイルを一つずつgzipで伸長、として処理してるのですが
扱いづらいので改良したいです

zipファイルの全ファイルの内容をbyte[][]に入れるメソッドとか、gzip+zipなアーカイブを
展開してリストにいれてくれるメソッドとか、ありませんか?
522デフォルトの名無しさん (ワッチョイ e38a-pCnF [125.205.113.65])
垢版 |
2018/09/22(土) 20:02:32.77ID:ns5EK8b00
誰も答えいる奴いないな、下らんスレだ。
523デフォルトの名無しさん (ワッチョイ 5d80-yqSl [180.4.84.249])
垢版 |
2018/09/22(土) 20:04:45.28ID:PGp2AKzL0
そんなもんシェルで書いたら一瞬で終わるからな
いちいち手間かけてjavaで書く必要性がまずない
2018/09/22(土) 20:28:28.82ID:ffP877J7M
LocalDateTimeクラス使ってAPIリファレンスの読み方学んでるんだけど、5ヶ月後をint型で出すには
LocalDateTime.now();で現在月時刻を取得
.getMonth();でMonth型に変換
.plus(5).getValue();でInt型に変換
LocalDateTime.of();で代入
って手順しかないですよね?

getMonthValue() + 5では12月から1月に以降してくれなくて驚き桃の木でした。
525デフォルトの名無しさん (ワッチョイ bbb6-25Xs [111.90.22.113])
垢版 |
2018/09/22(土) 20:42:31.51ID:J+cgHaTV0
>>524
LocalDateTime.now().plusMonths(5).getMonth().getValue()
526デフォルトの名無しさん (ワッチョイ 5d80-yqSl [180.4.84.249])
垢版 |
2018/09/22(土) 20:44:59.08ID:PGp2AKzL0
https://ideone.com/T6k33r

コレで普通に5か月後になる
LocalDateTime local_date_time_5 = LocalDateTime.now(ZoneId.of("Asia/Tokyo")).plusMonths(5);
2018/09/22(土) 21:10:45.88ID:PIBZ6Tp/0
>>526
そんな簡単にできたのね…
というか上の方法だと年が変わってくれないか。
ありがとうございます
2018/09/24(月) 22:25:30.46ID:mjd+cxSud
参照型のキャスト変換とかのあたりめんどくさい……
頭がこんがらがる
2018/09/24(月) 23:00:37.68
パイザのcランク問題で挫折しそう。
2018/09/25(火) 17:00:11.67ID:RXd3mBE5d
ZipInputStreamでzipファイルを展開した場合等、複数のファイルを扱う際のclose()の仕方についてどうするとよいか教えてください。

以下の様なソースを作ってます。zipファイルの内容物を展開していくものです。
ZipInputStream zis = null;
FileOutputStream fos = null;
try {
 zis = new ZipInputStream(new FileInputStream(zipFileName)); // <-
 for (ZipEntry entry = zis.getNextEntry(); entry != null; entry = zis.getNextEntry()){
  extFileName = entry.getName();
  fos = new FileOutputStream(extFileName); // <-
  while ((len = zis.read(zbuff)) != -1){
   fos.write(zbuff, 0, len);
  }
 }
} catch (IOException e) {
 e.printStackTrace();
} finally {
 try {
  zis.close();
  fos.close();
 } catch (IOException e) {
  e.printStackTrace();
 }
}
このようにソース中で複数のファイルへアクセスする場合、そのclose()はfinally句中でまとめてcloseする書き方でよいのでしょうか。
それとも、上記例でのfosをnewする時点でfos用のtry句を設け、fosのExceptionはそちらで処理すべきでしょうか。

fosのストリーム作成時にIOExceptionが発生したとき、finally句内のfos.close()で更に例外が発生しそうですが
それは仕方ないとすべきか、それともファイルごとにIOExceptionを処理するべきかを知りたいです。
2018/09/25(火) 17:16:21.33ID:Mw8jC0Zda
一般論だけど俺だったらファイルごとのループ内でtryブロック書くかな。
その方がエラーが起きた時の後始末(例えばエラーが起きたファイルのリストを表示するとか)がやりやすいし、
finallyの中にさらにtryを書くとコードの見通しが悪いから。
まあ要件次第ではある。
2018/09/25(火) 18:59:14.57ID:tj3tpCzGd
531と同意見
あと try-with-resourcesでググると幸せになれるぞ
open/close理解したいならゴメンだが
2018/09/25(火) 20:01:10.13ID:RXd3mBE5d
>>531
>>532
意見ありがとうございます

個別にtryする方向で見直そうと思います

try-with-resourceは良さそうですが、tryするタイミングが違うので、どう使えるかな?と思いつつですが、こちらも調べて考えます
2018/09/26(水) 18:42:57.71
すいません、初歩的な質問なんですが
自分の期待では下のコードで
ああああ
あああ
ああ

となるつもりなんですが
どうして
ああああ
ああああ
ああああ
ああああ
ってなってちゃうんでしょうか?
教えて下さい。

for( int mb = 0 ; mb < 5 ; mb++){

for ( int mc = 1 ; mc < 5 ; mc++){

System.out.print("あ");

}

System.out.println("")
};

}
2018/09/26(水) 18:45:49.63
訂正です。

for( int mb = 0 ; mb < 5 ; mb++){

for ( int mc = 1 ; mc < 5 ; mc++){

System.out.print("あ");

}

System.out.println("")
}
2018/09/26(水) 18:51:32.43ID:749GKFIC0
>>535
毎回mcが1〜4まで繰り返すから
ヒントは
mc = 1なら「ああああ」が4回になる
mc = 2なら「あああ」が4回になる
2018/09/26(水) 19:03:07.25
そうか。mc++があるから
mcが1足されてると思ってましたが
毎回、mc=0になってるんですね。
ありがとうございます。
538デフォルトの名無しさん (アウアウカー Sa99-rLjT [182.251.240.1])
垢版 |
2018/09/26(水) 19:08:14.30ID:MrbR9bENa
>>534
内側のループは毎回ループする回数が変わる必要があるよな。
最初は4回、2回目はは3回、という具合にループ回数が減っていく必要がある。

ところが今のそのプログラムだと毎回必ず4回ループになる。
これをなんとかして最初は4回、次は3回と言う具合に変化させるようにする。

もうなんとなくわかると思うが、例えば内側のループのforの条件部分を mc < 5 ではなく mc < (5 - mb) にするとできる。
他の方法でもできるが、とにかくループ回数が同じように減りさえすれば良い。
2018/09/26(水) 19:10:21.86
ありがとうございます!
なんとなく見えてきました
がんばってみます!
2018/09/26(水) 19:16:18.14
うまくいきました
ありがとうございました!
センスがあったらアドバイスなくても
自分で気がつくんだろうな・・・・
541デフォルトの名無しさん (ワッチョイ 35e3-rhI1 [218.231.167.57])
垢版 |
2018/09/26(水) 19:35:25.46ID:HSqf+3eD0
7以降なら、zip扱う時はnio.FileSystem使えばラク。
6以前なら、apacheからソースとってきてそれパクれば良いw
2018/09/26(水) 19:42:17.68ID:MMLyhqjfd
ファイルの内容を読み、byte[]のListで返すメソッドcreateFListを作ったのですが、
戻ってきたリストの中身を順次見ていくと、最後にリストに入れたファイルBの内容しか表示されません。
FileInputStreamで得た結果ではなく、ただのbyte[]の配列をaddすると、期待通り順次内容を参照できてます。
ファイルの内容をListに入れる方法を教えてください。

public static void main(String[] args) {
 List<byte[]> fList = new ArrayList<byte[]>();
 fList = createFList();
 for (Iterator<byte[]> iterator = fList.iterator(); iterator.hasNext();){
  byte[] bw = iterator.next();
  System.out.printf("%c%c%c\n", bw[0], bw[1], bw[2]); // /ファイルBの先頭3文字が2回表示される
 }
}
private static List<byte[]> createFList(){
 List<byte[]> fList = new ArrayList<byte[]>();
 FileInputStream fis = null;
 byte[] fbyte = new byte[1024];
 try {
  fis = new FileInputStream("ファイルA");
  fis.read(fbyte);
  fList.add(fbyte); // ファイルAの内容をリストに追加
  fis.close();
  fis = new FileInputStream("ファイルB");
  fis.read(fbyte);
  fList.add(fbyte); // ファイルBの内容をリストに追加
  fis.close();
 } catch (Exception e){
  e.printStackTrace();
 }
 return fList;
}
2018/09/26(水) 19:46:59.75ID:zkJaWWrba
全部間違ってる
悪いけどモノ作るレベルじゃないからまずはもうちょっと我慢して入門書を読み進めなさい
544デフォルトの名無しさん (アウアウカー Sa99-rLjT [182.251.240.1])
垢版 |
2018/09/26(水) 20:52:07.36ID:MrbR9bENa
>>542
fbyte は同じやつ使い回してるからだよ。ファイルごとにnewして作らないと同じ所に上書きされてしまうのでダメ。

それとmain()の最初の new ArrayList<byte[]>() は無駄だ。なぜならその直後に fList = createFList() をしていて元の fList への参照は捨てられてしまうからだ。
2018/09/28(金) 14:58:57.32ID:61hLEuChM
List Map覚えたての雑魚です
"あ"〜"お"、"か"〜"こ"...を追加した別々のArrayList
"あ行"〜"ん行"を追加したArrayList
を作る
HashMapで関連付ける
あ行キーを指定したら"あ"〜"お"が取得される、というプログラム組もうとしたんだけど、
List<String> aiueo = new ArrayList<>();
List<String> kaiueo = new ArrayList<>();
List<String> lineA_N = new ArrayList<>();
Map<List, List> map = new HashMap<>();
aiueo.add("あ"); ... aiueo.add("お");
kaiueo.add("か"); ... kaiueo.add("こ");
lineA_N.add("あ行"); ... lineA_N.add ("ん行");
map.put(lineA_N.subList(0, 1), aiueo);
map.put(lineA_N.subList(1, 2), kaiueo);
のようにsubList(i, i)を使って関連付ける以外の方法が浮かばなかったのですが、もっと綺麗な方法があったりしますか?
546デフォルトの名無しさん (ワッチョイ 1bb6-nDc3 [111.90.8.144])
垢版 |
2018/09/28(金) 16:19:23.91ID:z3tO4nEA0
>>545
MapのキーはStringでいんじゃない?
こんな感じで
https://paiza.io/projects/AcMfYc6_bvOdXfOdBiBSrQ
547デフォルトの名無しさん (ワッチョイ 1bb6-nDc3 [111.90.8.144])
垢版 |
2018/09/28(金) 16:50:58.08ID:z3tO4nEA0
>>542
配列は参照型だから同じ配列を参照しちゃってる、コピっちゃえばいいよ
https://paiza.io/projects/mppnngK-fgMr3ACUzzLRtA
548デフォルトの名無しさん (ワッチョイ 1bb6-nDc3 [111.90.8.144])
垢版 |
2018/09/28(金) 17:16:37.68ID:z3tO4nEA0
>>542
こういう書き方もできるよ
https://paiza.io/projects/IZkDli6_BuBHswAMbIqbqg?language=java
549デフォルトの名無しさん (ワッチョイ e97c-Rctb [112.136.82.59])
垢版 |
2018/09/28(金) 17:24:29.50ID:JZTmLHqA0
コピるより、別変数にするか再初期化する方がええやろ。
550デフォルトの名無しさん (ワッチョイ e97c-Rctb [112.136.82.59])
垢版 |
2018/09/28(金) 17:36:33.22ID:JZTmLHqA0
ごめん。勘違いしてた。
2018/09/29(土) 05:43:52.29ID:q2F+AH0R0
>>545
こんなのはどうだ?
https://paiza.io/projects/xdk9_ijSbZsQlqZYdZbVDg
2018/09/29(土) 08:09:09.74ID:uDDRPkb/M
>>546
>>551
String型でまとめる手もあるのですね
ただ、後で追加していきたい、という場合はListにした方が扱いやすいですよね?
2018/09/29(土) 11:08:11.08ID:UEYQCClq0
おしえて下さい
String line ="1 2 3 4 g10 6 7";

String[] list = line.split(" |g10");

スペースとg10でlineを分割して配列に入れて
1 2 3 4 6 7
にしたいのですが
1 2 3 4 6 7
みたいに
4と6の間に空白の要素が入ってしまいます。
どうすれば
1 2 3 4 6 7
に出来るか教えて下さい。
2018/09/29(土) 11:10:01.56
すいません訂正です

String line ="1 2 3 4 g10 6 7";

String[] list = line.split(" |g10");

スペースとg10でlineを分割して配列に入れて
1 2 3 4 6 7
にしたいのですが
1 2 3 4 空白要素 6 7
みたいに
4と6の間に空白の要素が入ってしまいます。
どうすれば
1 2 3 4 6 7
に出来るか教えて下さい。
555デフォルトの名無しさん (ワッチョイ 1bb6-nDc3 [111.90.2.101])
垢版 |
2018/09/29(土) 11:24:17.71ID:JVLIweBX0
>>552
マップのキーは不変にするのがセオリーだよ

マップに存在するキーを変えちゃうとハッシュ値とかイコールの結果が
変わっちゃうからマップの動作は保証されないっす

キーをコレクションにする必要があるケースってどんなケース?
556デフォルトの名無しさん (ワッチョイ 1bb6-nDc3 [111.90.2.101])
垢版 |
2018/09/29(土) 11:32:34.91ID:JVLIweBX0
>>554
できた!
String[] list = line.split(" g10 | ");
2018/09/29(土) 11:36:49.65
>>556
ありがとうございます!
答えを聞けば
あーそういう事か・・・
て感じですね、
2018/09/29(土) 16:05:20.80ID:uDDRPkb/M
>>555
ほーそうなんですね、勉強になりました
例えばパッケージとクラス、クラスとコンストラクタ、クラスとメソッドでMap作るとしたら、それぞれをListでまとめた方が管理しやすそうだなぁと。
559デフォルトの名無しさん (ワッチョイ 1bb6-nDc3 [111.90.2.101])
垢版 |
2018/09/29(土) 17:00:45.25ID:JVLIweBX0
>>558
パッケージとクラスは
1つのパッケージに複数のクラスが存在するっって
関係だからキーをリストにしたい理由がよくわからない

こういうキーのリストが欲しいわけじゃなく?
https://paiza.io/projects/XAUg69Mv_3KueQ9s626nQA?language=java
2018/09/29(土) 23:05:55.82ID:uDDRPkb/M
>>559
パッケージをListにする必要はないと思いますが、
パッケージjava.utilとクラス一覧
クラスjava.util.Dateとメソッド一覧

…書いてたら確かにキーはListにする必要なかった。
ありがとうございます。
561デフォルトの名無しさん (ワッチョイ 1b9f-aemA [175.134.57.7])
垢版 |
2018/09/30(日) 00:37:07.97ID:KPqVv5wd0
>>554
こんなのでもできる。これの場合は空白は1文字以上なら何文字でも良い。

String[] list = line.split("\\s+(g10\\s+)?");

ま、正規表現のパターンをどうするかの問題だな。
2018/09/30(日) 21:24:58.06ID:OqFePz/nd
わかんねー。
難しい
2018/10/01(月) 11:44:20.66ID:HXCGmwtoM
すっきりシリーズ実践編7章の練習問題なのですが、突然showMemory();というのが出てきて入力してもエラーになります。
ググっても出てこないのですが、これはいったいなんですか?
564デフォルトの名無しさん (ブーイモ MMeb-XcJu [163.49.203.127])
垢版 |
2018/10/01(月) 13:41:26.81ID:uzbdAfRPM
>>563
ググってだめなら
なぜハゲらないんだ?
2018/10/01(月) 17:20:14.70ID:0G+l/MVn0
>>563
著者か出版社にメールしろ
2018/10/02(火) 18:03:42.82ID:hoDCY76ca
>>563
なんですかと言われてもその本のどこかに書いてあると思う
567デフォルトの名無しさん (ワッチョイ eb80-LozN [153.177.171.243])
垢版 |
2018/10/03(水) 11:00:45.93ID:gJy1D1hJ0
>>521
Linux でのやり方

zip形式の、archive ファイルを解凍する

unzip archive.zip

gunzipコマンドは、gzip形式とcompress形式の、圧縮ファイルを解凍する。
-r で、そのディレクトリ内の、すべての圧縮ファイルを解凍する

gunzip -r ディレクトリ名
2018/10/03(水) 11:57:09.38ID:gJy1D1hJ0
>>563
意味のわからない練習問題なんか、無視すれば?

時間の無駄
2018/10/03(水) 14:57:43.46ID:9+VVYKLPd
難しい
2018/10/03(水) 15:53:09.08ID:daSHmcx9M
クラス分割せず変数に代入してってやつしかできない

複数クラスに分けて引数渡してってやつのやり方がわからないよママン
引数がない場合は◯◯を表示するプログラムを作りなさいとかいう練習問題を出されてるんですが
意味がよくわかりません
引数なかったらコンパイルできないじゃないですか
2018/10/03(水) 16:00:58.28ID:daSHmcx9M
よくわかんないけどsetうんたらとかgetうんたらを使えばいいの?
2018/10/03(水) 16:05:11.87ID:K7uCuHqGM
>>570
何言ってるのかわかんないから問題全文転載して
2018/10/03(水) 16:16:07.98ID:daSHmcx9M
◯◯日後の日付と曜日を表示しましょう

引数に◯◯日後の◯◯を設定その日付y/M/dと曜日を表示
100日後なら100を受け渡し?
引数がない場合はシステム日付を出してくださいっての

俺もよくわかってない
int型の変数Xに100を代入して
100日後は2019/01/11/金です
と表示するだけなら
みたいなやり方でクラスが1個しかないようなプログラムなら本を参照してやっとこさ
できたんだけど
引数のことが全然わからないので困ってます
2018/10/03(水) 16:21:17.36ID:9+VVYKLPd
>>573
問題ってどこで
もらってるの?
2018/10/03(水) 16:32:27.87ID:daSHmcx9M
引数ってルールがややこしくてよくわからないのでmainメソッドで用意した変数でやっちゃってます
2018/10/03(水) 16:49:04.16ID:daSHmcx9M
mainから 引数(50) を渡して50日後の日付を出すのは出来たんですけど

引数がない場合っていう問題の意味がよくわかんなくて
渡す引数のカッコの中になにもなかったらエラーになって動かないじゃないすか
2018/10/03(水) 17:16:08.08ID:SKbAf1Wk0
これで解決
https://www.javadrive.jp/start/member/index6.html
578デフォルトの名無しさん (ワッチョイ d1b6-nDc3 [220.208.88.117])
垢版 |
2018/10/03(水) 20:47:47.84ID:3B507mk50
>>573
引数取らないメソッド作るだけっしょ
579デフォルトの名無しさん (ワッチョイ af9f-XQ2D [175.134.57.7])
垢版 |
2018/10/04(木) 03:42:19.04ID:9/syaOEb0
>>573
その引数って実行時のコマンドラインで渡す引数のこと?
もしそうなら main() に渡される String の配列だよ。
2018/10/04(木) 04:32:34.81ID:FXwcGLCc0
「java コマンドライン引数」で検索!
2018/10/09(火) 17:05:00.58ID:pvyGknIYM
SwingのJTreeで表示される内容をソートしたいのですが、一般的な方法はあるのでしょうか?

ユーザーがデータを登録してJTreeに表示されるようにするのですが、今の知識で出来るのが
登録されるデータをリストにして、登録を行う際にリスト自体をソート→JTree再生成
なんですが、
JTree自体を簡単にソートする機能などはありますか?
2018/10/13(土) 21:42:43.90ID:iFv8AOW0d
switch文のcase部分で正規表現は使えない感じですかね
2018/10/13(土) 23:10:37.09ID:LdRaeBfZM
>>582
Javaにそんな気の利いた機能はない
584デフォルトの名無しさん (ワッチョイ 7b9f-pYQO [175.134.57.7])
垢版 |
2018/10/14(日) 00:49:24.63ID:rKkXAekW0
たとえあっても結局は if で一つづつ調べていくのと同じコードに展開されるだけだろうから見た目が分かりやすくなるという以上の意味はないと思う。
2018/10/14(日) 09:56:40.69ID:ROu9whYDd
なるほど、わかりました
2018/10/14(日) 10:13:31.10ID:r97sA0Aya
>>584
正規表現リテラルが言語に組み込まれているなら、コンパイラが頑張れば
1パスで全てのcaseの正規表現をテストするステートマシンを生成することは普通に可能でしょ
2018/10/14(日) 11:35:15.37ID:3YFeE/uw0
数値型とか文字列型だと排他性が保証されてる、
例えばその数値が0であれば、その数値は0以外のあらゆる数字ではない事は自明なわけだけど、
正規表現だと、ある正規表現にマッチする文字列が
他の正規表現にマッチしない事は必ずしも自明ではないから switch とは馴染まないんじゃないかね?
588デフォルトの名無しさん (アウアウカー Sab5-GU/K [182.251.240.6])
垢版 |
2018/10/15(月) 11:06:57.69ID:eGRIdNe6a
そう。上から順番にマッチするかを調べて行ってマッチした所から実行するというコードにしかできないので if で書いたのとほぼ同じにしかできない。
違いはbreakがなければ下に抜けるところぐらいかな。
2018/10/15(月) 20:02:25.84
ギンギラギンにさりげなくー♪
2018/10/16(火) 09:16:47.63ID:LIpnDMBF0
javaってクロスプラットフォームだからどのosでも実行できる!!
って言うけど他の言語も実行できるよね?
どこが違うの?
2018/10/16(火) 10:32:57.81ID:hibLU9vcd
コンパイルでできるファイルが各OS専用か、そうじゃないかみたいな感じじゃなかったっけ
2018/10/16(火) 10:38:15.43
javaをネガキャンするなー!
2018/10/16(火) 12:28:26.08ID:2ObsWyDna
それ20年前の売り文句だからな
当時としては多分プラットフォーム間の互換性で抜きん出てたんじゃないの、知らんけど
594デフォルトの名無しさん (ワッチョイ 13d2-7vHE [27.139.3.34])
垢版 |
2018/10/16(火) 12:59:45.83ID:iEAeFl+H0
>>590
他のは各OS用に再ビルドが要る
最近はC#もいける場合が多いが
バイナリ互換でGUIまでできるのは未だにJavaだけ
595デフォルトの名無しさん (アウアウカー Sab5-GU/K [182.251.240.40])
垢版 |
2018/10/16(火) 13:11:22.61ID:0QUQFWONa
仮想マシン上で動くからコンパイルしてバイナリを作ればそのバイナリを他のマシンの仮想マシン上で同じように動かせるということ。

ただし現実はOS毎の仮想マシンに違うバグがあったりして中々うまくいかなかったりする。

それとプログラム作る側も気を付けてないとうまく行かない事がある。例えばファイルのディレクトリの区切り文字がUNIX系OSとWindowsでは違うとかね。
そういう違いを考慮して作れるようにはなっているが考慮しないプログラムも作れるようになっている。
2018/10/17(水) 11:21:17.67ID:5AnSWZbJa
そもそもpythonだのRubyだのは各OSごとにコンパイルという概念がないから、
そこらへんが当たり前になった今ではいまいちピンとこないのも無理はない
2018/10/17(水) 12:08:39.22ID:TU0+elbq0
同じjavaでもバイトコードコンパイルしたバージョンが違うと呼び出し失敗するとかな
2018/10/17(水) 12:30:38.33ID:tHw/Qu/EM
>>594
それは間違い
JavaはJREが正式に廃止されたから、今月からはクライアントアプリについては
各プラットフォームに向けて個別にランタイムを同梱したパッケージをビルドする必要がある
599デフォルトの名無しさん (アウアウカー Sab5-GU/K [182.251.240.19])
垢版 |
2018/10/17(水) 12:46:57.34ID:8efdFbKLa
>>596
内部的には似たようなもんだよな。Perlも実行時に素早く中間コードにコンパイルしてから実行してるし。
600デフォルトの名無しさん (ワッチョイ b1e3-zuq5 [218.231.167.225])
垢版 |
2018/10/17(水) 16:58:25.10ID:8mlz8GGc0
$ ./Hage.java
Hello, ハゲ!
2018/10/18(木) 20:24:57.59
パイザのBランクになれました。
2018/10/18(木) 21:36:17.32ID:CSkK3ONp0
あー。あの問題解くやつか。そういやこの頃やってなくてすっかり忘れてたが今見たら俺もBだった。
トロフィー3つだって。
2018/10/18(木) 23:09:40.13ID:8EKXnxGLa
ほんの数日前にJavaの勉強を始めたものです
自宅PCでも環境を整えようとJDK11とかいうものを入れてからEclipseをインストールしたのですが動きません
上のレスを少し読んだところJREが廃止されたと聞きました(たしかに本の解説と違ってJDKインストール時にJRE云々がありませんでした)
学校もEclipseなので使えないと本当に困るのですが私はどうすればよいのでしょうか?
604デフォルトの名無しさん (ワッチョイ 82d2-CW5R [27.139.3.34])
垢版 |
2018/10/18(木) 23:26:55.18ID:r8wg0Ock0
>>603
本に書いてあるのか学校と同じバージョンでやればいい
2018/10/18(木) 23:54:35.05ID:8EKXnxGLa
>>604
ありがとうございます
学校は8だったのでとりあえず11アンインストールしてそのようにしたらなんとかなりました(アンインストールもレジストリのあれこれですぐには出来なくて苦労しましたが)

ググったら結構深刻な問題なんですね
とりあえず今はどうにかなりましたが今後が心配です
2018/10/19(金) 00:28:28.89ID:UgWipG/ea
Java8入れたなら今後重大な脆弱性が見つかってもパッチが提供されない可能性があるから、
今や存在そのものがセキュリティホールであるJavaアプレットは必ず無効にしておくこと
あと今月からは開発以外の用途で使ったら(Java製の5chブラウザとか)ライセンス違反だから注意ね
2018/10/19(金) 00:53:41.40ID:9Ye0KfSK0
paizaよりAtCoderの方がいいぞ
2018/10/19(金) 23:40:19.01ID:QtXhI67L0
あー。サウジの件は経済的にも影響があるからWBSでも報道することになったか。
2018/10/19(金) 23:40:43.25ID:QtXhI67L0
ごめん。誤爆。実況に書いてるつもりでここに書いちゃった。w
2018/10/20(土) 00:54:54.45
俺はお前を許す
611デフォルトの名無しさん (ワッチョイ 2e9f-Fc6z [121.111.15.11])
垢版 |
2018/10/20(土) 20:52:13.49ID:7w/MX7TC0
ブリッジパターンについてのこのヤフーブロはこのページからおもろいし、ためになるわ。
https://blogs.yahoo.co.jp/kamyu_2010/35442561.html
2018/10/20(土) 22:48:08.58ID:wp9EeO+Ya
Javaのデザインパターンの解説なんか腐るほどあるのによりによってなぜこんなバカっぽいのをチョイスしたのか
本人乙?
2018/10/21(日) 10:29:55.80ID:iKutjjfua
何このゴミ記事は
晒し上げのつもりなん?
2018/10/21(日) 12:40:49.44
不細工なコードしか書けない。
(涙)
2018/10/21(日) 14:07:53.47ID:2oCbSQP00
デザパタどころか継承も使ってないうちのシステム
共通化もなく同じコードを数百のソースにベタ書きしてるんだけど
目眩がするわ…
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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