我正在尝试使用eclipse编写一个简单的基于文本的游戏,但每当我导出它时,可执行jar文件会出现“无法找到或加载主类”的错误。我有点像菜鸟,所以如果我做些蠢事,请不要犹豫,指出来。我已经搜索了几个小时试图解决它,但还没有拿出任何东西。任何帮助将不胜感激。
这是我的代码:
package dsadsa;
import java.util.Scanner;
public class UserInput {
public static void main(String args[]) {
Scanner Jameson = new Scanner(System.in);
double fans, sans, tans, foans, fians, sians;
System.out.println("You are walking down a road when a mysterious character exits an alleyway and proceeds to follow you.");
System.out.println("Do you 0:run or 1:fight ?");
fans = Jameson.nextDouble();
if (fans == 0) {
System.out.println("You break in to a run down the road, but no matter how fast you go, the man seems to keep pace with you.");
System.out.println("Do you 0:keep running or 1:turn and ask why he is following you ?");
sans = Jameson.nextDouble();
if (sans == 0) {
System.out.println("You continue to try to escape the man, but he is faster then you, he eventually catches up to you and tackles you.");
System.out.println("Do you 0:Scream for help or 1:Fight back ?");
tans = Jameson.nextDouble();
if (tans == 0) {
System.out.println("You scream for help, but there is nobody near to hear you, the man puts a bag over your head and carries you into the alley he originally came out of.");
System.out.println("Game Over.");
} else {
System.out.println("You make an attempt to throw the man off you, but he is incredibly heavy. He raises a fist and puches you in the head, knocking you out. Game Over.");
}
} else {
System.out.println("You turn and ask the man why he is following you, he does not respond. His hoodie is completely covering his face, so that none of his features are visible.");
System.out.println("Do you 0:Ask him again or 1:Walk up to him and pull back his hood ?");
tans = Jameson.nextDouble();
if (tans == 0) {
System.out.println("You ask the man again why he was following you, he once again says nothing. Are you deaf? You ask him.");
System.out.println("The man proceeds to pull a shining blade from within his cloak. You did not expect this. He walks forward to you and promptly slays you.");
System.out.println("Game Over.");
} else {
System.out.println("You walk forward and pull back his hood. You immediately scream in horror, his face is blank except for a slit that must be his mouth.");
System.out.println("He has no lips and his skin is completely white. You break into a sprint, adrenaline rushing through your body. You make it home, and the creature seems to have stayed behind.");
System.out.println("Do you 0:lock the doors or 1:grab a weapon ?");
foans = Jameson.nextDouble();
if (foans == 0) {
System.out.println("You immediately turn and lock the door, terrified by your encounter. You walk upstairs and get into your bed, you lie awake for hours before you finally drift off to sleep.");
System.out.println(" You awake well-rested, but you soon realise that you are no longer in your own house, but in a completely different one. You walk around the house and find nothing unusual,");
System.out.println(" but as you look out the door, you realise there is nothing there. You have been trapped in a simulation by an alien race. Game Over.");
} else {
System.out.println("You run to your room and grab a shotgun that you keep in a gun locker under your bed. You walk to the window and see the creature slowly approaching your door.");
System.out.println("Do you 0:run to lock the door or 1:shoot the creature from your room ?");
fians = Jameson.nextDouble();
if (fians == 0) {
System.out.println("You run to the door and bolt it shut, trapping the creature outside. After a minute, you hear the door handle shaking.");
System.out.println("Do you 0:shoot the creature throught the door or 1:call the police ?");
sians = Jameson.nextDouble();
if (sians == 0) {
System.out.println("You shoot the creature through the door, but this only aggravates it, it bashes through the door and slays you. Game Over.");
} else {
System.out.println("You call the police, telling them that there is a man outside the door trying to get in, so that they won't think you're insane. The End.");
System.out.println(" They come promptly and once they realise that the creature is not really a man, they request permission from the government to shoot, permission is granted, and the creature is killed.");
System.out.println(" You have just stopped a large-scale alien invasion on planet earth, of which the creature was leader, the government thanks you and you are awarded $10,000.");
System.out.println("Congratulations! You have beaten the game! Thanks for playing!");
}
} else {
System.out.println("You shoot the creature through the window and it collapses onto the porch. Unfortunately, the glass shatters back into your face and you eventually bleed out. Game Over.");
}
}
}
}
} else {
System.out.println("You turn and punch the man, but he does not seem to be effected by it, he proceeds to fight back, nailing you in the face and knocking you out clean.");
System.out.println("You awake in a trash bin in the middle of nowhere. Game Over.");
}
Jameson.close();}
}
答案 0 :(得分:3)
您已将基于文本的游戏编码为在命令行中运行,因此您无法将其打包为jar
,因为默认情况下您的操作系统将运行javaw.exe
,这将不支持所需的命令行要从java.exe
运行,如果你查看你的项目> bin应该有一个名为UserInput.class的文件,你必须打开cmd到这个文件夹并运行java UserInput
(没有'.class ' 延期)。但是,如果您想将它打包给技术稍差的人,那么您的解决方案就是使用Swing和ConsoleWindow
创建一个简单的GUI,我发现here。完成后,您可以按如下方式使用它:
//This makes our console object which we can get input or write to, the class mentioned in the link must be in the same directory in Eclipse as this one
try {
Console console = new Console();
}catch (IOException e) {}
//Our input scanner we use console.piOut instead of System.in
Scanner s = new Scanner(console.piOut);
String sample = s.nextLine(); //Gets some input
//Makes a printer where we can write to the console:
PrintWriter printer = new PrintWriter(console.poOut);
//Simple HelloWorld same usage as System.out.println() etc
printer.println("Hello");
printer.println("You said: " + sample);
答案 1 :(得分:1)
您的代码很好,可能是愚蠢的
在eclipse上可以选择将项目导出到jar 1.选择“Runnable JAR file”,然后选择
在屏幕上“Runnable JAR文件规范” 1.在启动配置中选择UserInput - 2.选择目标文件。例如c:\ game.jar 3.图书馆处理 - >将所需的库打包到生成的JAR中 4.完成
您通过命令行运行代码: java -cp game.jar dsadsa.UserInput