# Java

# 未整理
- Cannot convert value '0000-00-00' from column XXX to TIMESTAMP. の例外
    - http://bugs.mysql.com/bug.php?id=19274

# 関連ページ
$lsx(.)

# GCの仕組み、チューニング周りの参考ページ
- 以下のページがわかりやすかった
 1. JVMとGCのしくみ
        - http://d.hatena.ne.jp/ogin_s57/20120623/1340463194
 1. JVMのチューニング
        - http://d.hatena.ne.jp/ogin_s57/20120709/1341836704

# SSL証明書の登録方法
## 手動でやる
- 自己署名証明書を使っているサーバにJavaからアクセスする際は、以下の処理を実施する必要がある
1. SSLサーバに接続して、証明書を抜く
```sh
 openssl s_client -connect <host>:<port> > host.crt
 sed -i '' -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' host.crt
```
1. 証明書を登録
```sh
 keytool -import -trustcacerts -alias <alias> -file host.crt -keystore /usr/lib/jvm/java-7-oracle/jre/lib/security/cacerts
```
    - alias名はたぶんなんでもよい

## Javaプログラムを使う
- http://stackoverflow.com/questions/19561570/jenkins-git-plugin-with-https
    - http://web.archive.org/web/20080812163716/http:/blogs.sun.com/andreas/entry/no_more_unable_to_find にある InstallCert を使うと上記が簡単にできる
- やり方
```
sh
wget http://web.archive.org/web/20080812163716/http://blogs.sun.com/andreas/resource/InstallCert.java
javac InstallCert
java InstallCert <host>:<port>
sudo cp jssecacerts /usr/lib/jvm/java-7-oracle/jre/lib/security/
```

## 参考URL
- https://issues.jenkins-ci.org/browse/JENKINS-3810
- cacertsのデフォルトパスワードは「changeit」
    - http://blog.livedoor.jp/pokomakochan/archives/997376.html
    - http://stackoverflow.com/questions/8640340/java-keystore-password

