フリーランス チャレンジ!!

フリーランス チャレンジ!!

週休4日制に俺はなる!

なぜ歩きスマホしている人にワザとぶつかるんだろう?

f:id:ksakae1216:20170817233551j:plain

どうもコウタロウです。

 

今日はタイトルについて。

 

 

先日の出来事

先日、1日2回も衝撃的な事件を目撃!

 

最初の事件

地元の駅前歩いていたら、若い女性がスマホ見ながら歩いてたんです。

歩きスマホです。

 

そしたら向かいから50代くらいのオジサンが歩いてきて、そのままだったらぶつかりそうだったんですよ。

 

若い女性は前を見てなかったんで、当然(?)オジサンがちょっと横に避けるのかと思いきや、あきらかにぶつかるのがわかるのにそのまま突進。

 

案の定、肩が結構強めにぶつかって女性がよろけて、その後オジサンにあやまってる風に見えた。

 

でも、オジサンはすごく不機嫌そうにその女性を見ずに、そのままスタスタ。

 

あれ、ぶつかるのがわかっててオジサンは何で怒ってるのかな?

ちょっと意味不明。。。

 

歩きスマホは危ないな〜と思いながらブックオフへ。

 

次の事件

ブックオフで本を買って、家に帰ろうとバス停まで歩いてたんだけど、今度は40代くらいの女性が歩きスマホをしてる!!

※正確にはスマホではなく、ガラケーでしたが。

 

ちょっと嫌な予感してたんだけど、案の定、その女性の前方に、60代くらいのおじいちゃんが。

 

「まさか、やめろよ、やめろよ」と思ってたんだけど。。。

 

やっぱり、60代のおじいちゃんも前を見て、あきらかにぶつかりそうなのにそのまま40代女性に向かって前進!

 

またまた、肩がぶつかって今度は、女性とおじいちゃんが睨み合ってました。

どっちもどっちだけど、危ないですよね〜。

 

逆にぶつかって相手のスマホが壊れたら?

帰りバスに乗りながらふと思ったんだけど、もし、わざとぶつかって相手がスマホを落として画面が割れたりしたら誰が悪いんだろう?

 

わざとぶつかったのは証明できないかもしれないけど、歩きスマホしてる人が100%悪いのかな?

 

歩きスマホしている方が悪いかもしれないけど、ぶつかった方も、もしかしたら一部修理の代金を払わなきゃいけないことなんてないのかな?

 

もしかしてぶつかった時にスマホは壊れないかもしれないけど、相手が転んでケガしたら大変ですよね。

スマホの修理代金の一部なんかと比較になりません。

 

結論

歩きスマホをしている人はよくないけど、わざとぶつかるのも良くない。

 

もし、歩きスマホしている人が憎くて、街にいたらわざとぶつかってやろうって人がいたらぜひこのブログを読んで欲しいな。

 

わざとぶつかって、相手のスマホが壊れるか、相手がケガする可能性があるから。

 

いくら歩きスマホをしている人が憎くてもわざとぶつかってもいいこと無い!!

そう思えばわざとぶつからないですよね!!

【Amazonプライム】弁護士ドラマのSUITS(スーツ)、スカッとする展開で見逃せない

f:id:ksakae1216:20170808193550j:plain

どうもコウタロウです。

 

今日はタイトルについて。

 

 

SUITSとは

弁護士ドラマです。

 

主人公がひょんなことから弁護士になって活躍するという物語!!

※「ひょんなこと」って言い回しが古いですね。

 

主人公は記憶力が抜群に良いという特技があり、この特技を生かして弁護士事務所で苦労しながらも懸命に働きます。

 

タイトルにもある通り、スーツの着こなしもびしっと決まっており、見た目が華やかなのも特徴です。

 

まあ、とにかく見て下さい!!

まあ、何かドラマ見たいな〜って人でAmazonプライムに入ってればぜひ見て下さい!!

 

裁判で戦う相手や、嫌な上司を相手に最初は苦戦するんだけど、最後はガツッと勝ってくれるところが醍醐味です!!

 

