回答編集履歴
1
executable jarの作り方を追記
answer
CHANGED
@@ -7,4 +7,54 @@
|
|
7
7
|
コマンドプロンプトに、どんなコマンドを打ちましたか?
|
8
8
|
|
9
9
|
jarファイルを解凍する方法を知ってますか?
|
10
|
-
もし知ってるなら、適当なフォルダに解凍して、その中に含まれる`MANIFEST.MF`というファイルの内容を教えてください。
|
10
|
+
もし知ってるなら、適当なフォルダに解凍して、その中に含まれる`MANIFEST.MF`というファイルの内容を教えてください。
|
11
|
+
|
12
|
+
### 2020-11-24追記
|
13
|
+
`java -jar hoge.jar`で実行するためには、`hoge.jar`の中に、`henkan.App`だけでなく、すべての依存ライブラリのクラスファイルが含まれている必要があります(いわゆるexecutable jar)。
|
14
|
+
おそらく、`mvn package`で作ったjarファイルには、`henkan.App`のクラスファイルだけが入ってるのではないでしょうか(`jar tvf hoge.jar`すればわかりますよね)。その場合、実行時には、依存ライブラリへのクラスパスを指定する必要があります。
|
15
|
+
|
16
|
+
以下の方法でexecutable jarを作れると思うので、お試しください(これがオーソドックスな方法かどうかは分かりませんが)。
|
17
|
+
|
18
|
+
(1)`pom.xml`に以下のプラグインを追加
|
19
|
+
|
20
|
+
```xml
|
21
|
+
<plugin>
|
22
|
+
<groupId>org.apache.maven.plugins</groupId>
|
23
|
+
<artifactId>maven-assembly-plugin</artifactId>
|
24
|
+
<version>2.3</version>
|
25
|
+
<configuration>
|
26
|
+
<archive>
|
27
|
+
<manifest>
|
28
|
+
<mainClass>
|
29
|
+
henkan.App
|
30
|
+
</mainClass>
|
31
|
+
</manifest>
|
32
|
+
</archive>
|
33
|
+
<descriptorRefs>
|
34
|
+
<descriptorRef>with-dependencies</descriptorRef>
|
35
|
+
</descriptorRefs>
|
36
|
+
</configuration>
|
37
|
+
<executions>
|
38
|
+
<execution>
|
39
|
+
<phase>package</phase>
|
40
|
+
<goals>
|
41
|
+
<goal>single</goal>
|
42
|
+
</goals>
|
43
|
+
</execution>
|
44
|
+
</executions>
|
45
|
+
</plugin>
|
46
|
+
```
|
47
|
+
|
48
|
+
(2)ターミナルで以下のコマンドを実行
|
49
|
+
|
50
|
+
```
|
51
|
+
$ mvn clean compile assembly:single
|
52
|
+
```
|
53
|
+
|
54
|
+
これで、`target`ディレクトリの下に`xxxxx-with-dependencies.jar`ができると思います。
|
55
|
+
|
56
|
+
(3)実行する
|
57
|
+
|
58
|
+
```
|
59
|
+
$ java -jar target/xxxxx-with-dependencies.jar
|
60
|
+
```
|