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

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

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

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

Java

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

Linux

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

Q&A

解決済

1回答

2717閲覧

.jarファイルでライブラリを指定して実行する方法が知りたい

退会済みユーザー

退会済みユーザー

総合スコア0

JAR

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

Java

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

Linux

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

0グッド

0クリップ

投稿2021/09/02 08:17

編集2021/09/03 01:13

コンパイルして.jarファイルを生成してそれを**ライブラリを指定して実行する方法がわかりません。**色々なコマンドンドを試したが実行方法がわかりませんどうやって実行するのでしょうか?

###環境
OS: ubuntu

###参考サイト
参考サイトA: https://www.glamenv-septzen.net/view/1121
参考サイトB: https://www.k-cube.co.jp/wakaba/server/class_path.html

###入力したコマンド

コンパイル

cmmand

1$ javac -cp lib/pdfbox.jar:lib/commons.jar src/*.java -d bin

.jarファイル生成

command

1$ jar cvf PDFCoverter.jar bin 2マニフェストが追加されました 3bin/を追加中です(入=0)(出=0)(0%格納されました) 4bin/ConverterPage.classを追加中です(入=2356)(出=1192)(49%収縮されました) 5bin/Image.classを追加中です(入=344)(出=255)(25%収縮されました) 6bin/test.jarを追加中です(入=6009)(出=5621)(6%収縮されました) 7bin/Converter.classを追加中です(入=4098)(出=2116)(48%収縮されました) 8bin/Main.classを追加中です(入=2738)(出=1591)(41%収縮されました)

.jarではなくそのまま実行(実行できます)

command

1$ java -cp lib/pdfbox.jar:lib/commons.jar:bin Main

###ディレクトリ構造

terminal

1matsuzawa@matsuzawa-System-Product-Name:~/PDFConverter$ ls 2PDFConverter.jar bin lib manifest.mf resource run.sh src 3

###マニフェスト

mf

1Main-Class: Main 2Class-Path: lib/pdfbox.jar lib/commons.jar

###試した事

様々なコマンドを試しました

command

1matsuzawa@matsuzawa-System-Product-Name:~/PDFConverter$ history 2 1 java -cp lib/pdfbox.jar:lib/commons.jar: -jar PDFCoverter.jar 3 2 java -cp lib/pdfbox.jar:lib/commons.jar: -jar PDFCoverter.jar Main 4 3 java -jar PDFCoverter.jar Main 5 4 java -jar PDFCoverter.jar

Github: https://github.com/Shigurechan/PDFConverter

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

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

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

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

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

guest

回答1

0

ベストアンサー

「実行可能なjarの作り方」で検索すれば丁寧な解説がいくらでも見つかると思うんですけどね…

$ jar cvf PDFCoverter.jar bin

これが間違っています。この場合、jar内に入っているファイルのパスが bin/ で始まってはいけません。

jar cvfm PDFConverter.jar manifest.mf -C bin . でしょうか。

ちゃんとjarを作成できれば、実行は 4 でできるはずです。

投稿2021/09/02 09:07

編集2021/09/02 13:55
int32_t

総合スコア21695

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

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

退会済みユーザー

退会済みユーザー

2021/09/02 12:36

なるほど。以下ようにコマンドを打ちましたがライブラリを使うコードでエラーになるります。 $ java -jar PDFConverter.jar windows: Cntrl + z 開始 linux: Cntrl + D 開始 Directory or File > /home/matsuzawa/ダウンロード/COMIC Kairakuten 2021-08 [Digital] /home/matsuzawa/ダウンロード/COMIC Kairakuten 2021-08 [Digital] 0 >: /home/matsuzawa/ダウンロード/COMIC Kairakuten 2021-08 [Digital] Directory or File > Exception in thread "Thread-0" java.lang.NoClassDefFoundError: org/apache/pdfbox/pdmodel/PDDocument at Converter.GeneratePDF(Converter.java:95) at Converter.run(Converter.java:155) Caused by: java.lang.ClassNotFoundException: org.apache.pdfbox.pdmodel.PDDocument at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519) ... 2 more 終了: 9117 matsuzawa@matsuzawa-System-Product-Name:~/PDFConverter/bin$
int32_t

2021/09/02 13:55

PDFConverter.jar は bin/ の中にできて欲しくないので、ちょっと違いましたね。 cd bin jar cvfm ../PDFConverter.jar ../manifest.mf * cd .. java -jar PDFConverter.jar jarコマンドのマニュアルを読むと、-C を使えば cd いらんようです。 jar cvfm PDFConverter.jar manifest.mf -C bin . java -jar PDFConverter.jar
退会済みユーザー

退会済みユーザー

2021/09/03 01:01

なるほど。以下ようにしたのですがこいった例外がでるのですがライブラリのパスを通す必要があるのではないのでしょうか? matsuzawa@matsuzawa-System-Product-Name:~/PDFConverter$ ls PDFConverter.jar bin lib manifest.mf resource run.sh src matsuzawa@matsuzawa-System-Product-Name:~/PDFConverter$ jar cvfm PDFConverter.jar manifest.mf -C bin . マニフェストが追加されました ConverterPage.classを追加中です(入=2356)(出=1192)(49%収縮されました) Image.classを追加中です(入=344)(出=255)(25%収縮されました) test.jarを追加中です(入=6009)(出=5621)(6%収縮されました) Converter.classを追加中です(入=4098)(出=2116)(48%収縮されました) Main.classを追加中です(入=2738)(出=1591)(41%収縮されました) matsuzawa@matsuzawa-System-Product-Name:~/PDFConverter$ java -jar PDFConverter.jar windows: Cntrl + z 開始 linux: Cntrl + D 開始 Directory or File > /home/matsuzawa/ダウンロード/COMIC Kairakuten 2021-08 [Digital] /home/matsuzawa/ダウンロード/COMIC Kairakuten 2021-08 [Digital] 0 >: /home/matsuzawa/ダウンロード/COMIC Kairakuten 2021-08 [Digital] Directory or File > Exception in thread "Thread-0" java.lang.NoClassDefFoundError: org/apache/pdfbox/pdmodel/PDDocument at Converter.GeneratePDF(Converter.java:95) at Converter.run(Converter.java:155) Caused by: java.lang.ClassNotFoundException: org.apache.pdfbox.pdmodel.PDDocument at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519) ... 2 more 終了: 9296
int32_t

2021/09/03 01:09

manifest.mf に Class-Path が指定してあるので、これで動くはずなんですけどね。なんでですかねえ。
退会済みユーザー

退会済みユーザー

2021/09/03 02:09

できました。マニュフェストですが最後に改行した空白の一行が必要みたいです’ 「 Main-Class: Main Class-Path: lib/pdfbox.jar lib/commons.jar 」
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問