Upgrade to Pro — share decks privately, control downloads, hide ads and more …

あなたのプロジェクトが気軽にJavaをバージョンアップするために必要なこと

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 あなたのプロジェクトが気軽にJavaをバージョンアップするために必要なこと

Avatar for Yu Watanabe

Yu Watanabe

March 07, 2015
Tweet

More Decks by Yu Watanabe

Other Decks in Technology

Transcript

  1. 自己紹介 •  渡辺   •  (株)ビズリーチ   •  @nabedge  

    •  h8p://mixer2.org   •  h8p://nabedge.blogspot.jp   2
  2. 質問 •  Java8ですか?   •  Java7?   •  Java6?  

    •  Java5?   •  まさかの古代言語? 3
  3. なぜ古いJavaを使い続けるのか? •  バージョンを上げて何かあったら嫌だから   – 何かあったときにもとの古いJDK/JREに戻すのが 面倒くさい   – テストをやりなおすコスト   • 

    「全てのサーバのJDKのバージョン上げて」と いうとインフラ担当者が嫌な顔をするから。   – とにかく上司を説得するのが面倒くさいから。   4
  4. •  「がんばってJava5,6,7  から  Java8にバージョン アップだ!」   – N年後   •  「もうJava11が出てるのにまだJava8使ってるの?」

      •  同じやり方でやれば行き着く先は同じ。   – 大切なのは「バージョンアップする」ことではなくて 「バージョンアップしやすくする」こと。 5
  5. JREとJDK •  「とりあえず全サーバにJDKが入っている」   のは何故?   – A:  大は小を兼ねるから。   – A:

     JDK/JREのインストールをインフラ担当者に任 せてしまうから。   – 実はこのあたりから「バージョンアップできない Java」が始まる   7
  6. public  stacc  void  main(String[]  args)  {    Tomcat  tomcat  =

     new  Tomcat();    tomcat.setPort(8080);    tomcat.addWebapp("/”,      new  File(“/var/webAppDir)        .getAbsolutePath());    tomcat.start();    tomcat.getServer().await();   } 21
  7. ビルド方法 1.  自作のアプリをjarに固めておく   2.  使用するフレームワークやライブラリのjarも 集めておく   例:mvn  dependency:copy-­‐dependencies

      3.  tar  zxf  jre-­‐”N”uXX-­‐linux-­‐x64.tar.gz     4.  cp  [1,2のjar群]  jreNuXX/lib/ext/   5.  jreNuXX/配下を再びzipかtarballに固める 22
  8. まとめ •  JDKとJREはちゃんと区別して考える。   •  全ての普通のjarに固める。   •  APサーバは組み込みで。  

    – tomcat-­‐embed,  je8y…   •  JREもろともリリースせよ。   – ライブラリのjarの差し替えと同じ間隔でJREも差し 替えられるように。   – 実は古来から存在する普通の技です。   25