Java 当尝试将项目导出为JAR时,文件在启动时立即被视为已损坏
我对Java的导出有问题。当我启动我在Eclipse中创建的JAR文件时,它立即给我一个错误,如下所示: 错误:无效或损坏的jar文件C:\Users\Samuel\Desktop\Deep Dungeons.jar 我的代码如下:Java 当尝试将项目导出为JAR时,文件在启动时立即被视为已损坏,java,jar,export,executable,Java,Jar,Export,Executable,我对Java的导出有问题。当我启动我在Eclipse中创建的JAR文件时,它立即给我一个错误,如下所示: 错误:无效或损坏的jar文件C:\Users\Samuel\Desktop\Deep Dungeons.jar 我的代码如下: import java.util.*; public class Main { public static void main(String[] args) { // System Objects Scanner in =
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("######################");
}
}
我解决了这个问题。在导出时,我应该尝试将其导出为可运行的jar文件,而不是常规的jar文件。您已经提供了足够的信息。1损坏的JAR文件是您刚才导出的文件吗?2.你是如何出口的?3当您将JAR放在类路径上时,您是否使用了正确的JAR路径名?值得一提的是,您的源代码与问题无关。这与您如何创建或使用JAR文件有关,或者与两者之间发生的事情有关。@stephen-c我发现了问题所在,我以错误的类型导出了JAR文件。