私は Java 開発プラットフォームとして Windows から Linux に移行しようとしています。移行は概ね問題なく進んでいますが、いくつか不明な点があり、それについてフィードバックをいただきたいと思います。私は openSUSE 11.4 を実行していますが、他のディストリビューションで何が機能するかについても聞いてみたいです。
- JDK はどこからインストールしますか?これは意外にも、ほとんどの人が考えているほど単純ではありません。OpenJDk 6 は openSUSE リポジトリで入手可能で、インストールも非常に簡単です。ただし、現在はアップデート 21 であり、Oracle リリースは現時点ではアップデート 24 です。Windows では Java を更新する必要があることを通知する小さなアラートが表示されるのに慣れていますが、Linux ではそれが標準ではないようです。Java 開発者はパッケージ マネージャーで JDK を放棄して、バイナリを直接インストールするのでしょうか。それとも別の方法があるのでしょうか。
- Eclipse はどこにインストールしますか?Eclipse をインストールするには、バイナリをダウンロードしてどこかに解凍するだけが一番良いというのがオンラインでの一般的な合意のようですが、Eclipse や Ant などのプログラムは通常どこで解凍するのでしょうか? オンラインで /usr/local と /opt への投票を見ましたが、明確な答えはありません。
- Jetty/Tomcat をどこに置きますか?Eclipse の質問と同様、ほとんどの Linux Java 開発者は Jetty/Tomcat/その他のコンテナをどこに配置しますか。
- 開発と本番のセットアップ方法の違いは何ですか?少なくとも、サーブレット コンテナーをルートとして実行したくないようです。それは理にかなっています。しかし、他にどのような点に注意する必要がありますか? 開発環境を簡単にできるが、安全性が低下する可能性がある他の方法はありますか?
私は見つけたこの質問同様でしたが、結局レベルが高すぎて、実際の開発者がどのように環境を設定しているかの詳細には触れていませんでした。これらの質問に答えてくれると思われる他のリソースがある場合は、ここで共有してください。
御時間ありがとうございます。
ベストアンサー1
Q>JDK はどこからインストールしますか?
あ>私たちの製品は Sun/Oracle JRE でのみ動作することが認定されているため、Sun/Oracle 以外の JDK については気にしません。デスクトップでは Kubuntu を実行していますが、apt-get
これを使用することはなく、常に手動でダウンロードします。理由:
- ディストリビューションのメンテナーは、依存するアプリ (OpenOffice など) が動作することを第一に考えているため、パッケージのアップグレードを急ぐことはほとんどありません。JDK が 1.6.0_20 から 1.6.0_21 に変更されても、彼らはまったく気にしません。新しいパッチに重要なバグ修正が含まれている可能性がある場合や、自分のアプリがすべてのユニット テストに合格するかどうかを試したい場合など、私は気にするかもしれません。
- 古い JDK バージョンを保持するのは悪夢かもしれません。当社は製品の古いバージョンを引き続きサポートしていますが、新しい Kubuntu にアップグレードした場合、古い JDK がパッケージとして引き続き利用できるという保証はありません。
- 一部のディストリビューションでは、同じマシン上で複数の JDK の存在をサポートしているかどうかはわかりません。
私の好みは、すべての JDK/JRE を保持し/opt
、最新のものまたは最も必要なものへのシンボリックリンクを作成することです。JDK を手動でインストールすることがなぜ問題になるのか、私にはわかりません。
PATH
また、最新の JDK/JRE に設定しました。
同じこと (および同様の議論) がAnt
およびにも当てはまりますMaven
。
Q>Eclipse はどこにインストールしますか?
あ>私は IntelliJ を使用していますが、同じことが当てはまります。IDE をホーム フォルダーに保存しています。これにより、IDE のさまざまなバージョンを保持したり、 を必要とせずに更新したりできsudo
ます。 にインストールすることもできます/opt
が、毎週最新の IntelliJ IDEA EAP をダウンロードしてテストしていたときにこの習慣が身についたと思います。そうすれば、古いバージョンをすばやく削除して を汚染しないようにできます/opt
。最後に、他のプログラムでは Ant/Maven/JDK が必要になる場合がありますが、IntelliJ を使用するのは私だけなので、異なるアプローチになります。
Q>Jetty/Tomcat をどこに置きますか?
あ>tomcats
下に10 個ほどの異なる Tomcat インスタンスがある別のフォルダーがあります/home
。それぞれの Tomcat は、アプリの異なるバージョンで使用されます (アプリには Tomcat がバンドルされています)。アプリの 1 つのデプロイメントで、別のデプロイメントとは異なる Tomcat 設定 (またはバージョン) を設定できるため、これが必要になります。
Q>開発と本番のセットアップ方法の違いは何ですか?
あ>それはアプリによって大きく異なります。たとえば、アクセス レイテンシは低いがスペースは少ない (例: Lucene インデックスの場合はギガバイト) パーティションもあれば、レイテンシは高いがスペースは多く必要な (例: コンテンツ リポジトリの場合はテラバイト) パーティションもあります。ただし、アプリは、これらすべての異なる側面が構成可能な異なるパーティションに存在できるように設計されています。一部のパーティションには、他のパーティションをオーバーフローさせないように特別な制限 (例: ファイルのアップロード) が必要です。この質問に対する単純な万能の答えはありませんが、明らかにこれらの懸念のほとんどは開発環境ではそれほど重要ではありません。