ラベル Java の投稿を表示しています。 すべての投稿を表示
ラベル Java の投稿を表示しています。 すべての投稿を表示

2018/05/27

Oracle Java SE 8 JDK を CLI で Install する

さて、Java を CLI でインストールしたい時があります。
例えば Docker の Image を作る時などですね。 Dockerfile に書きたい。
OpenJDK ならば yum や apt-get で Install できるのですが、Oracle の JDK だとそうはいかない。
なので、作業ログを残しておこうかと思います。


環境

  • macOS Sierra: 10.12.6
  • Docker for mac: version 18.03.0-ce, build 0520e24
  • Base Image: ubuntu:16.04
  • Oracle JDK: 1.8(build 1.8.0_161-b12)


ppa:webupd8team repository

Oracle JDK を公式のサイトから落っことしてきても良いのですが、zip と rpm しか無い。
Ubuntu の dpkg で install したいので deb ファイルが欲しい。
どうも調べてみると、 apt の追加 repository にあるらしい。

ので追加して Install してみる。
  • apt-get install -y software-properties-common # install apt-add-repository command 
  • apt-add-repository -y ppa:webupd8team/java
  • apt-get update
  • apt-get install -y oracle-java8-installer
License に同意するか聞かれるので yes 。そうしたら Install される。


License Agreement with debconf

License に同意する部分には stdin に yes と入れたら済むだろう、ということでやってみる。
  • yes yes | apt-get install -y oracle-java8-installer
ところが上手くいかない。
apt-get が license を表示するやつ(自前かlessか?)に stdin を渡していないっぽい。

ということで調べてみたらやっぱり解決策がある。
debconf で License を読んだことと、同意したことを事前に登録すればOKとのこと。
  • echo debconf shared/accepted-oracle-license-v1-1 select true | debconf-set-selections
  • echo debconf shared/accepted-oracle-license-v1-1 seen true | debconf-set-selections
  • apt-get install -y oracle-java8-installer
これで yes を入力しなくても Java が Install できる。良し良し。


参考

2017/10/30

Mercurial Repository を Git Repository に変換する

Findy という転職サイトが GitHub の public repository からスキル偏差値なるものを算出してくれます。
一度登録してみると、スキル偏差値はプレミアム本会員になるギリギリの60でした。
実際どのくらいなのだろう60。定量的な値になってると良いのだけれど。

さて、 GitHub には大学とは関係ない個人のプロダクトとかを載せていました。
大学での課題やプロダクトは大学の Mercurial Repository に残しています。
ですが、この際 GitHub にも載せることにしました。
単にスキル偏差値を上げたいだけとも言う。
単に bitbucket に上げても良いのだけれどそれだと Findy に拾って貰えないので。


環境構築

Mercurial から Git への変換は fast-export を使います。
  • $ git clone https://github.com/frej/fast-export
こいつは python を内部で使ってるのでその調整も必要です。
  • $ easy_install mercurial
とかかな。
私は python2 を brew で明示的に入れてるので
  • $ vim fast-export/hg-fast-export.sh
    • python -> python2
  • $ pip2 install mercurial
とか。実行時にエラーが出なければOKだと思います。


自分だけが Author の Mercurial Repository の変換

fast-export のセットアップが終わったら、変換します。
  • $ mkdir git_repo
  • $ cd git_repo
  • $ git init
  • $ ../fast-export/hg-fast-export.sh -r /path/to/hg_repo
これで Mercurial の Repository を元に git に commit しまくってくれます。
きちんと時刻とかも残るので便利。


Author Information が気に入らない場合

私は大学時代の時は大学のメールアドレスで commit していたので、GitHub にはアイコンが無い。
これはちょっ悲しいので Author の情報を変更する。
具体的には username と email ですね。変更するには
とかすると良い。長いけれど1コマンドです。
これは他人の commit も変更できちゃうので完全に悪用厳禁ですね。


他の人も commit している repository の変換

最初にやることは変わらずに変換。
  • $ ../fast-export/hg-fast-export.sh -r /path/to/hg_repo
