0

私はLinuxの新しいユーザーです。jdk1.7.0_02.rpm をインストールし、次を使用してプログラムをコンパイルjavac tester.javaしようとしました。ファイルを実行しようとすると、java testerこれらのエラーが発生します。

Exception in thread "main" java.lang.UnsupportedClassVersionError: tester : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)

メイン クラスが見つかりませんでした: テスター。プログラムは終了します。

次に、Javaバージョンを確認しましたが、次のとおりです。

java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.4) (fedora-61.1.10.4.fc16-i386)
OpenJDK Server VM (build 20.0-b11, mixed mode)

このバージョンを変更するにはどうすればよいですか? jre1.7.0_02 もインストールしましたが、何も変わりませんでした。

これが起こっていることです:

ここに画像の説明を入力

4

5 に答える 5

4

ターミナルで実行します。

sudo update-alternatives --config java

Java の優先バージョンを選択します。探しているバージョンがオプションとして表示されない場合は、このサイトを参照してください。

于 2012-01-27T06:04:48.440 に答える
2

クロスコンパイル オプションを使用しますjavac-sourceおよびバージョンを指定し-target、プロンプトに従って他のオプションを指定します。


では、方法を教えてください。

javac -source 1.6 -target 1.6 -bootclasspath /path/to/1.6/j2se/rt.jar *.java

source/を指定するtargetと、1.7 コンパイラはオプションを使用するように警告し-bootclasspathます。これは、ソースで参照されているクラス、メソッド、および属性がターゲット Jar で使用可能であることを確認するために重要です。コンパイラの以前のバージョンは、bootclasspath.

于 2012-01-27T06:31:09.460 に答える
0

OK、最初に、Javaアプリケーションビルドをrootとして実行するべきではありません。

sudo機能を備えたユーザーアカウントに変更し、絶対に必要になるまでrootprivを使用しないでください。

javacがバージョン7に更新されたようですが、javaは更新されていません。

これは何を返しますか:

javac -version

また、JAVA_HOME環境変数の現在の値もお知らせください。このような:

set | grep ^JA
于 2012-01-27T06:07:23.720 に答える
0

Javaプログラムの実行時にJRE1.7を使用するには、システムが必要です。これを実現するには、JAVA_HOMEがJRE1.7に正しく設定されていることを確認してください。

export JAVA_HOME=/path/to/JRE1.7

また、PATH-Variableが適切なjava/binディレクトリを指していることを確認してください。

export PATH=$PATH:/path/to/JRE1.7/bin

再起動/ログアウトを超えてこれらの環境変数を永続化することは、使用しているLinuxディストリビューションによって異なります...

編集:明確にするために:バージョン1.7でコンパイルしている場合(デフォルトでターゲット1.7に)、> =1.7JREを使用する必要があります。

したがって、2つのオプションがあります。

  1. JRE 1.7を使用して、1.7でコンパイルしたプログラムを実行します(上記の概要を参照)。

  2. コンパイル時にjavacへの「-target1.6」cmdline-argumentを使用して1.6準拠のコードを作成します。
于 2012-01-27T07:09:00.687 に答える
0

理由もなく、システム環境の JAVA_HOME も設定する必要があります。ただし、アプリのプロパティで JAVA_HOME を設定した場合。

于 2013-09-06T08:52:16.410 に答える