私は日本のドラマも見るんですけど、海外ドラマも好きなんですね。

中でもウォーキングデッドはオススメです!!

www.ksakae1216.com

 

思うんですけど、海外ドラマ最強です!!

 

時間作って、ちょくちょく見ます!

 

ちなみに現在シーズン1からシーズン5まで見れます!!

【Mybatis】Mapper XMLファイルのAnd(&&)、 Or(||)条件記載方法

 

f:id:ksakae1216:20170808102019j:plain

どうもコウタロウです。

 

今日はタイトルについて。

 

 

Mapper XMLファイル

SQLをXMLファイルに記載することができるMybatis。

 

使うまでは正直、XMLファイルにSQLを書くと、ソース(Java)とXMLファイルと見る箇所が増えるのでいい印象を持っていなかったんですけど、使ってみるとすごく便利!!

 

ライブラリを使うことにより、余計な調査時間(コスト)がかかることもありますが全体的にみると確実に製造コストは下がると思います。

 

さて、XMLファイルにSQLを記載する際、条件分岐させたいときがあります。

Mybatisはちゃんとその辺もできますよ!!

 

And(&&)条件

And条件はアンド(&)と記載するのではなく、アルファベットで"and"と記載します。

※ソースの9行目

gistb99d383b8911ad85ec6820247e7edb21

 

Or(||)条件

こちらのOr条件もAnd条件と一緒。

パイプ(|)を記載するのではなく、アルファベットで"or"と記載します。

※ソースの9行目

gist921649464ca5c55c6d55a0403f3e28b4

 

【SQL Server】Management StudioでテーブルのデータをInsert文として出力する方法

 f:id:ksakae1216:20170801172156j:plain

どうもコウタロウです。

 

今日はタイトルについて。

 

テーブルのデータをInsert文として出力したい

現在の案件でSQL Serverを使っていて普段、テーブルのデータなんかは、eclipseのDBViewerプラグインを使ってDBのデータを変更したりしています。

 

ローカルの開発環境はそれでいいんだけど、お客さんの本番環境に繋がるPCは開発環境とは別で専用PC(通称、運用端末)を割り当てられてその専用PCで作業します。

 

運用端末だとインストールできるツールが厳しく制限されたりするのでeclipseなんかもインストールできなかったります。(実際、私の現場はそうです)

 

大抵、ベンダーが出しているツール(オラクルだと「SQL Developer」、SQL Serverだと「SQL Server Management Studio」)ならインストールできます。

 

みんなはどうかな?

私が今までいた現場ではこの手のツールを積極的に使っている人って全然いないんですよね。

 

なので、ちょっとしたことをするにもネットで調べながらなのでツールの機能を積極的に使うこともありません。

 

さて、前置きが長くなりましたが先日

「本番環境のXXテーブルのデータを検証環境にInsertしたい」

との作業がありました。

 

本番環境で起こっている問題を検証環境で再現させて調査するためにデータを検証環境に移したいとのこと。

 

 

解決方法

一部のデータを引っこ抜くのって方法があるのかな?と思ったら下記サイトに解決方法がのってました。

テーブルに保存されているデータを使って SQL の INSERT 文を生成する簡単な方法(SQL Server 限定) - present

 

このサイトにのっている方法で、テーブルのデータをInsert文に変換してくれてさらにファイル出力やクリップボード出力してくれます。

 

後は、ファイルかクリップボードに出力された情報をエディタで開き、必要な情報のみgrepしてコピーし、無事検証環境にInsertすることができました。

みずほ銀行のシステムが2018年秋に切り替えるとのニュースが・・・ でも人を募集してる?!

どうもコウタロウです。

 

今日はタイトルについて。

 

 

胸躍るニュース!!

きた!

きましたよ!!

itpro.nikkeibp.co.jp

 

itpro.nikkeibp.co.jp

 

ついにこの日が来ました!!

私のブログでも数々記事にさせてもらいました。

