2013

NetBeans 8 Dev を使って Lambda で遊ぶ

Java NetBeans

NetBeans で Lambda がお気楽に試せる時代がやってきたので今日もちょこっとだけ遊んでみました。

先日チュートリアルを試してみたんだけど途中で上手くいかなかったので今度はシステムプロパティを取得するプログラムを組んでみた。

コードは下記のようにとりあえず Lambda を使わないもので組んだ。

jp\yucchi\printsystemprop\PrintSystemProp.java

実行結果は次のようになる。

java.specification.vendor: Oracle Corporation
java.endorsed.dirs: C:\jdk1.8.0\jre\lib\endorsed
java.vm.specification.version: 1.8
java.vm.specification.name: Java Virtual Machine Specification
java.vendor.url: http://java.oracle.com/
sun.java.launcher: SUN_STANDARD
awt.toolkit: sun.awt.windows.WToolkit
java.vendor: Oracle Corporation
java.io.tmpdir: C:\Users\Yucchi\AppData\Local\Temp\
java.class.path: C:\Users\Yucchi\Documents\NetBeansProjects\PrintSystemProp\build\classes
sun.arch.data.model: 64
user.name: Yucchi
os.version: 6.2
java.vendor.url.bug: http://bugreport.sun.com/bugreport/
os.name: Windows 8
sun.boot.library.path: C:\jdk1.8.0\jre\bin
java.awt.graphicsenv: sun.awt.Win32GraphicsEnvironment
java.library.path: C:\jdk1.8.0\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Java\jdk1.7.0_17\bin;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files (x86)\JustSystems\JSLIB32;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;.
user.home: C:\Users\Yucchi
sun.os.patch.level:
sun.cpu.isalist: amd64
java.vm.vendor: Oracle Corporation
user.country: JP
java.vm.version: 25.0-b19
path.separator: ;
sun.java.command: jp.yucchi.printsystemprop.PrintSystemProp
java.home: C:\jdk1.8.0\jre
java.runtime.version: 1.8.0-ea-lambda-nightly-h3500-20130225-b79-b00
line.separator:

java.awt.printerjob: sun.awt.windows.WPrinterJob
file.separator: \
sun.io.unicode.encoding: UnicodeLittle
sun.boot.class.path: C:\jdk1.8.0\jre\lib\resources.jar;C:\jdk1.8.0\jre\lib\rt.jar;C:\jdk1.8.0\jre\lib\sunrsasign.jar;C:\jdk1.8.0\jre\lib\jsse.jar;C:\jdk1.8.0\jre\lib\jce.jar;C:\jdk1.8.0\jre\lib\charsets.jar;C:\jdk1.8.0\jre\lib\jfr.jar;C:\jdk1.8.0\jre\classes
java.vm.info: mixed mode
sun.desktop: windows
java.version: 1.8.0-ea
java.class.version: 52.0
java.specification.name: Java Platform API Specification
file.encoding: UTF-8
sun.cpu.endian: little
user.script:
java.vm.specification.vendor: Oracle Corporation
java.vm.name: OpenJDK 64-Bit Server VM
user.dir: C:\Users\Yucchi\Documents\NetBeansProjects\PrintSystemProp
sun.management.compiler: HotSpot 64-Bit Tiered Compilers
java.runtime.name: OpenJDK Runtime Environment
user.variant:
file.encoding.pkg: sun.io
java.specification.version: 1.8
sun.jnu.encoding: MS932
java.ext.dirs: C:\jdk1.8.0\jre\lib\ext;C:\Windows\Sun\Java\lib\ext
user.timezone:
user.language: ja
os.arch: amd64

とりあえずちゃんと取得できているようだ。

このプログラムを NetBeans はラムダ式を使うようにお勧めしてくれます。

Use Functional Operation をクリックすると

1

素敵な未来の Java コードに変換してくれます。

2

さて、このままではおもしろくないので キーが sun からはじまるシステムプロパティだけを取得するようにしてみます。

Stream インタフェースが活躍してくれます。

filter()、forEach() を使ってこのように篩い分けをしてくれます。

慣れるまでは違和感がありますが近い将来はこのようなコードを組む時代がそこまでやってきているようです。

jp\yucchi\printsystemprop\PrintSystemProp.java

実行結果は

