I have a main directory (contains main.java) and a subdirectory( contains child.java).
My problem is how to instantiate child.java in main.java
I have made the child class public. & added the line#1 as package mypackage
I have compiled child.class with javac -d . child.java which creates a new mypackage directory.
I tried to import child class in main as follows: import subdirectory.mypackage.* (note -d option places the child.class inside mypackage folder)
I compiled the main.java file with "javac main.java"
I get the following error:
mainAESE.java:9: cannot access subdirectory.child
bad class file: RegularFileObject[./subdirectory/child
class file contains wrong class: mypackage.child
Please remove or make sure it appears in the correct subdirectory of the class
child childInstance= new child();
^
1 error
please help me!!
解决方案
Be ensure that the package folder mypackage and Main.class share the parent folder.
package mypackage;
public class Child {}
I presume that the Main class is created in default package.
public class Main {
public static void main(String []args){
mypackage.Child child=new mypackage.Child();
}
}
and your directory structure should be:
main-directory/
|
|----/mypackage/
Child.class
|
| Main.class
| Main.java
| Child.java
and to launch/load the Main issue following command,
java Main