1

Mac で完全に動作する .jar ファイルがありますが、Web サーバーで実行する必要があります...そのため、コマンド ラインを使用してこのファイルを動作させると、次のエラーが表示されます。

[root@mysite.com dist]$ java -jar PDFparser.jar ffive.pdf
Exception in thread "main" java.lang.NoSuchMethodError: method java.lang.String.getBytes with signature (Ljava.nio.charset.Charset;)[B was not found.
at org.apache.commons.io.IOUtils.write(IOUtils.java:1527)
at org.apache.commons.io.FileUtils.writeStringToFile(FileUtils.java:1929)
at org.apache.commons.io.FileUtils.writeStringToFile(FileUtils.java:1962)
at pdfparser.PDFparser.main(PDFparser.java:171)

私はその.jarアプリを作成した人ではありませんが、私のMacで必要な方法で動作します...しかし、サイトには必要なので、Webサーバーで動作する必要があります...誰か知っていますかこのエラーは何を意味し、何をすべきですか? 私は Java 言語を知らないので、私が非常に愚かな人間であるように、私が何をすべきかを説明してくれたら素晴らしいと思います... 一歩一歩... :)

4

3 に答える 3

5

String.getBytes(Charset c)Java 1.6 以降でのみ利用可能です。ほとんどの場合、Mac の Java バージョンは 1.6+ ですが、ターゲット サーバーは 1.6 未満です。

この方法を使用するには、Web サーバーで少なくとも Java 1.6 に更新する必要があります。

ソース

于 2013-01-30T17:41:58.470 に答える
1

これ

java.lang.NoSuchMethodError: method java.lang.String.getBytes with signature (Ljava.nio.charset.Charset;)[B was not found.

jar ファイル内のクラスが、Java インストールで対応するメソッドを見つけることができなかったことを意味します。あなたのjarファイルは、WebサーバーにインストールされているJavaバージョンよりも新しい/新しいJavaバージョンで作成されたと思われます.

作業中のサーバーで、次のように入力します

$ java -version

Web サーバーで同じことを行い、バージョン番号を比較します。

于 2013-01-30T17:41:16.123 に答える
0

Mac または Web サーバーに問題はありません。jar は下位バージョンの Java (1.5 以下) で作成されましたが、String.getBytes() は Java 1.6+ でのみ使用できます。

バージョンの不一致があります。

于 2013-01-30T17:56:11.353 に答える