2016-12-04 10 views
-2

Javaのエクスポートに問題があります。私は(Eclipseで)作成したJARファイルを起動すると、それはすぐに私にエラーを与え、読書:プロジェクトをJARとしてエクスポートしようとすると、ファイルは起動時に壊れたものとして即座に表示されます

"Error: Invalid or corrupt jarfile C:\Users\Samuel\Desktop\Deep Dungeons.jar"

次のように私のコードは次のとおりです。

import java.util.*; 

public class Main { 
    public static void main(String[] args) { 
     // System Objects 
     Scanner in = new Scanner(System.in); 
     Random rand = new Random(); 

    // Game variables 
    String[] enemies = {"Skeleton" , "Zombie", "Warrior", "Assassin"}; 
    int maxEnemyHealth = 75; 
    int enemyAttackDamage = 25; 

    // Player Variables 
    int health = 100; 
    int attackDamage = 50; 
    int numHealthPotions = 5; 
    int healthPotionHealAmount = 30; 
    int healthPotionDropChance = 50; // Percentage 
    int enemiesKilled = 0; 
    int maxHealth = 100; 

    boolean running = true; 

    System.out.println("Welcome to the Dungeon!"); 

    GAME: 
     while(running) { 
      System.out.println("--------------------------------------"); 

      int enemyHealth = rand.nextInt(maxEnemyHealth); 
      String enemy = enemies[rand.nextInt(enemies.length)]; 
      System.out.println("\t# " + enemy + " has appeared! #\n"); 

      while(enemyHealth > 0) { 
       System.out.println("\t Your HP: " + health); 
       System.out.println("\t " + enemy + "'s HP: " + enemyHealth); 
       System.out.println("\n\tWhat would you like to do?"); 
       System.out.println("\t1. Attack"); 
       System.out.println("\t2. Drink health potion"); 
       System.out.println("\t3. Run!"); 

       String input = in.nextLine(); 
       if(input.equals("1")) { 
        int damageDealt = rand.nextInt(attackDamage); 
        int damageTaken = rand.nextInt(enemyAttackDamage); 

        enemyHealth -= damageDealt; 
        health -= damageTaken; 

        System.out.println("\t> You strike the " + enemy + " for " + damageDealt + " damage"); 
        System.out.println("\t> You recieve " + damageTaken + " in retaliation!"); 

        if (health < 1) { 
         System.out.println("\t You have taken too much damage, you are to weak to go on!"); 
         break; 
        } 
       } else if(input.equals("2")) { 
        if (numHealthPotions > 0) { 
         health += healthPotionHealAmount; 
         if (health > maxHealth) 
          health = 100; 
         numHealthPotions --; 
         System.out.println("\t> You drink a health potion, healing yourself for " + healthPotionHealAmount + "." 
             + "\n\t> You now have " + health + " HP." 
             + "\n\t> You now have " + numHealthPotions + "health potions left.\n"); 
        } else { 
         System.out.println("\t> You have no health potions left! Defeat enemies for a chance to get one!\n"); 
        } 
       } else if(input.equals("3")) { 
        System.out.println("\tYou run away from the " + enemy + "!"); 
        continue GAME; 
       } else { 
        System.out.println("\nInvalid command!"); 
       } 
      } 

      if (health < 1) { 
       System.out.println("You limp out of the dungeon, weak from battle."); 
       System.out.println("You killed " + enemiesKilled + "."); 
       break; 
      } 

      System.out.println("--------------------------------------"); 
      System.out.println(" # " + enemy + " was defeated! # "); 
      enemiesKilled ++; 
      System.out.println(" # You have " + health + " HP left #"); 
      if(rand.nextInt(100) > healthPotionDropChance) { 
       numHealthPotions ++; 
       System.out.println(" # The enemy dropped a health potion! # "); 
       System.out.println(" # You have " + numHealthPotions + " health potion(s). # "); 

      } 
      System.out.println("--------------------------------------"); 
      System.out.println("What would you like to do now?"); 
      System.out.println("1. Continue fighting"); 
      System.out.println("2. Exit dungeon"); 

      String input = in.nextLine(); 

      while(!input.equals("1") && !input.equals("2")) { 
       System.out.println("Invalid command!"); 
       input = in.nextLine(); 
      } 

      if (input.equals("1")) { 
       System.out.println("You continue on your adventure!"); 
      } else if(input.equals("2")) { 
       System.out.println("You exit the dungeon, successful from your adventures!"); 
       System.out.println("You killed " + enemiesKilled + "!"); 
       break; 
      } 
     } 

    System.out.println("######################"); 
    System.out.println("# THANKS FOR PLAYING #"); 
    System.out.println("######################"); 
} 
} 
+0

十分な情報を提供しました。 1)破損したJARファイルは、エクスポートしたJARファイルですか? 2)どのように輸出しましたか? 3)クラスパス上にJARを置くときに正しいパス名を使用していますか? –

+0

あなたのソースコードはこの問題には関係ありません。これは、JARファイルの作成方法や使用方法、あるいはその2つの間で起こっていることと関係します。 –

+0

@ stephen-c問題を見つけ出したので、間違ったタイプのJarファイルをエクスポートしていました。 –

答えて

0

私はこの問題を考え出しました。私がエクスポートしていたときに、通常のJARファイルではなく、実行可能なjarファイルとしてエクスポートしようとしていたはずです。

関連する問題