sun.io.unicode.encoding: UnicodeLittle
sun.boot.class.path: C:\jdk1.8.0\jre\lib\resources.jar;C:\jdk1.8.0\jre\lib\rt.jar;C:\jdk1.8.0\jre\lib\sunrsasign.jar;C:\jdk1.8.0\jre\lib\jsse.jar;C:\jdk1.8.0\jre\lib\jce.jar;C:\jdk1.8.0\jre\lib\charsets.jar;C:\jdk1.8.0\jre\lib\jfr.jar;C:\jdk1.8.0\jre\classes
sun.management.compiler: HotSpot 64-Bit Tiered Compilers
sun.java.command: jp.yucchi.printsystemprop.PrintSystemProp
sun.arch.data.model: 64
sun.jnu.encoding: MS932
sun.cpu.endian: little
sun.os.patch.level:
sun.desktop: windows
sun.cpu.isalist: amd64
sun.java.launcher: SUN_STANDARD
sun.boot.library.path: C:\jdk1.8.0\jre\bin

とりあえず目的は果たしているようです。

ただし、私はあまり Lambda のことを調べてないので上記のコードで正しいのか自信ありません。

詳しい人がこれをご覧になっていてもっと良い方法があるんでしたらご指摘くださると嬉しいです。

Hatena タグ: ,

配列に初期値をセットするのに便利なメソッド

Java

こんなのがあったなんてしらなかった。

配列の初期値を –1 で初期化したい場合なんかに便利かも fill() ってのがありました。

