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

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

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

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

Java

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

Q&A

解決済

1回答

1245閲覧

jarファイルを作成してマニフェストファイルを追加して実行しようとしてもメインクラスがロードできませんと出てしまいます

VX2

総合スコア15

JAR

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

Java

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

0グッド

0クリップ

投稿2020/04/01 15:00

App.classとResourceRead.classというファイルを

jar cvf KancolleAggregate.jar *.class

と言うコマンドでjarファイルにしてからjarファイルを解凍してMANIFEST.MFの最後の行に

Main-Class: app.App

を追加して再度jarファイルを作成したのですが、エラー: メイン・クラスapp.Appが見つからなかったかロードできませんでしたと出てしまいます。
自分でも調べてみたのですが解決法が見つからずこちらで質問させていただくことになりました。
ご回答よろしくおねがいします。
以下コードです
App.java

Java

1package app; 2 3import java.util.*; 4import java.io.*; 5 6public class App { 7 public static void main(String[] args) throws Exception { 8 int[] resource=new int[5];//燃料/弾薬/鋼材/ボーキ/家具コインの順番の配列 9 int[] nowResource=new int[5]; 10 ArrayList<Integer> free = new ArrayList<Integer>(); 11 int item=0; 12 int normalCount=0; 13 int specialCount=0; 14 int emotion=0; 15 ArrayList<String> equipment = new ArrayList<String>(); 16 ResourceRead resourceRead= new ResourceRead(resource,nowResource,free,emotion,item,normalCount,specialCount,equipment); 17 18 Arrays.fill(resource,0); 19 Arrays.fill(nowResource,0); 20 String[] guns=readCSV("Guns.csv"); 21 String[] aircraft=readCSV("Aircraft.csv"); 22 String[] special=readCSV("Special.csv"); 23 resourceRead.resourceInit(); 24 Scanner scanner=new Scanner(System.in); 25 while(true){ 26 System.out.println("出た資材に応じて値を入力してEnter"); 27 System.out.println("資材の確認:0\n燃料追加:1\n弾薬追加:2\n鋼材追加:3\nボーキ追加:4\n任意追加:5\n感情追加:6\n特殊戦果表:7\n任意資材の振り分け:8\n結果をクリップボードにコピー:9"); 28 try{ 29 int num=scanner.nextInt(); 30 switch(num){ 31 case 0: 32 resourceRead.printResource(); 33 break; 34 case 1: 35 case 2: 36 case 3: 37 case 4: 38 resourceRead.addResource(num); 39 resourceRead.setNormalCount(++normalCount); 40 break; 41 case 5: 42 resourceRead.addFree(); 43 resourceRead.setNormalCount(++normalCount); 44 break; 45 case 6: 46 resourceRead.setEmotion(++emotion); 47 resourceRead.setNormalCount(++normalCount); 48 break; 49 case 7: 50 System.out.println("特殊戦果表\nすべての資材+3:1\nアイテム:2\n家具コイン:3\n砲類開発表:4\n艦載機開発表:5\n新特殊開発表:6"); 51 int spNum=scanner.nextInt(); 52 switch(spNum){ 53 case 1: 54 resourceRead.all3Resource(); 55 resourceRead.setSpecialCount(++specialCount); 56 break; 57 case 2: 58 resourceRead.setItem(++item); 59 resourceRead.setSpecialCount(++specialCount); 60 break; 61 case 3: 62 resourceRead.setCoin(++resource[4],++nowResource[4]); 63 resourceRead.setSpecialCount(++specialCount); 64 break; 65 case 4: 66 resourceRead.developmentTable(guns); 67 resourceRead.setSpecialCount(++specialCount); 68 break; 69 case 5: 70 resourceRead.developmentTable(aircraft); 71 resourceRead.setSpecialCount(++specialCount); 72 break; 73 case 6: 74 resourceRead.developmentTable(special); 75 resourceRead.setSpecialCount(++specialCount); 76 break; 77 default: 78 System.out.println("入力された値が違います"); 79 } 80 break; 81 case 8: 82 resourceRead.sortingFree(); 83 break; 84 case 9: 85 resourceRead.copyToClipboard(); 86 break; 87 default: 88 System.out.println("入力された値が違います"); 89 } 90 }catch(Exception e){ 91 System.out.println("入力された値が違います"); 92 e.printStackTrace(); 93 } 94 } 95 } 96 97 public static String[] readCSV(String fileName){ 98 FileInputStream fi = null; 99 InputStreamReader is = null; 100 BufferedReader br = null; 101 try{ 102 fi = new FileInputStream(fileName); 103 is = new InputStreamReader(fi); 104 br = new BufferedReader(is); 105 106 String line = br.readLine();//読み込み行 107 108 String[] list = line.split(","); 109 br.close(); 110 return list; 111 }catch (Exception e) { 112 e.printStackTrace(); 113 114 } 115 return null; 116 117 } 118}

ReadResource.java

Java

1package app; 2 3import java.util.*; 4import java.awt.datatransfer.*; 5import java.awt.*; 6 7class ResourceRead{ 8 private int[] resource=new int[5];//燃料/弾薬/鋼材/ボーキ/家具コインの順番の配列 9 private int[] nowResource=new int[5]; 10 private ArrayList<Integer> free = new ArrayList<Integer>(); 11 private int emotion; 12 private int item; 13 private int normalCount; 14 private int specialCount; 15 private ArrayList<String> equipment = new ArrayList<String>(); 16 ResourceRead(int[] resource,int[] nowResource,ArrayList<Integer> free,int emotion,int item,int normalCount,int specialCount,ArrayList<String> equipment){ 17 this.resource=resource; 18 this.nowResource=nowResource; 19 this.free=free; 20 this.emotion=emotion; 21 this.item=item; 22 this.normalCount=normalCount; 23 this.specialCount=specialCount; 24 this.equipment=equipment; 25 } 26 (投稿文字数制限を超えてしまうため以下略)

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

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

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

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

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

guest

回答1

0

ベストアンサー

クラス App と ResourceRead はいずれも package app; が指定されているので、app ディレクトリを作ってその中にクラスファイルを配置する必要があります。

jar cvf KancolleAggregate.jar app/*.class

投稿2020/04/01 15:33

hoshi-takanori

総合スコア7895

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

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

VX2

2020/04/01 16:07

回答ありがとうございます! packageを指定したらそのディレクトリに入れないとダメなんですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問