web-dev-qa-db-ja.com

java JARファイルはWindowsでは機能しますがLinuxでは機能しません(centos-7.6)

STIGViewer-2.8.jarファイルがあります。これは、Microsoft Windows 7または10では正常に機能しますが、Centos-7.6 linuxでは機能しません。 LinuxではJava STIGViewer-2.8.jarなる

Error.  Could not find or load main class StigViewer-2.8.jar

私が持っています jdk-8u191-linux-x64.rpmインストール済み、これはCentosですGUIを使用するサーバーなので、フルグラフィックスのランレベル5にいます。他のすべてが機能しています... Libreoffice、freecad、unameit。 jarファイルをLinuxで実行するために必要ないくつかのトリックはありますか?それともJava事で、jarファイルの問題Windowsのみですか?

2
ron

Red HatがRHEL 7のこの問題を文書化したことを追加したいと思います。 DISA STIGビューアはOpenJDKでは実行されません 。このリンクが機能するにはRed Hatログインが必要なので、ここで重要な情報を再現します。

環境:Red Hat Entreprise Linux 7(RHEL7)、OpenJDK 1.8

問題:DISA STIGViewerがOpenJDKで実行されない:

$ Java -jar ./STIGViewer-2.7.1.jar
Error: Could not find or load main class stigviewer.STIGViewer

解決策:そのアプリケーションには、OpenJDKではなくOracleのJREを使用します。 OracleのJREまたはJDKは、OracleのWebサイトからダウンロードする必要があります。

根本原因:DISA STIGViewerアプリケーションはOpenJDKによって提供されないJavaFXを内部で使用するため、OpenJDKを使用できません。

デフォルトのJava 8バイナリはJava-1.8.0-openjdk パッケージ。

STIG Viewer 2.xユーザーガイド では、これについてセクション1.1でも説明しています。

このツールはJavaで作成され、単一のJARファイルとして提供されます。 Javaランタイム環境(JRE)を実行するためにユーザーのマシンにインストールする必要があります(、つまりSTIG Viewerツールを実行するには、Oracle Javaが必要です)これにより、JREが生成された任意のオペレーティングシステムでプログラムを実行できます。これにより、プログラムは、現在ログインしているユーザー。

1
Haxiel

ソフトウェアGUIを使用してEPELリポジトリーをアクティブにする削除済みすべてOpenJavaまたはOpenJDKもの; Javaで検索を行い、適切な判断でチェックを外しました。 json-glibまたはpython-javapackagesまたはtzdata-Javaのようないくつかのことは、私は放っておきました。

次に、Oracleからのyum install jdk-8u191-linux-x64.rpmを実行しました。

Openの文言がないjdk1.8-2000:1.8.0.201-fcsとしてソフトウェアGUIに表示され、すべてのOpenJavaまたはOpenJDKがインストールされていません。

その後機能Java -jar StigViewer.jarのみを使用

Java StigViewer.jarだけを実行してもエラーが発生します。Windowsエクスプローラから.jarファイルをダブルクリックすると、コンテナのようにファイルが開きます。

CentOS 7.6をインストールする場合;私はGUIを備えたサーバーを選択しましたJavaものに選択肢があったと思いますが、もし私が選択しなかったことがわかっていれば、centosがopenjavaを自動的にインストールするようですある程度。

更新:

Oracle jdk-8u201-linux-x64.rpmは/usr/bin/Javaになりますlink/etc/alternatives/Javaになり、次に/usr/Java/jdk1.8.0_201-AMD64/jre/bin/Javaを指します

これはOracleですJavaこれで動作するstigviewer.jarJava -jar stigviewer.jarのみのファイル

Octaveplplotなどの他のソフトウェアは、依存しますOpenJDK Headless Runtime Environment 8これはJava-1.8.0-openjdk-headless-1:1.8.0.201であり、/usr/bin/Java/etc/alternatives/Javaに引き続きリンクしていて、そのリンクこのstigviewer.jarファイルの作業者ではない/usr/lib/jvm/Java-1.8.0-openjdk-1.8.0.201.b09-2.el7_6.x86_64/jre/bin/Javaに。

そのため、必要なときにOracleの/usr/Java/jdk1.8.0_201-AMD64/jre/bin/Javaを手動で実行することを忘れないでください。 OpenJDKがインストールされると、Oracle RPMはリンクを上書きしないようです。

3
ron