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」を使用してコンパイルし、2 つのクラス ファイルを取得しました。それぞれが 1 つのクラスに対応しています。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シェルにリダイレクトを実行するように要求しますが、これは望ましくありません。<>

于 2013-02-16T13:44:38.147 に答える