# (Ubuntu) 古いバージョンの Oracle JDK をインストールする方法
最新バージョンの JDK は、[[webupd8 リポジトリ>https://launchpad.net/~nilarimogard/+archive/ubuntu/webupd8]] を使えばインストールできるが、
新しいバージョンがリリースされてしまうと、その手法が使えなくなるため、以下の手法を手でやる。
1. Oracle 公式から、linux binary を落としてくる
1. /usr/lib/jvm ディレクトリを作り、その中に解凍する
```
sudo mkdir -p /usr/lib/jvm
sudo tar zxvf jdk-XuXX-linux-x64.tar.gz -C /usr/lib/jvm
```
1. java, javac コマンドを update-alternatives コマンドでインストール
```
update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdkX.X.X_XX/bin/java 100
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdkX.X.X_XX/bin/javac 100
```
1. (既存で java, javac コマンドの alternatives が登録されている場合) リンクを貼り直してもらう
```
update-alternatives --auto java
update-alternatives --auto javac
```
1. java, javac コマンドを実行して確認
```
java -version
javac -version
```

## 参考URL
- http://askubuntu.com/questions/521145/how-to-install-oracle-java-on-ubuntu-14-04
- http://askubuntu.com/questions/536134/install-specific-java-version-for-12-04


---

## Page Navigation

- Canonical URL: https://tips.weseek.co.jp/Tips/Java
- Permalink: https://tips.weseek.co.jp/5fb74daba1ba4200489a4ba8
- Parent: [Tips](/5e44f1546857420048c06de8.md)
- Children: 2 total
  - [Code Convention](/5fb74dd6a1ba4200489a4bb3.md)
  - [Javadoc](/5fb74df1a1ba4200489a4bbc.md)
- Total descendants: 2
- Siblings: 49 of 71 total (22 more not shown; see the page list API below for the full listing)
  - [Admin.js](/6505e03558d21abbb3ac8575.md)
  - [Agile](/5fb747a7a1ba4200489a4a89.md)
  - [Amazon Web Services(AWS)](/5fb748c9a1ba4200489a4acc.md)
  - [Angular](/65069da24603e7ff39a6b3d6.md)
  - [Ansible](/6505dfaa58d21abbb3ac837d.md)
  - [Apache2](/65069da24603e7ff39a6b3d5.md)
  - [Base64と仲良くなる](/5e9309f511007300489677f8.md)
  - [BuildKitによりDockerとDocker Composeで外部キャッシュを使った効率的なビルドをする方法](/5e67aea878bd2f0048680af1.md)
  - [CSS](/5fb74873a1ba4200489a4abb.md)
  - [Cocos-creator](/5fb74b6aa1ba4200489a4b2e.md)
  - [GROWI開発の知見でLINE_bot作ってみた](/5fd1d3fa0899d80049ff9a1c.md)
  - [Git](/5fb748dfa1ba4200489a4ad7.md)
  - [Grails](/65069da24603e7ff39a6b3f0.md)
  - [Hyperledger fabric](/5fcb12a2550066004845743c.md)
  - [JavaScript](/5fb74e7aa1ba4200489a4bd1.md)
  - [Jenkins](/5fb74feba1ba4200489a4c17.md)
  - [KVM](/5fbdbc17daa51800482d2227.md)
  - [Keycloak](/5fbdbffcdaa51800482d22b3.md)
  - [Kubernetes](/600522a79662740048b34bb5.md)
  - [Let's Encrypt](/65069da24603e7ff39a6b3d8.md)
  - [Linux](/5fc0ae238b05ce0048ff5a31.md)
  - [MongoDB](/5fc0af488b05ce0048ff5a6b.md)
  - [Mutagen](/6505de1458d21abbb3ac7ecd.md)
  - [Node.js](/60a62549a0d804004912d94b.md)
  - [OpenLDAP](/5fcda4862553a0004852b0dd.md)
  - [Prometheus](/5fc0b3058b05ce0048ff5af6.md)
  - [Python](/5fc0b3218b05ce0048ff5b00.md)
  - [RaspberryPiとArduinoで作る360度回転リモートワークカメラ](/5fccce3e3a4fec004844a01b.md)
  - [RaspberryPiとArduinoで作る360度回転リモートワークカメラ_ソフトウェア構築編](/5fdab8ad04dc4f00483b8d20.md)
  - [RaspberryPiとArduinoで作る360度回転リモートワークカメラ_ハードウェア製作編](/5fd7972a5fc9220048844c35.md)
  - [Redmine](/5fcd9bdd2553a0004852b012.md)
  - [Ruby](/5fc0b2588b05ce0048ff5ada.md)
  - [Single Sign On(SSO)](/5e97bf6876311900487c3c55.md)
  - [Slack](/5fc0ae7b8b05ce0048ff5a45.md)
  - [SourceTree](/5fc0ae0c8b05ce0048ff5a2b.md)
  - [StackStorm(st2)](/65069da24603e7ff39a6b3da.md)
  - [Stripe](/5fc0aff58b05ce0048ff5a8d.md)
  - [Tomcat](/5fcda2772553a0004852b0ac.md)
  - [Turborepo](/6505dee958d21abbb3ac80cf.md)
  - [TypeScript](/5fc0a7ac8b05ce0048ff58f4.md)
  - [URLでベーシック認証を突破](/5fc0b2d98b05ce0048ff5af2.md)
  - [Unity](/5fc0ace98b05ce0048ff59f5.md)
  - [VSCode](/5e9b270093fd090048cc8acb.md)
  - [WSL2](/65069da24603e7ff39a6b403.md)
  - [Wordpress](/5fc0af488b05ce0048ff5a6d.md)
  - [XSS](/5fbe723e36ac6300497c2194.md)
  - [brigade](/600523119662740048b34be0.md)
  - [cert-manager](/65069da24603e7ff39a6b3f9.md)
  - [devcontainer](/5fd54b8eedce4f00482fa36d.md)
- Last updated: 2020-11-20T05:01:31.756Z by takuya
- Full page listing (all children regardless of count): https://tips.weseek.co.jp/_api/v3/page-listing/children?id=5fb74daba1ba4200489a4ba8
