2014-04-24 32 views
0

我想用eclipse寫一個簡單的基於文本的遊戲,但是每當我導出它時,可執行jar文件就會提示「無法找到或加載主類「。我有點小事,所以如果我做了一些愚蠢的事情,請不要猶豫,指出。我已經搜索了幾個小時試圖弄清楚,但沒有提出任何事情。任何幫助將不勝感激。導出後Java不會運行我的eclipse程序

這裏是我的代碼:

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();} 
} 

+1

看問題描述,你的代碼沒有問題。你的jar是否有MANIFEST.MF,你的MANIFEST.MF是否定義了「主類」。看看這個[page](http://docs.oracle.com/javase/tutorial/deployment/jar/appman.html) – vijar

+0

我強烈建議不要依靠你的IDE來構建目的。通常情況下,只要您的代碼在構建的服務器上構建,並且不保持構建配置的最新狀態,就會遇到問題。至少每天一次手動構建您的項目。手動使用Ant,Maven或Gradle等。 –

回答

3

您已經編寫基於文本的遊戲,在命令行中運行,因此你不能打包爲一個jar,因爲默認情況下你的操作系統將運行javaw.exe贏得't不支持命令行,它需要從java.exe運行,如果你在你的項目> bin中看到應該有一個名爲UserInput.class的文件,你必須打開cmd到這個文件夾並運行java UserInput(不帶'.class ' 延期)。但是,如果你想將它打包成一個技術稍差的人,那麼你的解決方案就是使用Swing和一個ConsoleWindow製作一個簡單的GUI,我發現這個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

你的代碼是好的,可能是一些愚蠢的

在Eclipse上有導出項目到罐子 1.選項中選擇「運行的JAR:一旦你做出你可以按如下方式使用它文件「,然後下一步

在屏幕上的」可運行的JAR文件規範「 1.在啓動配置中選擇UserInput - 2.選擇目標文件。例如C:\ game.jar 3.庫處理 - >包裝所需的庫到生成JAR 4.完成

的您通過命令行運行代碼: java命令game.jar dsadsa.UserInput

相關問題