0

我使用以下代码创建了源文件 .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

4

2 回答 2

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文件,因此您可能必须重新编译它,然后才能执行上述操作。

于 2013-02-16T13:44:30.287 回答
1

您只需:

java BankApp

或者

java -cp c:\new BankApp

Java 采用的名称,而不是文件的名称……如果您使用<并且>要求 Windows shell 执行重定向,这是您不想要的。

于 2013-02-16T13:44:38.147 回答