2009-03-16 13 views
3

私は、仮想化がはるかに普及している.Netキャンプから来ています.GACなどのサーバーソフトウェアやシステム全体のエンティティで実行する必要があります。仮想マシンでJavaを開発することに利点はありますか?

私はJava開発を行っているので、引き続き仮想化を採用することは理にかなっていますか?私たちはVirtualPCを使っていましたが、IMOは最大のものではありませんでした。私たちが前進するならば、うまくいけば、VMWareを使用しています。

私たちはWeb開発を行っており、さまざまなサーバー展開のテストに仮想化を使用しません。

長所:

  • は、開発環境は、チーム全体で同じ
  • ホストから単離するため
  • クロスプラットフォーム/ブラウザのテスト

短所を許可することができるようにします

  • マルチモニターのサポートは(ないVMWareのでは?)不足している
  • パフォーマンスの低下 - 主にI/O
  • 巨大な仮想ディスク

答えて

6

一つの可能​​な利点は、あなたが技術的に多様で同じプログラムをテストすることができることですJVMの不安にもかかわらず、

Javaは100%移植性がなく、移植性のないコードを書くことは非常に可能です。さらに、ライブラリ間に微妙なバージョンがあります。異なるJVMで作業する場合、違いがあるかもしれません。

しかし、Java IDEは重量があるので、VM内でIDEを実行するのは面白くないかもしれません。

Javaはいくつかの形式のリモートデプロイメントをサポートしていますが、IDEをローカルで実行している間にそれらを探索すると有益かもしれません。

+0

Tomcatまたは特定のJ2EEコンテナで使用すると、アプリケーションのリモート展開は非常に成熟しています。 –

+0

私の店はまさにこれを行います。 ESXiラック上のさまざまなVM(win/sol/lin)にアプリケーションサーバーをセットアップしています。統合にHudsonを使用して、新しいビルドを展開し、すべての時間をテストします。開発は常にデスクトップ上にあります。 – basszero

+0

楽しいよね。あなたはどんなプログラムを作っていますか? – Uri

2

VMでの開発が嫌いです。良い点は、あなたが短所として書いているのとは対照的に、複数のモニタがVMWareによってサポートされていることと、巨大なディスクの問題は、VMWareがUSBハードディスクから驚くほどスムーズに動くので問題ではないということです。

Uriが言ったように、Java用の重量級IDEを実行することは、VMであまり楽しまないでしょう。しかし、その後、VMでVisual Studioを実行することは楽しいものではありません。だからあなたがVMのVSに満足していたら、それはあなたが思うほど強くないので、それはJavaのための試してみてください:)

+0

その他の短所はありますか? –

+0

No.主なものはスピードです。 3Dアクセラレーションは成熟したものではありません。 – OregonGhost

1

あなたは、あなたのアプリケーションは、異なるオペレーティングシステム上の異なるWebブラウザを使用しています。 VMwareはこれに役立つでしょう。

Netbeans IDEはオペレーティングシステムに依存しないため、開発者は異なるオペレーティングシステムで作業しても問題はありません。

+0

ターゲットブラウザを制御できます。クロスブラウザテストは必要ありません。 :) –

+0

あなたはそれを作った! ;) – Mark

1

私はVirtualBoxインスタンス内でeclipseを実行し、正常に動作します。私は過去にVMWareを使用していましたが、これも問題ありません。

仮想化が必要な分離を提供しますので、私は自宅で仕事(...など、ゲームをプレイするウェブサーフィン、メールを読んで)私の開発環境は、私のPCの残りの部分はやっているものは何でもから離れてセグメント化

を持つような仕事/遊びのまた、私は、それぞれの環境を別々にアップグレードし、環境をもっと制御することができます。

また、新しいものを試して、インストールが「うわーー」になったら元に戻すことができます。非常に技術的な言い訳には申し訳ありません。 ;-)

編集:私の家庭環境を過度の企業の影響を受けずに、企業のVPNアクセス要件を満たすこともできます。

1

アプリケーションが別のOSでも動作することを確認するためにVMが必要な場合は、継続的な統合サーバーを使用して、そのマシン(つまりLinux/Windows/OSX)。その後、最新のビルドを展開し、提供されたクラスに対してユニットテストを実行します。 自動統合テストを実行します。その結果をCI環境に報告する必要があります。 統合テストがうまくいけば、SCMにコミットした直後の多くの一般的なマルチプラットフォームミスをキャッチできます。

関連する問題