• 締切済み

LinuxのサーバサイドJavaをWindowsで開発できますか

サーバサイド以外でのJavaアプリと、PHP,MySQLでのWebアプリ開発の 経験があります。 この度、いよいよサーバサイドJavaでWebアプリを開発することにな りました。 与えられた環境はWebサーバにLinux/Apache、 DBサーバにWindows2000Server/SQLServer2000です。 この際勉強の意味合いもあり、EJBも使用したいと思っておりまして、 LinuxサーバでサーブレットコンテナとEJBコンテナを稼動させたいと思 っています。 そこでお伺いしたいのが、このようなWebアプリをWindowsで開発できる かについてです。 普通、開発環境はWindowsでということが多いと思うのです。ネットや 書籍を参照しても、Windowsで間発環境を構築している例が殆どのよう な気がします。 私も、普段開発で使用しているWindowsXPマシンで、 JBoss+Eclipse+Strutsの環境を構築し、開発したいと思っています。 きっとLinuxにも同じようにJbossをインストールということになるのだ と思うのですが、それにしても、開発環境=Windows、本番環境=Linux、 ということになり、開発と本番の環境が全く違うことになってしまうと 思うのです。 Javaはプラットフォームフリーなので気にしない、ということなのか、 そんなことない気がします。 サーバサイドに関しては初心者でして、根本的に的外れなことを言って しまっているかもしれません。 出だしから基本的なところで躓いてしまっていまして、何卒アドバイス をお願いいたします。

みんなの回答

noname#86752
noname#86752
回答No.4

ほとんどそういう環境で仕事してます。 環境依存の部分をハードコーディングしなければ大丈夫だと思います。 既に指摘されている通り ・ファイルIO時の改行コード ・ファイルIO時の文字コード ・パス は注意してください。 それと文字化け。 jspに関しては ・chasetとpageEncodingを正しく設定する。 ・headのmetaの指定を行わない。 ・サーブレットフィルタで文字を変換する。 ・データベースもUNICODEにする。 ということを行うと文字化けがほぼ起きません。 これらの設定を行うとプログラムでは文字コードを意識せずに作ることができます。 クライアントがWindowsに限定できるならchatsetもpageEncodingもWindows-31Jにする(当然jspファイルもWindows-31Jで作成)ことをお勧めします。 それともしApacheを使うなら、ApacheのDefaultCharSetを指定しないようにしてください。

stpira
質問者

お礼

本当にありがとうございます。大変参考になります。 アドバイスいただきましたことを常に念頭に置いて開発にあたりたいと思います。

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.3

一般的かどうかはわかりませんが、Unix系OSが本番機というのは、 なくはないですね。 うちのばあい、パス等依存しそうなところは、環境ファイルにしています。 とうぜん、環境ファイルそのもののパスも違ってきてしまうので(笑) それは、サーブレット初期化パラメータで設定するようにしています。 ファイルアクセス系以外のロジック部分は、変更しなくてもいけるようです。 あ、タグライブラリやJSP等の改行がcr+lf→lfになるので、それも実機に転送するとき注意かな。 サーバがunix系OSであっても、クライアントはSJIS環境(Windowsだってこと)だと思いますので、 可能であれば、サーバの文字セットも合わせられるのならばSJISにしておいた方が トラブルが少ないかもしれません。(どっちにしても'~'等は化けるんですが(^-^;)

stpira
質問者

お礼

ありがとうございます。 そうですね、文字コードも十分に気にする必要がありますね。 開発がWindowsで本番がLinuxという環境の方も結構いらっしゃるよう ですので、私もがんばってみます。

回答No.2

一般的かどうかは、自分もそんなに経験が多いわけではないので、いえませんが、 開発はWindows、本番はLinux という現場は何個か経験したことあります。 (でも「テスト環境」もLinuxでしたが…。) そのときはWindowsとLinuxのパス関係は全て設定ファイルにして、 Windows用、Linux用と2種類用意していました。 ご参考までに。

stpira
質問者

お礼

度々ありがとうございます。 とても参考になります。 がんばって勉強してみます。

回答No.1

ファイル区切り文字をハードコーディングしなければ大丈夫だと思いますよ。 System.getProperty("file.separator"); で取得するようにすれば。 もしくはパス関係は設定ファイルにして、 ・Windows環境用 ・Linux環境用 と2つ作るとか。

stpira
質問者

お礼

早速ご回答いただきましてありがとうございます。 System.getProperty について勉強してみます。 このような開発の方法は一般的ではないのかな、と悩んでしまいます。

関連するQ&A