web-dev-qa-db-ja.com

openjdkでjarファイルを開く/実行するための「開く」オプションはありません

走った

Sudo apt-get install openjdk-7-jre

それは言います

Reading package lists... Done
Building dependency tree       
Reading state information... Done
openjdk-7-jre is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 229 not upgraded.

ただし、私の/ usr/share/applicationsフォルダーには、openjdk-7-jre.desktopはありません。
openjdkに関連してコンピューター上で見つけた唯一のファイルは、OpenJDK Java 7 Policy Toolです。私は何を間違えましたか?
ダブルクリックで.jarファイルを実行できるようにするために使用しています。私はすでに端末からそれらを実行できますが、Javaのオプションで開くことができません

3
Jack McDowell

何らかの理由でOpenJDK 7用のデスクトップファイルがありません。

$ apt-file list openjdk-7-jre | grep desktop        
openjdk-7-jre: /usr/share/applications/openjdk-7-policytool.desktop

$ dpkg --get-selections | grep openjdk-7
openjdk-7-jre:AMD64             install

必要なエントリを取得するには、次のコマンドを使用してJavaをインストールします。

Sudo add-apt-repository ppa:webupd8team/Java
Sudo apt-get update
Sudo apt-get install Oracle-Java7-installer

その後

Sudo apt-get install Oracle-Java7-set-default

または、OpenJDK7用のdesktopファイルを作成できます

~/.local/share/applications/に新しいファイルを作成します

nano ~/.local/share/applications/openjdk7.desktop

以下の行を追加します。

[Desktop Entry]
Encoding=UTF-8
Name=Open JDK 7 Runtime
Comment=Open JDK 7 Runtime
Exec=/usr/lib/jvm/Java-7-openjdk-AMD64/jre/bin/Java -jar %f
Terminal=false
Type=Application
Icon=Java
MimeType=application/x-Java-archive;application/Java-archive;application/x-jar;
NoDisplay=true

行を置き換える

Exec=/usr/lib/jvm/Java-7-openjdk-AMD64/jre/bin/Java -jar %f

Javaインストールの場所を使用します。インストール済みのJREは次の方法で確認できます。

update-alternatives --display Java

サンプル出力

Java - auto mode
  link currently points to /usr/lib/jvm/Java-9-Oracle/bin/Java
/usr/lib/jvm/Java-7-openjdk-AMD64/jre/bin/Java - priority 1071
  slave Java.1.gz: /usr/lib/jvm/Java-7-openjdk-AMD64/jre/man/man1/Java.1.gz
/usr/lib/jvm/Java-8-openjdk-AMD64/jre/bin/Java - priority 1081
  slave Java.1.gz: /usr/lib/jvm/Java-8-openjdk-AMD64/jre/man/man1/Java.1.gz
/usr/lib/jvm/Java-8-Oracle/jre/bin/Java - priority 1083
  slave Java.1.gz: /usr/lib/jvm/Java-8-Oracle/man/man1/Java.1.gz
/usr/lib/jvm/Java-9-Oracle/bin/Java - priority 1084
Current 'best' version is '/usr/lib/jvm/Java-9-Oracle/bin/Java'.
2
A.B.