I am new to java and have been trying to learn it and now I have been facing this error even though both the files are in the same folder :
BankTest.java:3: error: cannot find symbol
BankAccount b = new BankAccount( "M J W Morgan", "0012067" );
^
symbol: class BankAccount
location: class BankTest
BankTest.java:3: error: cannot find symbol
BankAccount b = new BankAccount( "M J W Morgan", "0012067" );
^
symbol: class BankAccount
location: class BankTest
BankTest.java:12: error: cannot find symbol
BankAccount c = new BankAccount( args[0], args[1] );
^
symbol: class BankAccount
location: class BankTest
BankTest.java:12: error: cannot find symbol
BankAccount c = new BankAccount( args[0], args[1] );
^
symbol: class BankAccount
location: class BankTest
BankTest.java:15: error: cannot find symbol
BankAccount c = new BankAccount( args[0], args[1], Double.parseDouble(args[2]) );
^
symbol: class BankAccount
location: class BankTest
BankTest.java:15: error: cannot find symbol
BankAccount c = new BankAccount( args[0], args[1], Double.parseDouble(args[2]) );
^
symbol: class BankAccount
location: class BankTest
I have both the BankAccount.java and the BankTest.java in the same folder. I have tried downloading the source code and still face the same error.
javac BankAccount.java works perfectly but javac BankTest.java shows up the error. What am I doing wrong here?
This is the BankAccount.java
public class BankAccount {
private String holderName;
private double balance;
private String number;
public BankAccount( String holderName, String number ){
this.holderName = holderName;
this.number = number;
balance = 0;
}
public BankAccount( String holderName, String number, double balance ){
this.holderName = holderName;
this.number = number;
this.balance = balance;
}
public String getHolderName(){
return holderName;
}
public void setName( String newName ){
holderName = newName;
}
public void deposit( double amount ){
balance += amount;
}
public void withdraw( double amount ){
balance -= amount;
}
public double checkBalance(){
return balance;
}
public String toString(){
String s = number + "\t" + holderName + "\t" + balance;
return s;
}
}
And this is the BankTest.java:
public class BankTest {
public static void main(String[] args) {
BankAccount b = new BankAccount( "M J W Morgan", "0012067" );
System.out.println( b );
b.deposit( 100 );
System.out.println( b );
b.withdraw( 500 );
System.out.println( b );
System.out.println( "Balance is: " + b.checkBalance() );
if( args.length == 2 ){
BankAccount c = new BankAccount( args[0], args[1] );
System.out.println( c );
} else {
BankAccount c = new BankAccount( args[0], args[1], Double.parseDouble(args[2]) );
System.out.println( c );
}
}
}
You need to compile the classes, and have them on your classpath. A good way to manage this is to use the
-doption. Make sure the directory "build" exists.That should compile and make a BankAccount.class in the "build" folder. Then you can do.
That should create the file BankTest.class in the build folder. Then you can run it.
You need to put the .class files on the classpath. That is why the
-doption works well because you know what folder to put on the class path, it will also create directories for packages and put the class files in the correct location.