山崎屋の技術メモ

IT業界で働く中でテクノロジーを愛するSIerのシステムエンジニア👨‍💻 | AndroidとWebアプリの二刀流🧙‍♂️ | コードの裏にあるストーリーを綴るブログ執筆者✍️ | 日々進化するデジタル世界で学び続ける探究者🚀 | #TechLover #CodeArtisan、気になること、メモしておきたいことを書いていきます。

JDK1.7u17では引数の円マーク(¥)が消える!?

と思ったら、バグのようで、JDK1.7u21では、直っていました。

どういう現象化かというと、

public class Main {
	public static void main(String[] args) {
		for (String s : args) {
			System.out.println(s);
		}
	}
}

この場合に、引数に「C:\aaa\bbb\ D:\ccc\eee\」を渡し実行すると、出力が、

C:\aaa\bbb
D:\ccc\eee\

に、なってしまいます。「C:\aaa\bbb\」ではなく「C:\aaa\bbb」と、最後の\マーク(環境によって円マークもしくは、バックスラッシュのどちらか)が取れてしまいます。不思議と最後の引数の\マークは正しく出力されます。

今日時点での最新のJDK1.7u21では直っていました。

どのJDKからこのバグが含まれていたのかは、わかりません。

試したこと。
・JDK1.6u32・・・発生しない
・JDK1.7u02・・・発生しない
・JDK1.7u17・・・発生する
・JDK1.7u21・・・発生しない

以上。

即戦力にならないといけない人のためのJava入門(Java 8対応) エンタープライズシステム開発ファーストステップガイド (CodeZine BOOKS)

即戦力にならないといけない人のためのJava入門(Java 8対応) エンタープライズシステム開発ファーストステップガイド (CodeZine BOOKS)

やさしいJava 第5版 (「やさしい」シリーズ)

やさしいJava 第5版 (「やさしい」シリーズ)