みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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はプラットフォームフリーなので気にしない、ということなのか、
そんなことない気がします。
サーバサイドに関しては初心者でして、根本的に的外れなことを言って
しまっているかもしれません。
出だしから基本的なところで躓いてしまっていまして、何卒アドバイス
をお願いいたします。

投稿日時 - 2006-12-08 12:05:10

QNo.2587604

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

ほとんどそういう環境で仕事してます。
環境依存の部分をハードコーディングしなければ大丈夫だと思います。
既に指摘されている通り
・ファイルIO時の改行コード
・ファイルIO時の文字コード
・パス
は注意してください。

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

投稿日時 - 2006-12-09 00:28:44

お礼

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

投稿日時 - 2006-12-09 00:44:17

ANo.3

一般的かどうかはわかりませんが、Unix系OSが本番機というのは、
なくはないですね。

うちのばあい、パス等依存しそうなところは、環境ファイルにしています。
とうぜん、環境ファイルそのもののパスも違ってきてしまうので(笑)
それは、サーブレット初期化パラメータで設定するようにしています。

ファイルアクセス系以外のロジック部分は、変更しなくてもいけるようです。
あ、タグライブラリやJSP等の改行がcr+lf→lfになるので、それも実機に転送するとき注意かな。

サーバがunix系OSであっても、クライアントはSJIS環境(Windowsだってこと)だと思いますので、
可能であれば、サーバの文字セットも合わせられるのならばSJISにしておいた方が
トラブルが少ないかもしれません。(どっちにしても'~'等は化けるんですが(^-^;)

投稿日時 - 2006-12-08 16:27:24

お礼

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

投稿日時 - 2006-12-08 17:54:31

ANo.2

一般的かどうかは、自分もそんなに経験が多いわけではないので、いえませんが、
開発はWindows、本番はLinux
という現場は何個か経験したことあります。
(でも「テスト環境」もLinuxでしたが…。)

そのときはWindowsとLinuxのパス関係は全て設定ファイルにして、
Windows用、Linux用と2種類用意していました。

ご参考までに。

投稿日時 - 2006-12-08 14:53:14

お礼

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

投稿日時 - 2006-12-08 15:55:31

ANo.1

ファイル区切り文字をハードコーディングしなければ大丈夫だと思いますよ。
System.getProperty("file.separator");
で取得するようにすれば。

もしくはパス関係は設定ファイルにして、
・Windows環境用
・Linux環境用
と2つ作るとか。

投稿日時 - 2006-12-08 12:33:57

お礼

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

投稿日時 - 2006-12-08 12:50:14

あなたにオススメの質問