こんにちわ。早速なんですけど、教えて下さい。

以下のことを行った場合、
(1)javaソースをHP-UNIX上でコンパイル後、圧縮。
(2)windows2000にダウンロード後、CDに焼く。
(3)Solarisで解凍し、実行環境に投入。

で、Solarisで正常に動作するでしょうか?
javaだから出来るような気もするんですけど、やっぱりリコンパイルは必要な気もして。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

同じことを試したわけではないので自信はありませんが、仕事で



Windows2000でjavaソースをコンパイルして動作確認した後で圧縮
Solarisで解凍して実行

で、Solaris上でリコンパイルせずに問題なく動作しているので、問題はないと思うのですが。

ただし、当然のことながら
(1) HP-UNIX
(3) Solaris
では、Javaのバージョンは一致させておかないとダメですが
    • good
    • 0
この回答へのお礼

速攻の回答、ありがとうございます。

ちょっと不安だったのですが、win2000からで大丈夫なら、
問題なさそうですね。
(JAVAのバージョンは当然合わせます。)

お礼日時:2002/03/07 19:34

 classファイルを一個のjarファイルとして圧縮すれば、展開(いわゆる解凍)しなくてもライブラリとして使えます。



 jarファイルを作るコマンドは "jar" です。JDKの中に含まれます。使い方は参考URLをご覧ください。

>リコンパイルは必要な気もして。

 必要ありません。確かに、一つのJavaプログラムの動作(特にスレッドやGUI周り)が環境によって違ってくることがあります。しかしこれは、Java VMの違いによるものであって javac コマンドの違いではありません。

参考URL:http://www.fk.urban.ne.jp/home/kishida/kouza/jav …
    • good
    • 0
この回答へのお礼

回答を頂き、ありがとうございます。

そうだとしたら、jarファイルを抜き出して、そのまま対象マシンに投入してやれば、うまくいきそうですね。

お礼日時:2002/03/10 12:14

>HP-UNIXとsoralisで圧縮解凍のコマンドが違うんですか?



商用のunix系OSなら、compressなら問題無く同じように入っているでしょうが、
それ以外の圧縮形のソフトは同じ物があるとは限らないということです。

パスが通ってないかも知れないし、インストールされていないかも知れないし。

