Javaについて学習しているだけの場合、この提案は難しいかもしれませんが、mavenを使用してプロジェクトをビルドすることをお勧めします。これには、ソースファイルとディレクトリの再編成が必要です。次に、アセンブリプラグインを使用して、すべての依存関係を含むzipを作成します。次に、プログラムを実行するには、次のようにします。
unzip myapp.zip
cd myapp
java -cp "lib/*" com.blah.MyApp
(シェルによっては、/ *部分の構文を調整するか、一重引用符を使用するか、引用符を削除する必要がある場合があります)
これがアセンブリプラグインのスニペットです(汎用...バージョン以外はハードコーディングされておらず、規則に従うパス)。これはpom.xmlに含まれます:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/distribution.xml</descriptor>
</descriptors>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<!-- this is used for inheritance merges -->
<phase>package</phase>
<!-- append to the packaging phase. -->
<goals>
<goal>single</goal>
<!-- goals == mojos -->
</goals>
</execution>
</executions>
</plugin>
そして、これがアセンブリファイルの例です(これはpom.xmlに関連してsrc / main / assembly / distribution.xmlにあります):
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"
>
<id>${artifact.version}</id>
<formats>
<format>zip</format>
</formats>
<files>
<file>
<!-- an example script instead of using "java -cp ..." each time -->
<source>${project.basedir}/src/main/bin/run.sh</source>
<outputDirectory>.</outputDirectory>
<destName>run.sh</destName>
<fileMode>0754</fileMode>
</file>
</files>
<fileSets>
<fileSet>
<directory>${project.basedir}/src/main/resources/</directory>
<outputDirectory>/res/</outputDirectory>
<includes>
<!-- just examples... -->
<include>*.sql</include>
<include>*.properties</include>
</includes>
</fileSet>
<fileSet>
<directory>config/</directory>
<outputDirectory>/config/</outputDirectory>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>/lib</outputDirectory>
<excludes>
<!-- add redundant/useless files here -->
</excludes>
</dependencySet>
</dependencySets>
</assembly>
また、EclipseにはGUIに「jarpackager」ユーティリティがありますが、数年前に使用したときはあまり良くないことがわかりました。そして、それが依存関係を処理するとは思わないので、上記の「-cp」引数を取り、すべてのjarを追加するか、自分でlibディレクトリに配置する必要があります。
また、このhttp://fjep.sourceforge.net/もありますが、私はこれを使用したことがありません。彼のチュートリアルでは、彼の最後の行(実行中を示しています)は次のようになります。
> java -jar demorun_fat.jar
Hello