对于简单的java程序,命令提示符“访问被拒绝”错误

时间:2013-02-16 13:41:12

标签: java windows cmd

我使用以下代码创建了源文件.java:

// bank.java
// demonstrates basic OOP syntax
// to run this program: C>java BankApp
////////////////////////////////////////////////////////////////
class BankAccount
{
private double balance;                   // account balance
public BankAccount(double openingBalance) // constructor
{
balance = openingBalance;
}
public void deposit(double amount)        // makes deposit
{
balance = balance + amount;
}
public void withdraw(double amount)       // makes withdrawal
{
balance = balance - amount;
}
public void display()                     // displays balance
{
System.out.println(“balance=” + balance);
}
}  // end class BankAccount
////////////////////////////////////////////////////////////////

class BankApp
{
public static void main(String[] args)
{
BankAccount ba1 = new BankAccount(100.00); // create acct
System.out.print(“Before transactions, “);
ba1.display();                         // display balance
ba1.deposit(74.35);                    // make deposit
ba1.withdraw(20.00);                   // make withdrawal
System.out.print(“After transactions, “);
ba1.display();                         // display balance
}  // end main()
}  // end class BankApp

我使用命令“javac”编译它并获得了两个类文件 - 每个文件用于一个类。 我尝试使用cmd运行它,但在输入后我收到错误“访问被拒绝”:

C:\new>java -cp <C:\new> BankApp.class

输入后:

C:\new>java BankApp.class

我得到:错误:无法找到或加载主类BankApp.class

2 个答案:

答案 0 :(得分:3)

此命令

C:\new>java -cp <C:\new> BankApp.class

尝试从C:\new重定向输入并将输出重定向到BankApp.class。在Windows命令提示符(以及大多数其他命令提示)中,<重定向输入和>重定向输出。另外,当您运行Java类时,不指定.class,而是提供名称,而不是文件名。

如果您的目标是确保当前目录位于类路径中,那么您需要的是:

C:\new>java -cp . BankApp

如果您的目标是确保目录c:\new在类路径中(即使它不是当前目录,尽管它在您的示例中),您正在寻找的是:

C:\new>java -cp c:\new BankApp

请注意,您首次尝试的命令可能已删除或截断您的BankApp.class文件,因此您可能需要重新编译它才能执行上述操作。

答案 1 :(得分:1)

你只需要:

java BankApp

或者

java -cp c:\new BankApp

Java采用的名称,而不是文件 ...如果您使用<>,则会询问Windows shell执行重定向,这是你不想要的。