ワーパパエンジニアの学び手帳

ワーパパエンジニアの業務外での学びとかガジェットネタとか

技術ブログの開設

業務外でやってる勉強とかの定着のためにも記録を付けていかないとなあとか、技術的な内容も分かりやすく文章化できるようにならんとなあとかいう思いから、勢いで作ってみました。

元々↓で育児ブログを書いてました(正確には、技術ブログも兼ねて色々書こうと思って始めつつも更新が止まり、息子の誕生とともに育児ブログに。。) us-key.hatenablog.com

こっちのブログで書こうとしてることは以下の通りです。

  1. 業務外で勉強した内容(主にプログラミングに関して)の記録、紹介
  2. ガジェットやアプリのレビュー等

自分がシステムエンジニアとして働く中でなかなか新しい技術に触れる機会などが減ってきているため、それを補うために勉強した内容を記録し、紹介するというのが主目的。 そしてガジェットやツールなど大好き人間なので、その辺の紹介を記事としていけたら。 多分読者層的には重なるのではないかなぁと思い、メインの技術勉強記録だけでなく後者も載せていこうと思います。

ついでに、ブログを書く際にマークダウン記法を使うことを通して書き方を覚えるのも目的としてます。 これはGitHubやQiitaでもマークダウンを使って書けるようになるためですね。

そんな感じで、ひとまずはえいやっと始めてみようと思います。

【Java】Eclipseで動いてたJavaのコードをJDKでコンパイルかけたらエラーとなったときの話

元ブログからの移行記事です。

いきなりJavaの話。

先日、とある理由からこれまでEclipseコンパイルしていたJavaのコードをJDKコンパイルしないといけないことになり、とりあえずantのbuild.xml等用意してコンパイルしてみた。

で、こんなエラーが発生。

『XXXXXX.java:1: エラー: \65279は不正な文字です』

・・・????

Eclipseコンパイルをかけても上記エラーは発生せず、何だこれは、と頭の中に『?』がぞろぞろと。

なぜEclipseだとエラーが出ないのか、という点については、Eclipseコンパイルする際にはEclipse独自のコンパイラを使用していることが要因。 www.hitachi.co.jp

どうもEclipse独自のコンパイラJDKよりもコンパイルエラーとする条件が緩い、らしい。。そのためにエラーが出ていたみたい。

Eclipseコンパイルしたコードの挙動で問題になったことは自分の経験ではないのですが、気持ち悪いですね。。

で、結局のところどうしたらJDKでのコンパイルエラーが解消できるのか、何故エラーになるのかが分からずしばし途方に暮れていたのですが。

こういう場合はエラーメッセージでググるっていう鉄則?を忘れておりました。ああ恥ずかしい。

ググってみたらまんま同じ事象が出てきましたよ。 monokurotamago.hatenablog.com

どうやら、

\65279 = UTF-8のBOM(Byte Order Mark)

であり、コンパイルエラーとなっていたソースコードにBOMが含まれていたことが原因のようです。

BOMを外すには、サクラエディタで対象のコードを開いて、「名前をつけて保存」でBOMのチェックを外して保存でOK(詳細は上記リンク参照)。

そもそもBOMってなんやねん。ということでさらに調べると、 dorafop.my.coocan.jp

詳細は上記リンクを見て頂くとして、『Javaソースをメモ帳で編集してUTF-8で保存すると、選択の余地なく勝手にBOMが付いてしま』うということらしい。

コンパイルエラーになってたコードが1本だけなので、ナゼこの1本だけメモ帳で編集したのよ…?というギモンはあるのですが、とりあえず原因は判明してよかった。