If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

My current working directory is c:\work. I have not set CLASSPATH variable;
but that is not the problem since \temp directory is under work ; so it's
accessible from \work which is current working directory.
The problem is that when i give the following command...(from current dir)

javac abc.java

...compile time error comes similar to "temp.laugh is not public in temp".
This is ok. I have not declared 'laught' interface as public so that will
go into default package of java.But when I changed the first statement of
c:\work\abc.java from....

import temp.laugh;
to
import temp.*;

...the program is compiled and run properly. Why didn't java give compile
time error this time? In fact the above change to the import statement
doesn't change the meaning ; so how does it cause 'laugh' to be considered
in spite of NOT being declared as public?
-Dhiraj

Re: import package problem

I guess something is wrong with your way of compiling or your classpath.
I copied the following code and I also created the same temp direcotry and
work directoy. I couldn't compile the abc.java in both the cases(with import
temp.laught and import tem.*). The truth is if you won't declare any class
or interface as public that calss/interface can't be accessible from outside
of the package.

"Dhiraj Nilange" <dhiraj_nilange@yahoo.com> wrote:
>
>Hi there
>I had defined an interface 'laugh'in package 'temp' as follows
>//the file is c:\work\temp\laugh.java
>package temp;
>interface laugh{
>void eee();
>int a=1;
>int b=2;
>int c=3;
>}
>
>and the in temp work directory I created a java code that used the
>interface. The code is as follows:
>
>//the file is c:\work\abc.java
>import temp.laugh;
>class ppp implements laugh{
>public void eee()
>{
> System.out.println("interface function eee() called");
>}
>}
>
>class abc{
>public static void main(String args[])
>{
> ppp a=new ppp();
> a.eee();
>}
>}
>//file ends
>
>My current working directory is c:\work. I have not set CLASSPATH variable;
>but that is not the problem since \temp directory is under work ; so it's
>accessible from \work which is current working directory.
>The problem is that when i give the following command...(from current dir)
>
>javac abc.java
>
>...compile time error comes similar to "temp.laugh is not public in temp".
>This is ok. I have not declared 'laught' interface as public so that will
>go into default package of java.But when I changed the first statement of
>c:\work\abc.java from....
>
>import temp.laugh;
> to
>import temp.*;
>
>...the program is compiled and run properly. Why didn't java give compile
>time error this time? In fact the above change to the import statement
>doesn't change the meaning ; so how does it cause 'laugh' to be considered
>in spite of NOT being declared as public?
>-Dhiraj
>
>
>