3

つまり、基本的には端末依存の Java プログラムを作成し、配布を開始したいと考えていますが、コードを提供しない限り、それを行う方法を見つけることができないようです。.jar ファイルを作成する場合、Windows でのみ機能します。

Linux (CentOS) で実行しようとすると、

  Exception in thread "main" java.lang.UnsupportedClassVersionError:

   Could not find the main class: MyClass. Program will exit.

コマンド java -jar MyJar.jar を使用して両方で実行しています。このプログラムで JavaMail を使用しているため、おそらく問題になる可能性があります。クラスは 1 つしかなく、その中にメインがあります。

ユーザーがコードを読むことができないプログラムを配信するためにjarファイルを使用することに代わるものさえあれば、それも素晴らしいことです。ありがとう!

4

4 に答える 4

3

Jar のコンパイルとビルドに実際に使用した JDK は、クライアントの Linux マシンにインストールされているものよりも新しいものです。そのとき、JVM は

Exception in thread "main" java.lang.UnsupportedClassVersionError:

コンソールで次のコマンドを実行して、クライアントに Java のバージョンを報告するよう依頼します。

java -version

次に、 Eclipseを使用している場合は、それに応じてプロジェクトのターゲット ランタイムを設定します。自分で Java ソース ファイルをコンパイルする場合

javac -target 1.4 source/MyClass.java 
于 2013-07-03T19:30:33.353 に答える
0

他の人が説明したバージョンの問題と、.java ファイルを配布する必要がないという事実に加えて、アプリケーションの jar ファイルのマニフェスト ファイルに Class-Path エントリを設定して、.java ファイルを参照する必要があります。アプリケーションの jar ファイルと JavaMail の jar ファイルをユーザーに配信する必要があります。それを正しく理解するのは難しい場合があります。この問題を解決するには、 One-JARを参照してください。

于 2013-07-03T21:03:39.410 に答える
0

私には、コードを実行している互換性のないバージョンでコードをコンパイルしたことが問題のように思えます。たとえば、JDK 1.7 でコンパイルしましたが、CentOS OS には Java 1.5 バージョンしかインストールされていません。 この件に関する詳細な情報を次に示します。

あなたの質問のタイトルについては、いいえ、実行するために Java ソースを提供する必要はありません。そのため、何か他のことがうまくいかないのです。ほとんどの場合、私が出した答えです。

于 2013-07-03T19:30:43.353 に答える