Cassandraにはjava7u25以降が必要で、iReportには1.6が必要なため、新しいCentOSに2つのJAVA JREをインストールしました。
コマンドラインから各プログラムを起動し、各プログラムに使用するバージョンをどのように通知できますか?
ファイルを変更する必要がありますか/etc/profile
?それではどうでしょうか?
答え1
どちらも連れて行くのは意味がありません。$PATH
一つだけ使うようになるからです。たとえば、シンボリックリンクを別の名前に関連付けることができます。java6
私はJavaで試したことがなく、動作しているかどうかはわかりません。
これを行う最善の方法は、その1つ(おそらく1.6)を同様の場所にインストールし、/opt/java6
1.7をデフォルト値のままにすることです。次に6を使用したい場合:
export PATH=/opt/java6/bin:$PATH
コマンドラインから始めてください。これらすべてを1つのスクリプトに入れることもできます。 Cassandraを削除しない限り、後で同じシェルでCassandraを実行しようとしないでください$PATH
(確認する簡単な方法はですecho $PATH
)。
特定のアプリケーションに対してこれを自動化するには、次のようにします。
#!/bin/sh
export PATH=/opt/java6/bin:$PATH
exec /path/to/application
$PATH
その後、通常のファイル(たとえば)のどこかに配置し、/usr/local/bin
実行可能であることを確認してから(chmod 755 whatever.sh
)そのようにアプリケーションを起動できます。これは$PATH
起動プロセスを妨げません。
答え2
私のプログラムはデフォルトのopenJRE-11を使用して実行できないため、これはターミナルエミュレータで起動したときとデスクトップアイコンランチャーで起動すると動作します。 XFCEでDebian-10ブレーカーを使用する
/bin/sh -c 'JAVA_HOME=/usr/lib/jvm/java-8-oracle/ PATH=$JAVA_HOME/bin/:$PATH /home/username/myapplication'
また試してみてください:
JAVA_HOME=/usr/lib/jvm/java-8-oracle/ PATH=$JAVA_HOME/bin/:$PATH /home/username/myapplication
各Javaバージョンのエイリアスを作成することもできるので、j8o =のような短いコマンド/bin/sh -c 'JAVA_HOME=/usr/lib/jvm/java-8-oracle/ PATH=$JAVA_HOME/bin/:$PATH
と最終的に毎日のコマンドはj8o ./myapplication
デフォルトのjavaを変更するには、update-alternatives --config java
プロンプトに従ってください。必要に応じて、javac(バイトコードコンパイラ)のデフォルト値を設定するためにも同じ方法を使用できます。デフォルト値を変更するにはsudoが必要な場合があります。