まあ、Cコンパイラがあれば、gzipのソースを入れておけばgzipも大丈夫でしょう(^^;

ところで、JAVAは詳しくないのですが、標準でzip形式が使えるような話がありませんでしたっけ?
jarとか。
    • good
    • 0
この回答へのお礼

ありがとうございます。
双方に共通のツールで圧縮するという部分は注意しないといけないですね。

ぼくも勉強し始めたばかりで詳しいという訳ではないですが、JAVAではzip形式やjarファイルをCLASSPATHに指定することで、ライブラリとして使用可能になります。

お礼日時:2002/03/08 01:18

参考になればいいのですが。

。。

前述の通り、Windows上で開発をしていますが、Windows上でzip圧縮して
それをSolaris上でunzipしても、特に問題は起こっていません。

万が一問題になるようで、環境が許すならwindows上で圧縮してCDに焼くのでも
いいかもしれませんね
    • good
    • 0
この回答へのお礼

今まで気が付きませんでしたが、そういうことが可能なら、
UNIX上の開発よりもWindows上での開発の方が
効率が良さそうですね。

JAVAの概念として、プラットフォーム依存しない…という部分は
知ってはいたのですが、古い頭が半信半疑でした。

ありがとうございました。

お礼日時:2002/03/08 01:10

>HP-UNIXとsoralisで圧縮解凍のコマンドが違うんですか?



gzipでもcompressでも、同じ圧縮フォーマットを使えばたぶん
ダイジョウブだと思います。特に「ダメな場合がある」という
心当たりがある訳ではありません。
不安にさせてしまって申し訳ありませんでした。
    • good
    • 0
この回答へのお礼

ありがとうございます。

安心しました。

お礼日時:2002/03/08 01:02

コンパイルしたClassファイル自体は、そのまま使えると思います。


但し、両方の環境で同じバージョンのJRE及びミドルウェア
(よくあるのがWebコンテナやDBドライバ)が用意できているならば、
ですケド。
あと、HP-UXの環境に依存したファイルパスや環境変数は
使用していませんよね。

#圧縮/解凍コマンドの互換性も心配。^^;

この回答への補足

早速の回答ありがとうございます

環境は合わせるので、大丈夫だと思いますが、
圧縮解凍コマンドの互換性…という部分が気になります。
HP-UNIXとsoralisで圧縮解凍のコマンドが違うんですか?
具体的に教えてもらえるとうれしいです。
よろしくお願いします。

補足日時:2002/03/07 19:34
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qjava コンパイルエラー

java コンパイルエラー
java 初心者です。
簡単なプログラムを作りながら練習していたのですが、Exceptionクラスを継承して新しい例外を作る以下のプログラムで、コンパイルエラーとなり、解決できません。

class NewException extends Exception{
public NewException(){
super("エラー");
}
}

これを javac でコンパイルすると、

NewException.java:3: シンボルを見つけられません。
シンボル: コンストラクタ Exception(java.lang.String)
場所  : Exception の クラス
super("エラー");
^
エラー1個

と言われます。
これを読むと「Exception には String を引数にとるコンストラクタはないよ」と言われているように思えるのですが、そんなはずないのでは。。
もし原因がお分かりの方がいらしたら、ご教示いただけるとありがたいです。

Aベストアンサー

非標準のExceptionクラスのクラスファイルかソースファイルがクラスパスやソースパス上に存在していないか確認を。
そのNewExceptionの定義自体は問題ないはず。
たとえば、
class NewException extends java.lang.Exception {
public NewException() {
super("エラー");
}
}
としてNewException.javaをコンパイルするとどうなる?

Qemacsでjavaをコンパイルする方法

emacs(cui)からjavaをコンパイルしたい(シェルに戻ることなく)のですが,どのようにすればいいのでしょうか?
また,emacs上から実行する方法も教えて下さい.

その方法が書かれているサイトなどでも結構です.
宜しくお願いします.

環境はCygwinです.

Aベストアンサー

M-x compile

特に設定してなければ、ミニバッファに
make -k
とでるので、 make を使うならそのまま、そうでないならコンパイルのコマンドを入力してリターン(次回からは先に入力したコマンドラインが出る)
コンパイルの様子は*compilation*バッファに出力される。

CygwinとJavaの組合せで使ったことないので、表示が乱れたり、エラー箇所にジャンプできなかったりするかもしれません。(特に、Windowsネイティブのjavaコンパイラを使った場合)

参考URL:http://www.bookshelf.jp/texi/emacs-20.6-man-jp/emacs_24.html

QJAVAのコンパイルができません

色んなページや雑誌でインストールの方法とかを見てやったのですがうまいこといきません
インストールしたのはj2sdk-1_4_2_06-windows-i586-p.exeで環境変数もユーザー変数に
変数名をpath、変数値をC:\j2sdk1.4.2_06\bin
加えました。
それでもコマンドプロンプトを開いて
javacを実行しましたが
’javac’は内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されていません。
と表示されます。
どうしたらいいのですか?教えてください
ちなみに
システム環境変数では
ユーザー変数に
変数名がJAVA_HOMEには変数値がC:\j2sdk1.4.2_06
変数名がPathには変数値が%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Justsystem\JSLIB32";C:\j2sdk1.4.2_06\bin
となっています

Aベストアンサー

ranxさんのおっしゃる「ダブルクォートの相方」が問題なのではないかと思いますが…。通常ペアで使用されるのですから、ひとつしかないと何か問題が発生するかもしれないということです。
>Justsystem\JSLIB32";C:\~
にあるダブルクォートを削除してみてください。
それでも動かない場合には、次の情報が欲しいです。
パスを設定した後(元の設定方法でも、ratsbaneさんの設定の仕方でもかまいません)にコマンドプロンプトで打ち込んでみて、それぞれの結果を貼り付けてみてください。
ひとつ注意点は、環境変数の設定を行った後はコマンドプロンプトをいったん終了してから確認を行ってください。

java -version↓
path↓
cd C:\j2sdk1.4.2_06\bin↓
dir java*↓

 ※「↓」はエンターです。

Qこのソースのコンパイルできません。

java, サーブレット初心者でコンパイルできません。エラーは以下のとおりです。
初歩的な質問で申し訳ないですがよろしくお願いします。


http://www.javaroad.jp/opensource/js_tomcat2.htm
のページのHelloServlet.javaをコピーしてコンパイルをしようとしたらエラーが、、、。
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println("<BODY>");
out.println(new java.util.Date());
out.println("</BODY>");
out.println("</HTML>");
}
}


