aspose file tools*
The moose likes Beginning Java and the fly likes How to import classes in a subpackage from another sub-package? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "How to import classes in a subpackage from another sub-package?" Watch "How to import classes in a subpackage from another sub-package?" New topic
Author

How to import classes in a subpackage from another sub-package?

Souvvik Basu
Ranch Hand

Joined: Apr 05, 2010
Posts: 96
Hi,
I have a problem regarding importing subpackages. Since I was not doing any serious project, the names are all funny.

My folder structure is like this : a folder called body. This has 3 sub-folders,left,right and centre. Left has folders hand and leg.

There are other sub-folders in the other 2 folders as well. Each folder has 1 class, TestXXXX, where XXXX is name of folder (eg. hand folder has class TestHand) and the class has only 1 method, showXXXX (eg. showHand() method in TestHand class).

The code for 1 class is like this :


The codes in other classes are similar. What I am trying to do is, access method showLeg() of TestLeg class from the hand folder using a class Test, which looks like this :


When I try to compile class Test going inside the folder hand, I get the following error : package body.left.leg does not exist

However, instead of using the Test class in the hand folder, if I use it in the parent folder that contains the body folder, I am able to access all classes anywhere in the directory structure. In other words, I cannot access a sub-package from another sub-package, but I can access any sub-package from the main package.

Can you please help me with this?

P.S. - I already posted this on an existing thread, but got no reply. So re-posting it here.
Abhijeet Sutar
Greenhorn

Joined: Feb 28, 2010
Posts: 17

try using -classpath switch on javac command and in that set classpath as absolute path to your body folder


OCPJP 6 93%
Souvvik Basu
Ranch Hand

Joined: Apr 05, 2010
Posts: 96
sorry...I didnt get that completely. Can you please explain in detail?
also, is there any other way to do this? Without touching the classpath? My classpath is set to the bin of the jdk
Abhijeet Sutar
Greenhorn

Joined: Feb 28, 2010
Posts: 17

Compiling the file which is in package that requires class in the another package , you need to specify the classpath that is root of package directory
In this case, if you want compile class Test which is in directory,say. body/left/leg ,and this Test class requires another class i.e. TestHand, So you must specify classpath to TestHand for compiling the Test class + in Test class. you must specify package declaration .

Here is the program and command line invokation





Hope this helps
Souvvik Basu
Ranch Hand

Joined: Apr 05, 2010
Posts: 96
I used those command line arguments. Compiling never had any issues. I have the class files. But it is crashing at runtime. When I try to run, it fails and gives the error.
Abhijeet Sutar
Greenhorn

Joined: Feb 28, 2010
Posts: 17

Souvvik Basu wrote:
When I try to compile class Test going inside the folder hand, I get the following error : package body.left.leg does not exist

look for above post

Souvvik Basu wrote:
But it is crashing at runtime. When I try to run, it fails and gives the error.


TellTheDetails ...try to give more details about the runtime error and your command line invocation of java command
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: How to import classes in a subpackage from another sub-package?