質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

2425閲覧

linux上でjarファイルが実行できません

tom127

総合スコア11

JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2018/07/20 02:35

編集2018/07/20 02:51

お世話になっております。

Eclipseで作成したJavaFxのプログラム(*)をWindows7とLinux(CentOS7)環境で実行したいのですが、
Linux上で実行すると、「エラー:メイン・クラスappplication.Mainが見つからなかったかロードできませんでした」と表示され実行できません。
Windows7環境では、jarファイルをダブルクリックすることで問題なく実行でき、作成したGUIウィンドウが起動します。

*GUIウィンドウ上で入力した値が記載されたファイルを出力するプログラムです

試しているLinux実行時コマンドは以下の通りです。
「$ java -jar Test.jar」

ソースは以下の通りです。
・Main.java

package application; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.layout.AnchorPane; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) { try { AnchorPane root = (AnchorPane) FXMLLoader.load(getClass().getResource("Form.fxml")); Scene scene = new Scene(root); scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); primaryStage.setScene(scene); primaryStage.setTitle("Test"); primaryStage.show(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { launch(args); } }

・META-INF/MANIFEST.MF

Manifest-Version: 1.0 Main-Class: application.Main

「export -p」コマンドでdeclare -x JAVA_HOME="/usr/lib/jvm/jre-1.8.0-openjdk"と表示されています。
Eclipse上でjarファイルを作成する際に「実行可能なjarファイルを作成」を選択しています。
実行構成をいじってみましたが、いずれもLinux上では動作しませんでした。

Linux上の環境に不備があるのか、Eclipseでjarファイル生成時の設定が悪いのか、ソースコード上に問題があるのか等 分かる方がいましたらご教授をお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

unz.hori

2018/07/20 02:41

export PATH=$PATH:$JAVA_HOME/binをやった後でも動きませんか?
unz.hori

2018/07/20 02:43

最悪、$ java -jar 実行対象jarで動かす手も...
tom127

2018/07/20 02:47

回答ありがとうございます。ただ、上記コマンド実行後も変わらずです。。Windows上で作成したjarファイルのみをLinux上に持ってきているのですが、その方法では問題がありますでしょうか。#知識不足で申し訳ありません
unz.hori

2018/07/20 02:49

基本的にOS依存はしないと思います
unz.hori

2018/07/20 02:49

java -versionでJavaのバージョンは出力されますか?
tom127

2018/07/20 02:53

ありがとうございます。javaのバージョンはこのように出力されました。「openjdk version "1.8.0_131" OpenJDK Runtime Environment (build 1.8.0_131-b12) OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)」
rubytomato

2018/08/08 14:38

WindowsのJavaはlinuxと同じOpenJDK 1.8.0_131でしょうか? それとlinuxと同様にコマンドラインからjava -jar Test.jarとして実行できますか?
tom127

2018/08/09 02:22

コメントありがとうございます。Windows上のコマンドラインからjava -jar Test.jarとして実行できました。しかし、WindowsはOracleの"9.0.4"を使っていました、このJDKの違いが原因でしょうか?無知ですみませんが、ご教示いただけるとありがたいです。
unz.hori

2018/08/09 03:00

各OS毎にGUI環境でのファイルアイコンダブルクリックの制御は違いますね。拡張子によってはアプリケーションに紐づいているアプリケーションを起動するとか...
unz.hori

2018/08/09 03:02

"linux jar 実行 ダブルクリック"とかでググって調べてみることをお勧めします。
rubytomato

2018/08/09 09:00

原因かどうかはわからないのですが、Windows(Eclipse)のOracle JDK 9でビルドしたのであれば、それをlinuxのOpenJDK 1.8で動かそうとしている点が気になります。あとlinuxにインストールされているのはJDKではなくJREですか?もしそうであれば一度JDKにして確認するのはどうでしょうか
guest

回答1

0

ベストアンサー

OpenJDKにはJavaFXライブラリが含まれていないので、JavaFXアプリケーションのメインクラスをロードすることができずエラーとなります。

投稿2018/09/01 10:46

boochnich

総合スコア194

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tom127

2018/09/03 08:45

回答ありがとうございます。 色々調べてみましたが、JavaFXライブラリが入っていなかったのですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問