んで、 Author を変更する時に発行するコマンドを変えます。
if 文で自分の変えたい username+email を指定してあげています。

これで指定したものだけが変更されます。便利。
こっちも長いけれど1コマンドですね。
これで他人の成果をきちんと残したまま、自分の気に入らないメールアドレスを書き換えられます。
やっぱり悪用厳禁なコマンドなので注意。


fast-export で変換した Repository List

どうせなので公開できる成果物のリストを残しておきます。
この成果物が誰かの参考になれば幸いです。


オチ

この後 Findy で GitHub 再連携をしたところ、算出方法が変わったようで51に下がりました。かなしい。


環境

  • OS: macOS 10.12.6
  • fast-export (cc8fefe0083bc38c781341a86a1779dc5941f6e2)
  • python: 2.7.10
    • pip: 9.0.1
    • mercurial: 4.3.3
  • Mercurial: 4.3.3
  • Git: 2.14.3


参考

2012/12/31

mac な eclipse で jdk の中にある jar を classpath に追加する

環境 : Mac OS X Mountain Lion, Eclipse Juno (4.2.1)

Eclipse で jdk の中に入ってる jar を classpath に追加しようとして

Project 右クリック -> Propaties -> java build path -> Add External JARs

をしたのは良いけれど、選択方法がFinderな感じで
  /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/jre/lib/jfxrt.jar
とかを指定したいのに
  /Library/Java/JavaVirtualMachines
の *.jdk とかしか指定できない。

jdk を右クリックしてもQuickLookしかできなくてどーしようもない感じ。

なので プロジェクトの下の .classpath を直接編集して
    <classpathentry kind="lib" path="/Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/jre/lib/jfxrt.jar"/>
とか追加したら大丈夫だった。

.classpathの例はこんな感じ。

2012/12/28

Mac な jdk 7u10 で javafx なアプリをコマンドラインからコンパイルする

javafx を使っているアプリを javac なりでコンパイルしたかったのだけれど、javac *.java だと怒られた。

ググるとjavafxc なるコマンドがあるらしいけれど not found。
javafx SDK を入れたらどうにかなるかな、と思ったけれど javafx SDK は jdk7 から標準で付いてくるみたい。
jdk7u10入れてるけれど javafxc が無い様子なので困っていたけれど
JavaFX 2.0 Developer Preview SDK for Mac OS X - Onto JavaFX
によるとjavafxなライブラリはjarになってる様子。

2012/12/28 時点での最新 のjdk7 は u10 なので .zshrc に

export CLASSPATH= ${CLASSPATH}:/Library/Java/JavaVirtualMachines/jdk1.7.0_10.jd/Contents/Home/jre/lib/jfxrt.jar

を書いたら javac からの java で動いた。
一応環境は jdk 7u10 な java 1.7.0_10 で Mac OS X Mountain Lion さん。

動かしてみたのはこれ。
いろふさん絵描き歌 by JavaFX - JavaFX in the Box
いろふさんとは一体何物なのだろうかとか思いつつ。

ちなみに javafx アドベントカレンダーあるみたいです。
JavaFX Advent Calendar 2012 : ATND
ごんごさんが Musclide なる muscle base slideshow system を書いてました。
javafxな参考のために Musclide.java と Ring.java をちょっと読んだけれどコメントが秀逸感。

追記 : 
jdkのバージョンが決め打ちなのはなんかアレなので
export CLASSPATH=${CLASSPATH}:`/usr/libexec/java_home`/jre/lib/jfxrt.jar
くらいに。とはいっても /usr/libexec/java_home が無い環境だとまた微妙そうだけれど……

2012/11/06

Maven でエンコーディングを指定する

Maven を使っていてエンコーディングを指定しないと

$ mvn compile

の時に

[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!

とか出るので、エンコーディングを指定する方法。


こことかを参考に、

<project>
  ...
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  ...
</project>
 を pom.xml に追加すればOK。

一応 pom.xml の例はこんな感じ。