今までこの存在に気付かなかった(゜´Д`゜)

Arrays.fill()

Hatena タグ:

NetBeans 8 開発版で JDK 8 EA を使ってみた

Java NetBeans

まだまだ遠いけど、手が届きそうなところまで近づいてきた JDK 8 を試してみます。

統合開発環境を使って動かせるようにも成りつつあるようです。

IntelliJ12でJDK8のlambda

Eclipse で Java8!

そこで我らがヒーロー NetBeans はどういった状況なのか? さっそく試してみました。

次期リリース予定の開発版をダウンロードしてインストールしてみました。

JDK 8 は Java™ Platform, Standard Edition 8 Early Access with Lambda Support と

JDK™ 8 Early Access Releases があります。

後者は前者の成果物を一部マージしたものとなっているようです。(たぶん・・・)

現在は Build b79 となっています。

Java™ Platform, Standard Edition 8 Early Access with Lambda Support を使って NetBeans をインストールしたのですが、

ちょっと問題が発生したので JDK™ 8 Early Access Releases に切り替えました。

JDK の変更は設定ファイルをちょこっと書き換えるだけで簡単にできるので気にしなくていいですね。

1

それでは The Java Tutorials を試してみましょう。

jp\yucchi\Member.java

jp\yucchi\RosterTest.java

コメントアウトしてあるところがあるのですが Mapper インターフェースが無いよって言われます。

JDK を変更しても一緒だったので何か変更されたのか、変更中なのかもしれません。

とりあえずここまではチュートリアル通りに動くようです。

一部コードは変更してあります。

さぁ、それでは、NetBeans の Lambda Expression 対応状況をみてみましょう。

このような匿名クラスを使ってるのをみつけると

2

このように Lambda Expression に変更できますよって親切に教えてくれます。

3

Lambda 使っちゃいますよってポチッってすると

4

これからの Java に変更されます。

5

チュートリアルで Lambda Expression を使う場合のコードと同じですね。(^-^)

6

おまけとして、Java™ Platform, Standard Edition 8 Early Access with Lambda Support を使った場合は

このように Functional Operation をお勧めしてくれます。

なんて親切なんだろう。

7

で、お勧めに従って Use Functional Operation をポチッとクリックすると

8

素敵ですね。拡張 for 文から見慣れない forEach 文を使った構文に変更されてます。

9

filter() を使えばいろいろ便利に使えそうな予感がします。

チュートリアルの充実と JDK 8 及び NetBeans の熟成が楽しみです。(*^O^*)

Hatena タグ: ,

WordPress をカスタマイズ

Computer

はっきりいって解らない(>_<)

PHP とか CSS とかになれている人はなんてことはないんだろうけど私には理解不能だ。

PHP の if 文なんか絶対なじめない。

これを見ると Java はなんて綺麗なんだろうと素直に思ってしまう。

いままでこんなことは思わなかったが Java って美しい言語だったんだなぁ・・・

さて、当ブログはそういった理由で正しく動作していないところもあるかもしれませんのであしからず(^_^;)


Windows 8 Pro 64bit 版バックアップソフト

Windows

Windows 8 Pro 64bit 版バックアップソフトが何種類か発売されています。

私はシステムイメージ丸ごとバックアップし、差分もしくは増分で世代を追加していくものが便利だと思って OS 付属のシステムイメージバックアップよりも

市販されているものをこれまでも使用してきました。

システムの復元を使えば良いとかありますがそれが採用されたときに使い方が悪かったのか?Path がおかしくなって困った覚えがあります。

それでシステム丸ごとバックアップするのが良いかなぁってなったわけです。

時間はかかりますがいざって時に調子の良かった環境に戻せます。

さて、Windows 8 Pro 64bit を導入してからいろいろ試してみた結果をレポートしてみます。

 

[ システム情報 ]

OS 名            Microsoft Windows 8 Pro with Media Center   
バージョン    6.2.9200 ビルド 9200       
M/B            Supermicro X9DAi   
システムモデル    X9DAi       
プロセッサ    Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz、3101 Mhz、8 個のコア、16 個のロジカル プロセッサ   
プロセッサ    Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz、3101 Mhz、8 個のコア、16 個のロジカル プロセッサ   
BIOS        American Megatrends Inc. 1.0a, 2012/08/13   
SMBIOS バージョン    2.7   
埋め込みコントローラーのバージョン    255.255   
BIOS モード    レガシ       
セキュア ブートの状態    サポートされていません   
PCR7 構成    バインド不可   
ロケール    日本   
ハードウェア アブストラクション レイヤー    バージョン = “6.2.9200.16442”   
タイム ゾーン    東京 (標準時)   
物理メモリ (RAM)    64.0 GB   
合計物理メモリ            64.0 GB   
利用可能な物理メモリ    60.9 GB   
合計仮想メモリ            96.0 GB   
利用可能な仮想メモリ    92.5 GB   
ページ ファイルの空き容量    32.0 GB   
ページ ファイル    C:\pagefile.sys   
Hyper-V – VM モニター モード拡張機能    はい   
Hyper-V – 第 2 レベル アドレス変換拡張機能    はい   
Hyper-V – ファームウェアで仮想化が有効    はい   
Hyper-V – データ実行防止    はい
システムディスク Intel SSD RAID 0 ( 2 台 )
データディスク HDD RAID 0   ( 2 台 )
データディスク HDD
外付け HDD USB3.0 ( 3 台 )

 

以上のような構成になってます。

ちなみに 3D ゲームとかしないのに ELSA GEFORCE GTX680 を一基積んでいます。

 

まず、Windows 7 Pro 64bit の時に愛用していた Acronis の True Image 2013 Plus by Acronis からレポートします。

インストールは問題なし。

Windows 上でのバックアップ問題なし。

Windows 上での復元はディスクモードでは問題あり、元のディスクを選べません。

インストール後にも小さな?問題発生。再起動後にフリーズしたように画面の表示が完了しない。

マウスで画面をクリックすると一瞬真っ白になってからちゃんと立ち上がる。

リカバリーCDからの操作は Logicool MX Revolution Laser Mouse を認識できなかった。

しかし、USB3.0 デバイスを認識していた。拍手(・・||||rパンパンッ

Windows PE のリカバリーディスクを作ろうと思ったが Windows 8 対応の 4.0 じゃなかったのと以上の不具合があるので止めました。

Windows 7 pro 64bit の PC に True Image 2012 Plus by Acronis がインストールされているのでこれはそっちで使用することにします。

もちろん不具合がなければ・・・

 

次に HD革命/BackUp Ver.12 Professional をレポートします。

インストール問題なし。

プログラムの起動画面の右 1/4 くらいが切れて表示されない(><)

純国産ということで評判も上々なので期待していただけにショックが大きい!

この時点でこのプログラムを使う気はなくなった。

試しにリカバリーCDからの動作を確認したがプロンプト画面がうざい。

ドライバの読み込みでこれも表示がきれる。

実用上は支障ないがあまり気持ちの良いものでは無い。

肝心のバックアップとリストアは試してないが Windows 8 対応を謳うならリカバリーディスクから USB3.0 デバイスを認識してほしいね。

 

 

それでは次に PowerX ActiveImage Protector 3.5 Pro を期待をこめて試してみました。

インストール問題なし。

プログラムの起動問題なし。

Windows 上のバックアップ問題なし。

Windows 上の復元、ディスクを選択できない(><)

これって True Image 2013 Plus by Acronis 同じような問題なのか?

重複排除圧縮機能とレプリケーション機能は凄く期待していただけに残念です。

リカバリーCDからの操作は USB3.0 デバイスは認識しませんでした。

ドライバを読み込ませる必要があります。

オリジナルのリカバリーCDを作成するプログラムがあるので必要なドライバを組み込み作成することができます。

非常に親切な作りになってます。

ただし、Windows PE 4.0 ではないのが残念です。

ただ、Windows 8 64bit 版のドライバでは駄目なようで、Windows 7 32bit版のドライバが良いようです。

この製品も Windows 8 対応を謳ってますがシャットダウン時のバックアップとかは Windows 8 では対応してません。

これまで試した製品は今までの Windows 7 対応製品に少し手を加えて Windows 8 でも動くようにとりあえずしただけとしか私には思えてなりません。

 

最後に Paragon Drive Backup 12 Professional をレポートします。

インストール問題なし。

プログラムの起動問題なし。ただし、仮想モードで使用しているため起動が遅い。

Windows 上のバックアップ問題なし。

Windows 上の復元問題なし。ただし、再起動を必要とする場合ブルースクリーンモードになると言う怖いメッセージがでます。

ブルースクリーンって嫌な響きだが実際はブラックスクリーンじゃないか。

それに心配するようなことはなくしっかり仕事をしてくれます。

このソフトはしっかりと元のディスクを認識しますし、もちろん選択可能です。

やっと使えそうなソフトがでてきた。

差分バックアップはディスクではできなくてパーティション単位になるのが少し残念かな。

世代管理をするサイクルバックアップは単一パーティションって・・・・ 

やっぱりディスクで差分サイクルバックアップできたほうがべんりだよね~。今後に期待します。

さて、差分バックファイルが増えてきたらどうするか?

バックアップイメージの統合機能があるのでこれを使えばいいみたい。

他のソフトだと世代管理とか容量管理とかで自動でやってくれるんだけどなぁ・・・。これも今後に期待。

バックアップイメージファイルから任意のファイルを取り出すことは可能か?

バックアップイメージからファイルを復元する機能もあります。

ウィザードまで用意されてました。

もちろん、取り出すことができました。(^^)

ここまでは少し他の製品より不便なところはあるものの問題なく使えそうだなと思ってました。

ところが大きな落とし穴がありました。

このソフトバップアップイメージをボリュームとしてマウントすることができるんです。

やってみました。

Windows 8 のモダンなブルースクリーンを見させていただきました。(゜´Д`゜)

