この質問がインターネット上で何度か聞かれたことは知っていますが、この問題を解決するために約 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 サーバーで指定したファイルには出力していません。
私はここで本当に頭がおかしいです!! システムの適切なバージョンを混ぜ合わせて、スムーズな動作を妨げていますか? ここからどのように進めればよいかわかりません。誰かが何か洞察を持っているとしたら、私は幸せで死ぬでしょう。ありがとう