0

この質問がインターネット上で何度か聞かれたことは知っていますが、この問題を解決するために約 1 週間を費やしましたが、ほとんど運がありませんでした。

Windows PC のローカル Apache サーバーで開発した Web プロジェクトを展開するために、リモートの Linux Ubuntu 11.0、32 ビット サーバーにJavaCommAPI (rs232 との通信を可能にするアーカイブされた Java パッケージ)をインストールしようとしています。

私を困惑させているのは、javax.comm.properties、comm.jar、および libSerialParallel.so を正しく配置することにより、.war Web プロジェクトを別の 32 ビット LinuxMint16 PC 上のローカル Apache サーバーにデプロイできることです。ファイルをそれぞれの場所に配置します。

System.getProperty("java.library.path"); を使用します。正しいライブラリ パスを見つけて、正しいファイルをインストールします。

私の LinuxMint16 では:

javax.comm.properties -- /usr/lib/jvm/java-7-openjdk-i386/jre/lib

comm.jar -- /usr/lib/jvm/java-7-openjdk-i386/jre/lib/ext

libSerialParallel.so -- /usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386

....動作します!

私のリモートUbuntuサーバーでは、報告されたライブラリパスに対してまったく同じことをしました

(例: /usr/local/jdk/jdk1.7.0_45/jre/lib/javax.comm.properties ;

/usr/local/jdk/jdk1.7.0_45/jre/lib/ext/comm.jar ;

/usr/local/jdk/jdk1.7.0_45/jre/lib/i386/libSerialParallel.so)

...失敗 =(

注意事項: BuildPath ウィザード (プロジェクトを右クリック --> [ビルド パス] --> [外部 jar を追加]) を使用して、必要な apache jar と comm.jar を Eclipse のライブラリに追加しました。コマンドラインからのみアクセスしているリモートサーバーには明らかに使用できません。これが何らかの影響を与えているのではないでしょうか?

Java コンソールからのエラー出力 (System.err) をリモート サーバー用の別のファイルに出力しようとしました。そのフィードバックは、LinuxMint PC ですべてのファイルを並べ替えるのに非常に役立ちました。

    PrintStream ps = new PrintStream(pathName);
    System.setOut(ps);
    System.setErr(ps);

これも奇妙なことに、ストリームを LinuxMintPC のローカル .txt ファイルに出力するのに奇妙に機能していますが、リモートの ubuntu サーバーで指定したファイルには出力していません。

私はここで本当に頭がおかしいです!! システムの適切なバージョンを混ぜ合わせて、スムーズな動作を妨げていますか? ここからどのように進めればよいかわかりません。誰かが何か洞察を持っているとしたら、私は幸せで死ぬでしょう。ありがとう

4

1 に答える 1

1

ubuntuにOPEN JDK7をインストールし、ファイルを適切なライブラリパスに配置する必要があり(上記のとおり)、今では機能します。

于 2014-01-31T21:33:52.837 に答える