Abstract#
I love JAVA. I would like to accumulate my experiences related to JAVA programming here.Keywords#
technologyWhat's new!?#
- Javaの有償化について2018年4月頃から追加
Topic#
インストール#
入手先として2018年7月にJAVAのSDKが欲しくてGoogleに聞くと、今までOracleに行っていたのが、Redhatになってる[2]。。。仕方なくRedhatにユーザ登録して入手。 |
いつまでたっても環境変数のJAVA_HOMEとPATHの設定は忘れずに。 |
いったいいつまでサポートされるのか#
セキュリティに穴があったらふさいでほしい。そういったサポートが続くのはいつまでなのか。version | EOL | source |
8 | ||
11 |
Javaの有償化#
Javaの有償化2018年3月頃、Webをみていると結構話題になっているっぽいですね。どういった影響があるのか。調べてみます。 |
JDK8->JDK11#
そろそろJDK8だとつらくなってきた2020年8月の今日この頃。Visual Studio Codeが11にしろってうるさい。JDKとしてはこの時点で14まででている[3]。CentOS調べてると、この時点で11までyumでアップデートできそう。つまり12,13,14はまだ。どうも2024年10月までは、サポート続きそう[4]。 |
tomcat 動くかな。7 or laterって本家には書いてある[5]。注意はしないとね[6]。Tomcat9のJavaのバージョンは8 or Later。 |
JSPWiki動くかな。なんと2.11.0.M7はTomcat9だ。。。やるか。。[7] |
Jersey動くかな。Tomcat9で。 |
MavenでのPomの書き方 |
ソース管理#
さて、最近簡単なAndroidアプリを開発してみました。そこで、最近話題のGitHubで公開しました。昔はCVSとかSubversionとかでしたが、時代の流れは、早いですね。。 |
公開#
さらに、そのAndroidアプリをGoogle Playで公開しました。うーん、簡単でした。25ドル必要です。 |
Maven#
異論はあるかもしれませんが、自分の理解としては、Java用のantやmakeといったコンパイル作業を助けてくれるための便利なツールだと思っています。 |
JavaでXMLを扱う#
JerseyでRESTなWEBサービスをXMLを受ける時に、Jaxbを使いました。とにかくXSDを作ることが重要。あとは、EclipseのWTPプラグインで、いけます。xsdファイルを選択して、右クリックして、「generate」を選択し、Jaxb classesを選ぶと、Parserができます。 |
日付系#
- 今日の日付を自由なフォーマットの文字列で表示する⇒Calendar.getInstance().getTime(), java_SimpleDateFormat
- 日付の文字列をDateオブジェクトに変換する。
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH); tweetCreatedTimeStr = "Sun Jul 08 02:26:28 +0000 2018"; tweetCreatedTime = sdf.parse(tweetCreatedTimeStr);
SimpleDateFormatオブジェクトを生成するときに、Localeを設定することが重要です。それをやらずにAt Offset指定のないParseExceptionが出まくりました。helped by [1] |
その他使い方#
- ディレクトリを作る⇒new File("foldername").mkdir()
- コンパイルするjavacと実行するjavaのバージョンをあわせることがわりと大事
- Java Client side Programing
- Javadoc
ドキュメンテーションは重要です。→書き方の参考となるページ |
例外への対処#
- java.lang.UnsupportedClassVersionError
コンパイルするときのJavaのバージョンにきをつけましょう。 |
- Java.io.FileNotFoundException:
C:\XXXXXXXXXXXXXXXXXXXXXX (指定されたファイルが見つかりません。)と出たときは、ファイルオブジェクトを生成するときのファイルへの相対パスの指定の仕方を疑いましょう。 |
Reference#
- [#1]RUDI, 2010, SimpleDateFormatでEEEやMMMがparseできない, http://d.hatena.ne.jp/rudi/20101201/1291214680
- [#2]Redhat, OpenJDK, https://developers.redhat.com/products/openjdk/
- [#3]Oracle, 2020, Open JDK, https://openjdk.java.net/
- [#4]Redhat, 2020年5月17日, OpenJDK のライフサイクルおよびサポートポリシー, https://access.redhat.com/ja/articles/1457743
- [#5]The Apache Software Foundation, 2020年8月5日アクセス, Apache Tomcat Versions, http://tomcat.apache.org/whichversion.html
- [#6]@Targityen, 2018年10月15日, OpenJDK 11へ変更後にApacheTomcat 8が起動しなくなる件の解決方法https://qiita.com/Targityen/items/a78b8f2eeaa155eb4bb1
- [#7] The Apache Software Foundation, 2020年5月28日, NewIn2.11, https://jspwiki-wiki.apache.org/Wiki.jsp?page=NewIn2.11