Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

JDK9では文字列の連結にinvokedynamicが使われることになりそうだ

JEPにあり、JDK9のターゲットになっている。 JEP 280: Indify String Concatenation Change the static String-concatenation bytecode sequence generated by javac to use invokedynamic calls to JDK library functions. This will enable future optimiz…

1/30(土)ScalaMatsuri 2016でスピーカーします

ScalaMatsuri 2016でスピーカーします。1/30(土)14:30 - 14:45です。部屋は、国際交流会議場 (400席; 通訳付き)でして、すごい部屋を割り当てていただいています。 scalamatsuri.org タイトルは「ScalaコードはJVMでどのように表現されているのか」です。お…

Uber JARとは

とある資料を読ませていただいていて、「Uber JAR」なる単語が。 java -jar hoge.jarでアプリケーションを起動するタイプのものを指すのは理解できたのですが、 Uberって?っと思い検索してみました。 stackoverflow.com Über is the German word for above …

ScalaのHelloWorldをjavapしてみた

クラスファイルはすべからくjavapしよう - Fight the Futurejyukutyo.hatenablog.com ということを言ったので、Scalaのコードもjavapしようと思いました。 もちろんscalacしてからjavapしてもよいのですが、ScalaはなんとREPLからjavapできると知りました。 …

クラスファイルはすべからくjavapしよう

public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } } javac HelloWorld.javaしてクラスファイルを生成します。さっそくjavap HelloWorldしましょう。javapコマンドはOpenJDK系(OpenJDKやHotSpot、…

try-with-resources 文のclose順序

超いまさらですが、JDK7で導入されたtry-with-resources文のclose順序です。 public class TryWithResources { public static void main(String[] args) { try (Resource r1 = new Resource("Resouce 1"); Resource r2 = new Resource("Resouce 2");) { // …

JavaOneステッカーとDukeポストイット

Java Magazine Vol.21を読んでJava 20周年記念のステッカー(非売品)をもらおう! - Fight the Futurejyukutyo.hatenablog.com いただきました!

JPAでエンティティ以外のクラスにクエリの結果をマッピングする in Hibernate

JPAでそもそもそういう使い方するなよってことかもしれませんが。 ネイティブクエリを発行してその結果をエンティティ以外のクラスのインスタンスにマッピングしたいことがあるとします。 JPAの実装にHibernateを使っているときは、以下のコードで実現できま…

TomcatとGlassFishで動作が違った

ServletContext#getRealPath(String)がTomcat 6,8ではnullではなかったけれど、GlassFish 4ではnullを返しました。 This method returns null if the servlet container cannot translate the virtual path to a real path for any reason (such as when the…

Gitのホスティングサイトを変更するコマンド

GitHubからBitBucketに移すとか、ホスティングサイトを変更したいとき。 --mirrorオプションを使うと楽でした。 $ git clone --mirror http://example.com/hoge.git $ cd hoge.git $ git push --mirror https://github.com/jyukutyo/hoge.git 最初ローカルで…

Java Magazine Vol.21を読んでJava 20周年記念のステッカー(非売品)をもらおう!

Java Magazine Vol.20 「パフォーマンス特集」/Java Day Tokyo 動画・資料公開ほか【Java Developer Newsletter Japan】 Java Magazine Vol.21を読んでいただいたご感想をお寄せ下さい。 お寄せいただいた方には、Java 20周年記念のステッカー(非売品)を3枚セ…

JDK1.6だと出るけど1.7だと出ないエラー

Jenkinsのサーバを移行したところ、古いプロジェクトのユニットテスト実行時に出るようになった。 java.lang.NoClassDefFoundError: Could not initialize class javax.crypto.SunJCE_b at javax.crypto.Cipher.getInstance(DashoA13*..) SunJCE_bはjce.jar…

Jenkinsが死亡しました

死亡なんて出るんですね。ジョブ実行中にJENKINS_HOMEを削除したらこうなりました。死亡したらリンクをクリックして再度利用できるようにしないと、何も実行できないスレッドとなります。

Codehausはサービス終了しています

GroovyとかMaven関連でホスティングしていたCodehausですが、サービス終了していたんですね。 All Codehaus services have now been terminated. With increasing diversity in opensource hosting platforms like Github and Bitbucket - who are meeting t…

JavaのリリースにはCPUとPSUの2種類があります

Java™ SE Development Kit 8, Update 51 (JDK 8u51)がリリースされましたね。 僕もダウンロードしました。 さて、このJDK 8u51は「CPU」なリリースです。 実は、JavaのUpdateには2種類あります。1つは「CPU」、もう1つは「PSU」です。 CPUは「Critical Patch…