2016-03-10 54 views
3

我一直在試圖創建一個程序,讓用戶輸入一些雞蛋來購買和計算價格。我曾嘗試使用掃描儀方法輸入整數,但我似乎無法導入掃描儀方法。無法導入java.util.Scanner

這是我有:

package eggsorder; 
import java.util.Scanner; 
import java.io.IOException; 


public class EggsOrder { 
static final double EGGS_DOZEN = 7.25; 
static final double EGGS_SINGLE = 0.75; 
static final int DOZEN_NUMBER = 12; 

public static void main(String[] args) throws IOException { 
    System.out.println("Enter number of eggs for purchase: "); 
    Scanner enter = new Scanner(System.in); 
    int eggs = enter.nextInt(); 
    System.out.println("You ordered " + eggs + "eggs."); 
    System.out.println("That is " + (eggs/DOZEN_NUMBER) + " dozen eggs  at 7.25 per dozen and " + (eggs % DOZEN_NUMBER) + " additional eggs at 0.75 each"); 
    System.out.println("Which is a total price of " + (((eggs % DOZEN_NUMBER) * EGGS_SINGLE) + ((eggs/DOZEN_NUMBER) * EGGS_DOZEN))); 

這是運行後,我得到的錯誤:

java.lang.ExceptionInInitializerError 
Caused by: java.lang.RuntimeException: Uncompilable source code - cannot find symbol 
    symbol: class Scanner 
    location: class java.util 
at eggsorder.EggsOrder.<clinit>(EggsOrder.java:7) 

代碼作品,未經掃描的方法,但它需要使用它。

我已經嘗試使用java.util和各種其他變化,但無濟於事。

此外,我使用NetBeans的最新版本和Java

+0

你運行java程序的哪個工具? netbeans或eclipse? – sasikumar

+0

你的源代碼中的其他地方是否有錯誤? import語句'import java.util.Scanner'是否給你一個錯誤? –

+1

它可能有助於手動運行乾淨或清除所有緩存的文件 - 尤其是如果您的代碼在命令行中編譯得很好(您是否嘗試過?) – Hulk

回答

1

我猜你正在使用IDE(如Netbeans或eclipse),它允許你運行code,即使某些classes不是compilable。在應用程序運行期間,如果您訪問此class它將導致此例外。

解決方案: - 只需清理您的項目,然後再次構建並運行。

+0

解決了這個問題 看起來完全是一個新項目,通過複製代碼解決了問題。 看來,將.java文件保存到另一個文件夾以及源文件夾中會產生掃描儀錯誤。 – Anonymous

-1

你可以試試這個

java.util.Scanner enter = new java.util.Scanner(System.in); 

我測試你的代碼,它似乎正確導入我的結束。您的IDE可能有些問題嘗試重置它

+0

即使在添加之後,它仍然表示無法找到掃描器符號。 – Anonymous

0

嘗試在Build - > Compiling中取消選中「編譯時保存」設置。

來源:http://forums.netbeans.org/post-45324.html

+0

儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/11574669) – Mike

+0

哦,對不起!我會記住這一點。謝謝! – Rudolf

1

確保您已在系統環境變量設置的路徑,CLASSPATH和JAVA_HOME變量。
1)它可能指Java的舊版本,然後1.5

2)可能不會在PATH,CLASSPATH,JAVA_HOME變量中添加。

順便說一句你的代碼在我的Eclipse中工作正常。