ーーーーーーーーーーーーーーーーーーーーーーーーーーー
HelloServlet.java:7: エラー: パッケージjavax.servletは存在しません
import javax.servlet.*;
^
HelloServlet.java:8: エラー: パッケージjavax.servlet.httpは存在しません
import javax.servlet.http.*;
^
HelloServlet.java:10: エラー: シンボルを見つけられません
public class HelloServlet extends HttpServlet {
^
シンボル: クラス HttpServlet
HelloServlet.java:11: エラー: シンボルを見つけられません
public void doGet(HttpServletRequest request,
^
シンボル: クラス HttpServletRequest
場所: クラス HelloServlet
HelloServlet.java:12: エラー: シンボルを見つけられません
HttpServletResponse response)
^
シンボル: クラス HttpServletResponse
場所: クラス HelloServlet
HelloServlet.java:13: エラー: シンボルを見つけられません
throws IOException, ServletException {
^
シンボル: クラス ServletException
場所: クラス HelloServlet
エラー6個

エラー

java, サーブレット初心者でコンパイルできません。エラーは以下のとおりです。
初歩的な質問で申し訳ないですがよろしくお願いします。


http://www.javaroad.jp/opensource/js_tomcat2.htm
のページのHelloServlet.javaをコピーしてコンパイルをしようとしたらエラーが、、、。
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
...続きを読む

Aベストアンサー

クラスパスにそれぞれのクラスが無いって事ですね。

これらのクラスは標準のJava クラスではない(たぶんTomcat とかについてくる独自クラス)なので、それをクラスパスに含めるようにすればコンパイルは通ります。

QJavaコンパイルエラーについて

「Java+MySQL+Tomcatで始めるサーバアプリケーション開発入門」という本の通りに
tomcatをインストールして、http://localhost:8080/ にアクセスした所、
tomcatのトップページが出てこずに以下のようなエラーメッセージを出力しました。

これを対処するには具体的にどのようにすればいいのでしょうか。

宜しくお願い致します。




type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: JSPのクラスをコンパイルできません

JSPファイル: null の中の行: -1でエラーが発生しました

生成されたサーブレットのエラーです:
[javac] Compiling 1 source file

C:\Program Files (x86)\Apache Group\Tomcat 4.1\work\Standalone\localhost\_\index_jsp.java:8: java.lang.Object にアクセスできません。
クラスファイル C:\Program Files (x86)\Java\jre7\lib\rt.jar(java/lang/Object.class) は不正です。
クラスファイルのバージョン 51.0 は不正です。48.0 であるべきです。
削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。
public class index_jsp extends HttpJspBase {
^
エラー 1 個


at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:130)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:293)
at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:340)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:352)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:474)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:184)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534) ・・・・(続く)

「Java+MySQL+Tomcatで始めるサーバアプリケーション開発入門」という本の通りに
tomcatをインストールして、http://localhost:8080/ にアクセスした所、
tomcatのトップページが出てこずに以下のようなエラーメッセージを出力しました。

これを対処するには具体的にどのようにすればいいのでしょうか。

宜しくお願い致します。




type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper....続きを読む

Aベストアンサー

Tomcat 4.1 と表示されてますが、これむちゃくちゃ古いですよ。
お使いの書籍もむちゃくちゃ古いですね。
java 1.4 じゃなきゃいやだといっているようだし、java7 で動くのかな~
Tomcat 7 をお勧めします。

JavaもTomcatも10年前とは様変わりしてます。
Servlet や JSP の作り方、使い方も随分変わりました。
最近の資料を参考にされることをお勧めします。


人気Q&Aランキング

おすすめ情報