www.ksakae1216.com

 

www.ksakae1216.com

 

www.ksakae1216.com

 

ようやくですね

☆-(ノ゚Д゚)八(゚Д゚ )ノイエーイ

 

でも人を募集している?!

うれしいニュースの反面。。。

blog.livedoor.jp

 

あれ?

あれれ??

 

普通、今いるメンバーで使える人だけ、残してそのままシステム切り替えまでやるのが普通ですけど。

 

大きいシステムは違うのかな?

 

それとも辞める人数も多いから、募集しないと2018年には人がいなくなっちゃうのかな?

(;´Д`)

 

最後に

いや〜、来年秋が楽しみ!!

 

何事もなく、切り替えれればいいですね!!

Google検索結果の「ハッキングされているサイト」は見ないほうがいい理由

f:id:ksakae1216:20170725234556j:plain

 どうもコウタロウです。

 

今日はタイトルについて。

 

 

Google検索結果にハッキングされているサイトが表示された

JavaScriptのtablesorterについて調べたかったので、Google検索してみると。。。

f:id:ksakae1216:20170723230712j:plain

 

おっ、何だコレ?

めちゃめちゃ怪しい。

 

しかも、検索結果1位がコレ??

 

長年Google検索してるけど初めて見たかも?!

 

そもそもハッキングされたサイトとは?

 ハッキングされたサイトとは何か?

 

Google検索結果の「このサイトは第三者によってハッキングされている可能性があります。」リンクをクリックすると下記のページが表示されます。

f:id:ksakae1216:20170725074841j:plain

 

つまり、誰かのブログやサイトに対して悪意のある人がウィルス(スパム、不正なソフトウェア)のあるページへ移動するよう攻撃をしかけています。

 

なので、このページを見た瞬間にウィルスに感染、又はウィルスをダウンロードするようなページに勝手に移動してしまうんです。 

 

ハッキングされたサイトは見てもいいのか?

当然、見ないほうがいいです!!

 

但し、Googleのメッセージにもある通り、「ハッキングされている可能性があります。」とのことなので 絶対に危険だということではありません。

 

まあ、Googleもアクセスしないことを勧めているので危険かもしれないページをわざわざ見ないほうがいいでしょう。

f:id:ksakae1216:20170725075449j:plain

 

大丈夫かもと思い、そのサイトを見たがために、ウィルスに感染したら大変ですもんね。 

 

もし自分のブログなどがハッキングされたら

Googleによると

f:id:ksakae1216:20170725075737j:plain

 

う〜ん、よくわかんないですね。

ハッキングの原因となっているセキュリティの問題を修正します。

セキュリティの問題って簡単に修正出来るんですかね?

 

もし、私のブログがハッキングされたら、このヘルプに従って対応してみます。 

 

最後に

最近は、サイトを見るだけでウィルスに感染するケースもあるようです。

 

わざわざ自分から、「ハッキングされているサイト」を見るようなことはしないようにして下さい。

 

【解決方法】SQL Serverデフォルト設定(READ COMMITTED SNAPSHOT OFF)だと同時接続でロック待ちが発生します

f:id:ksakae1216:20170716125112j:plain

 

どうもコウタロウです。

 

今日はタイトルについて。

 

※2017年7月18日更新

 すいません。ロック待ちが我々の環境では解決できませんでした。

 我々の環境だけなのかわからないので記事はとりあえずそのままとします。

 引き続き調査し、解決すればまた記事を更新します。

 

 

 

トランザクション分離レベル

まず今回の記事の前にトランザクション分離レベルの説明が必要ですね。

 

トランザクション分離レベルはWikipediaによると下記のとおりです。

  • SERIALIZABLE ( 直列化可能 )
複数の並行に動作するトランザクションそれぞれの結果が、いかなる場合でも、それらのトランザクションを時間的重なりなく逐次実行した場合と同じ結果となる.このような性質を直列化可能性(Serializability)と呼ぶ.SERIALIZABLEは最も強い分離レベルであり、最も安全にデータを操作できるが、相対的に性能は低い。ただし同じ結果とされる逐次実行の順はトランザクション処理のレベルでは保証されない。
  • REPEATABLE READ ( 読み取り対象のデータを常に読み取る )
ひとつのトランザクションが実行中の間、読み取り対象のデータが途中で他のトランザクションによって変更される心配はない。同じトランザクション中では同じデータは何度読み取りしても毎回同じ値を読むことができる。
ただし ファントム・リード(Phantom Read) と呼ばれる現象が発生する可能性がある。ファントム・リードでは、並行して動作する他のトランザクションが追加したり削除したデータが途中で見えてしまうため、処理の結果が変わってしまう。
  • READ COMMITTED ( 確定した最新データを常に読み取る )
他のトランザクションによる更新については、常にコミット済みのデータのみを読み取る。 MVCC はREAD COMMITTEDを実現する実装の一つである。
ファントム・リード に加え、非再現リード(Non-Repeatable Read)と呼ばれる、同じトランザクション中でも同じデータを読み込むたびに値が変わってしまう現象が発生する可能性がある。
  • READ UNCOMMITTED ( 確定していないデータまで読み取る )
他の処理によって行われている、書きかけのデータまで読み取る。
PHANTOM 、 NON-REPEATABLE READ 、さらに ダーティ・リード(Dirty Read) と呼ばれる現象(不完全なデータや、計算途中のデータを読み取ってしまう動作)が発生する。トランザクションの並行動作によってデータを破壊する可能性は高いが、その分性能は高い。

 

SQL Serverのデフォルト設定

SQL Serverのデフォルト設定ではトランザクション分離レベルは「READ COMMITTED」となってます。

 

これだけだと一見問題ないのですが、先のトランザクションの処理が長い場合、後のトランザクションがテーブルを参照できずにロック待ちとなってしまいます。

 

ロック待ちで困ること

実際、現在のプロジェクトで発生した事象です。

 

1時間毎に多くのテーブルを参照し、更新するJOBがあります。

このJOB実行時にトランザクションを開始し、終了まで20分程度かかる。

 

この20分の間に、JOBが参照しているテーブルをWebアプリケーションが参照しようとすると参照できずに待ってしまうんです。

 

困りますね。

 

解決方法

2つあります。

コマンドレベルと、SQL Management Studio使う方法です。

 

①コマンドレベル

下記の記事を参照して下さい。

SQLServerで読み取り一貫性 - Qiita

 

SQL Management Studio

下記ページのハードコピーにある通り、データベースを選択肢、右クリックでプロパティからオプションを表示して下さい。

そのオプションから「Is Read Committed Snapshot On」と「スナップショット分離を許可」をTrueに変更します。

※下記ページのハードコピーはtempdbになってますが、自分が使っているDB名に変えて下さい。

SQL Serverトラブルシューティング(22):TEMPDBを配置したディスク領域が枯渇した(Read Committed Snapshot分離レベル編)(ファイル管理トラブル) - @IT

 

※現在は、まだ事象が発生してないのでこれで解決だと思ってますが、もしロック待ちが再現すればまたここでお知らせします。

【残業しない仕事術】上司とのこまめなコミュニケーションで仕事の納期をコントロールして早めに帰るポイント5選

f:id:ksakae1216:20170712235258j:plain

どうもコウタロウです。 

 

今日はタイトルについて。

 

 

なぜあなたの仕事は終わらないのか?

毎日、残業、残業で自宅に帰っても風呂入って飯食って寝るだけの生活になってないですか?

 

残念ながら私はしばらくその生活を続けていました。。。

www.ksakae1216.com

 

さて、何故あなたの仕事が終わらないのか?

理由を考えてみましょう。

①自分がこなせる量以上の仕事を振られる

②自分の能力を大幅に上回る仕事を振られる

③ 仕事の量、難しさはたいしたことないが仕事の進め方が悪く終わらない

 

こんなところでしょうか?

 

仕事が終わらない原因は何?

判断が難しいですが、人によっては①〜③全て個人の責任だろうと言う人もいるかもしれません。

 

ただ私は、個人の責任だけだとは考えていません。

 

仕事が終わらない原因は仕事の進め方にあります。

 

つまり仕事が終わらない原因は仕事の進め方にあるのです。

けして個人の能力、体力が原因ではありません!!

 

残業せずに仕事を終らせるポイント5選

となると、仕事の進め方を改善すれば 残業せずに仕事を終らせることができます。

 

最近、忙しい中で私が実践し特に効果的だったポイントを5つ紹介します。

 

その仕事、本当に大切?

残業しなければ終わらない程、仕事が多い時って、どれもこれも全てやらなければいけないと考えがちです。

 

でもね、意外とそんなことないんですよ。

※私はIT系の仕事をしてるのでIT系の仕事の例となります。

 

例えば

①登録ボタン押すと、エラーになる

②削除ボタンで削除したけど、画面がクリアされずに残る(データはクリアされてる)

③数値だけしか入力できなはずなのに、文字列も入力できる

 

などなど、色々不具合があり直さなければいけないです。

 

忙しい時って考えることもしなくなるので

「①〜③全て3日間で全て終らせて!!」などと結構簡単に仕事を振られる場合があります。

 

上司も忙しいのでとにかく終わらせなきゃ

部下も忙しいので不具合は全て修正しなくちゃ

 

と考えるものです。

 

でも、本当に全てを3日間で終らせる必要ありますか?

もしかしたら①、②はやらなきゃいけないけど、③は来週でもいいかも?

 

もしかすると③はユーザーに確認したら「文字列入力してもOK!!」って言うかも。

 

仕事って意外と、振ってる方も絶対に必要かどうかの確信が無いものなんです。

 

だから、振られたから全てやるのではなく、本当にその仕事が必要かどうか少し立ち止まって考えてみて下さい。

 

上司が話しやすければその仕事の大切さ、意味を確認して見てください。

話してみると「残業してまでやる仕事でもないな」なんて展開になるかもしれませんよ。

 

仕事の期限を上司と確認する

忙しい時は2パターンあります。

・仕事の納期が決まってるパターン

・とにかく毎日、1つでも多く仕事を終らせるパターン

 

残念ながら後者は1つ1つの仕事の納期が無く、膨大な仕事を今いるメンバーで手当たり次第こなしていく最悪のパターンです。

 

こんな時は、最初に今日どこまでできるかを簡単に見積もります。

※「簡単に」と書いたのはキッチリ見積もったところでその通りにいかないし、忙しい時は見積もりの時間も勿体ないためです。

 

例えば、今日は3つくらいまでなら終らせられると見積もったとします。

そこで上司に確認するのです。

 

私:「恐らく、今日1日で3つまでなら終らせられると思います。

但し、3つ目の〇〇は少しリスクがあり、もしかすると終わらないかもしれません。」

 

上司:「悪いけど、今日中に終らせて」

 

となれば、出来る範囲でがんばり、夕方か、定時位に終わりそうであればそのまま進め、難しそうであれば、現状を包み隠さず報告し、そのまま頑張るか、期限を変えてもらうか解決策を相談しましょう。

 

もし、相談しても「終らせて」くらいの一言しかない上司であれば次回から見積もりを甘くし、1日に2つまでしか終わらせられないなど、自分で自分の身を守りましょう。

 

仕事の前に少しでいいから効率的な方法を考える

これ、スゴイ重要です!!

 

恐らく大多数の人が仕事を振られたら、そのまますぐ手を付けるんじゃないでしょうか?

 

それは間違いです。

 

仮にいつもやっている作業でも、少しでいいから考えるんです!

 

そのいつもの手順が本当に効率がいいのか?

 

昔からやっている作業でも今は効率のいいツールがあって30分かかる作業が10分でできるかもしれません。

 

はじめてやる仕事であれば尚の事どのように進めるのか?

ゴール(作業完了)のイメージは?

 

慣れないうちは考えても何も思いつかず考えなくても一緒かも?と思うかもしれませんが考えるクセ、習慣をつければ、恐ろしいほど、仕事のスピードがアップします。

保証します!!

 

中間締め切りを決める

仕事は、順調に進みません。

 

こんなはずじゃなかった、もっと簡単にできるはずだった。。。

 

想定通り進まなかったら、残業して穴埋めする?

 

イヤイヤ、そうじゃないです。

例えば、ある仕事を2時間でやるつもりだったと見積もります。

 

となると、1時間たてば、全体の半分は終わってるはずです。

1時間30分で75%、ほぼ完了しているはずです。

 

でも実際は、1時間たっても進捗がほぼ無く、1時間30分経過しても半分も終わって無ければ、そのまま進めるのは危険です。

 

おそらくその仕事は終わりません。

 

仕事の難易度によりますが、簡単な仕事で挽回の自信があれば1時間30分までがんばり、あまり自信がない仕事であれば1時間経過した時点で

・そのまま進めるか?

・その後のスケジュールを見直すか?

 

の判断をします。

 

そのまま進めるのであれば、残業を覚悟して進めます。

 

スケジュールを見直すのであれば、その後に控えている仕事を翌日に回し、必要であれば上司に報告して下さい。

 

上司に報告した結果、残業を打診されるかもしれないし、後に控えている仕事を別の担当者にまわしてくれるかもしれません。

 

一番良くないのは、2時間作業しても終らず、残業しても終らず、その後の仕事も手をつけず、夜の20時、21時くらいにぜんぜん終わらないと上司に報告することです。

 

これが一番最悪。

 

仕事は一人でやっているものではありません、チームのためにも自分のためにも中間締め切りを設け、意識して仕事して下さい。

 

仕事の成果が100点でなくてもいいか確認する

ケースとしては多くないですが、少なくもないので。

 

仕事を振られたら、当然全て完了したら終りとなります。

 

私のIT業界では、ユーザーから気軽に「これやって」、「あれやって」と言われますが、技術的に難しいこともあり、100%要望を満たせないことも間々あります。

 

当然、100%期待に答えたいですができないこともあるのが事実。

それは、自分の技術不足かもしれないし、与えられたコスト(時間と経費)の問題かもしれないし。。。

 

なので最初は100点目指してがんばりますが、残りの与えられた時間を考えると、80点までしかもっていけない事もあります。

 

その時は、残業しても必ず100点に持っていこうと思わず、残り時間を考えたら80点までしかいけないと判断できた時点で上司に相談して下さい。

 

作業担当者は100点に持っていかなければと考えがちですが、上司はプロジェクト全体から判断し、80点でもいいとなるかもしれません。

 

今は、80点でもプロジェクト後半になると、技術力が上がり残り20点を少ない時間で完了させることができるかもしれません。

 

仕事は100点、いや120点を目指すのが当たり前ですが、80点でもいいかもしれないという柔軟な判断と相談する習慣をぜひ身につけて下さい!

 

最後に

如何でしたか?

 

この記事で紹介したポイント5選を実践し、今の現場では毎日一番早く帰宅しています。

 

特に重要なポイントは、リスクのある仕事ほど、上司と蜜にコミュニケーションを取ることです。

 

私はフリーランスなので、威圧的で話のわからない上司であれば、すぐに現場を変えて働くことができます。

 

それができな会社勤めの人はちょっと難しいかもしれないですが上司と相談する以外のポイントは実践できると思うのでぜひお試し下さい!!

【解決方法】Mybatis "if test"で1文字の文字列がNumberFormatExceptionエラー発生!!

f:id:ksakae1216:20170710223937p:plain

どうもコウタロウです。

 

今日はタイトルについて。

 

 

NumberFormatExceptionエラー

MybatisはSQLをXMLファイルに記載できるのでJavaクラスではビジネスロジックを記載し、SQLはXMLファイルへと分離でき慣れると仲々使いやすく気に入っています。

MyBatis – MyBatis 3 | イントロダクション

 

そのMybatisではSQLを記載するXMLファイルの中にif文やfor文(foreach)などの分岐も記載することができます。

 

※if文の例(8行目と11行目)

gistc3abbc6e7bb14ad3c6e77d3f6d7c9a51

 

SQLを実行する時に渡す変数valが「なし('')」か「A」か「B」の場合、9行目10行目も

実行するようになっています。

 

一見、何の問題も無さそうですが、これを実行すると「'A'」の部分で「NumberFormatException」が発生します。

 

解決方法

原因は不明ですが、1文字の文字列をシングルクォートで括っても、Mybatisは数値と認識して、数値変換しようとしてエラーが発生する流れです。

 

では、どうすればいいかというと「toString()」してあれればOKです!!

gistae82147000e88112c65f78b662b76e38

 

8行目の「'A'」と「'B'」を「'A'.toString()」、「'B'.toString()」に変更すればエラーは回避できます!!

【Eclipse】「Java プロジェクト・ファセットのバージョンと一致しません」エラーの解決方法(番外編:Macのキーボードショートカット付き)

 どうもコウタロウです。

 

今日はタイトルについて。

 

 

Eclipseでファセットのバージョンと一致しませんエラー発生

1、2年前から使っているEclipseでちょっと試したい事があり、プロジェクトのJavaバージョンを1.6->1.8に上げたんですね。

 

すると、こんなエラーが!!

f:id:ksakae1216:20170701091631j:plain

 

Javaプロジェクト・ファセットって?

まずはこれが何なのかわからないのでちょっと調べてみる

 

ファセットは、Java EE プロジェクトの特性および要件を定義し、ランタイム構成の一部として使用されます。

 

プロジェクトにファセットを追加すると、そのプロジェクトは特定のタスクを実行するか、特定の要件を満たすか、または特定の特性を持つように構成されます。例えば、EAR ファセットはデプロイメント記述子を追加し、プロジェクトのクラスパスをセットアップすることにより、プロジェクトをエンタープライズ・アプリケーションとして機能するようにセットアップします。

IBM Knowledge Center

 

あまり情報がなく、唯一IBMのページで上記の情報が。

つまり、Javaプロジェクトの機能や設定を定義してあることらしい

 

原因

ということは、ビルドパスから変えたJavaのバージョン1.8とプロジェクト・ファセットのJavaのバージョンがあっていないことが原因ということです。

 

そこまでわかれば簡単、早速直します。

 

解決方法

まず、念のため、ビルドパスの確認

f:id:ksakae1216:20170701160322j:plain

プロジェクト(上記ハードコピーだとSpringWebProject) を右クリックしてプロパティを選択。

 

そこから「Javaのビルド・パス」、「ライブラリ」を選択するとJavaのバージョンが出ます。(1.8になってますね)

f:id:ksakae1216:20170701160550j:plain

 

次にプロジェクト・ファセットの確認です。

こちらもプロジェクトの右クリックからプロパティを開きます。

ここでは、「プロジェクト・ファセット」を選択

f:id:ksakae1216:20170701161201j:plain

おっ、こっちは1.6ですね。

これがエラーの原因です。

 

1.6の右の方に下矢印があるのでそこをクリックするとJavaバージョンを選択できるので1.8に変更してプロパティ右下にあるOKボタンを押下して下さい。

 

するとコンパイルが走りエラーが解消されます。 

 

番外編(Macでのキーボードショートカット)

私はMac使ってるんですけどキーボードショートカットがeclipseで紹介されているものと違うんですね。

 

eclipseで右クリックすると下記のようにプロパティは「⌘l」ってかいてあるんだけど、実際はoption+Enterなんですね。なんでだろう?

 

下記サイトがしっかり紹介してくれてます。もし、Mac使っててキーボードショートカット困ったら下記サイトを参考にして下さい。

Eclipseショートカットキー Mac & Windows 対応表 - CODESCRIBBLE