エラーメッセージもしっかり出ていたので再起動後に確認しようとしたら RAID アレイがクラッシュしてしまいました。((((;゜Д゜)))))))

ここでちょっとレポートの内容がシステムクラッシュ時のリカバリCDからのリストアにかわります。

まず、このソフトには Windows PE 4.0 によるリカバリCDをつくるプログラムがあります。

これを作っておくと非常に便利です。

USB メモリーもつくれるようです。

私は小さいと無くしてしまいそうなので CD にしました。

もちろん必要なドライバも事前に組み込み可能です。

USB3.0 デバイスは初めから認識します。

さぁ、いきなりこのようなトラブルでこのソフトの実力を試すことになろうとは思ってみませんでした。

結果はあっけなくすんなりと復元できました。

バックアップイメージファイルを選んで復元先の確認をしてあとはボタンを押して待つだけ。

非常に解りやすくできてます。

ここでもう一度バックアップイメージのマウントを試してみました。

やっぱりブルースクリーン・・・しかも RAID アレイが壊れる。

バックアップイメージファイルをマウントしなくてもファイルを取り出すことは可能なのでこの自爆機能は使わないようにして

このソフトを使っていこうと思います。

 

このように Windows 8 に対応を謳ってるバックアップソフトは何種類か発売されてますが

私の環境ではどれも満足に動作するには至りませんでした。

Windows 8 って昨年発売されたばかりだからこのような問題がでてくるのでしょうか?

ちなみにレポートした Paragon Drive Backup 12 Professional のようにリカバリCDがWindows PE 4.0 ベースで

作成できるようになってなければいけませんね。

でなきゃ、OS 付属のバックアップに負けますよね。

a_001

Hatena タグ:

« 古い記事 新しい記事 »