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

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

ただいまの
回答率

88.36%

相対パスで外部ファイルを書き換える、実行可能jarの作り方(Maven)

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 2,454

nohope2nolife

score 13

前提・実現したいこと

Mavenを用いて、
実行可能jarを実行したときに外部のファイル(txtファイル等)を相対パスで書き換えるようなプログラムを作る。
これをゲームのセーブデータとして実現したいです。

発生している問題・エラーメッセージ

EclipseでMavenを使うところまでできました。
とりあえずMainクラスを書き始めたのですが、実行しようとしたら、
「エラー: メイン・クラスmain.Mainが見つからなかったかロードできませんでした」というエラーが出ます。
Mainクラスをどこに置けばいいのか分からなくなりました。

エラー: メイン・クラスmain.Mainが見つからなかったかロードできませんでした


また、XMLの書き方がわかりません。
Class-Pathのところのファイル指定で、相対パスでアクセスできるようにできることは分かりました。
「???」のところには何を書けば良いですか。

<build>   <plugins>     <plugin>       <groupId>org.apache.maven.plugins</groupId>       <artifactId>maven-jar-plugin</artifactId>       <configuration>         <archive>           <manifest>             <mainClass>???</mainClass>             <addClasspath>true</addClasspath>           </manifest>           <manifestEntries>             <Class-Path>./savedata/</Class-Path>           </manifestEntries>         </archive>       </configuration>     </plugin>   </plugins> </build>

試したこと

主に下記のサイトを参考にしました。
http://qiita.com/greencoffeemaker/items/18b5bb938dbc5a4e21c0

補足情報(言語/FW/ツール等のバージョンなど)

Eclipse 
Mavenを使い始めたばかり(ここの知識がないです)

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

public static void manin メソッドが書かれているクラスを、パッケージ名から指定すれば動作します。

実装例:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.github.a-pz.sample</groupId>
    <artifactId>java8sample</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <packaging>jar</packaging>

    <name>java8sample</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.0.2</version>
                <configuration>
                    <archive>
                        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
                        <manifest>
                            <mainClass>com.github.a_pz.sample.java8sample.Application</mainClass>
                            <addClasspath>true</addClasspath>
                        </manifest>
                        <manifestEntries>
                            <Class-Path>./savedata/</Class-Path>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

参考文献:
寺子屋未満|mavenで実行可能なjarファイルと依存ライブラリを含めたzipアーカイブを作成する

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/06/06 00:08

    ありがとうございます!早速試してみます!

    キャンセル

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

  • ただいまの回答率 88.36%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る