This week's giveaway is in the Android forum.
We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line!
See this thread for details.
The moose likes Java in General and the fly likes packages::::::: Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "packages:::::::" Watch "packages:::::::" New topic
Author

packages:::::::

ADNAN KHAN
Greenhorn

Joined: Feb 26, 2001
Posts: 6
Assalam-o-Alakum:-
I am learning a new topic called packages. interesting one but there is a problem, I am unable to understand untill now how we compile a package which have two or more classes and how to run a package.
So, if some one answer me I am very thankful to him. I know packages but the problem is for command to compile and run the packages.

Thanks.
Siva Prasad
Ranch Hand

Joined: Feb 22, 2001
Posts: 104
Adnan
You cannot compile or run a package in java.
Package is something used to avoid name collisions. Its like a namespace and has an hierarchy.
for example....
in my .jar file there are two classes
Person.class - under com/prasad
Person.class - under com/prasad/Misc
if this jar file is in the classpath and I try to compile the following code I get compiler errors
Person = new Person();
because the compiler doesnot know which Person to refer.
to make it clear to the compiler I refer them I can refer like this....
com.prasad.Person n = new com.prasad.Person();
or
com.prasad.Misc.Person n = new com.prasad.Misc.Person();
another way to do this is.. importing the specific package
forexample
import com.prasad.*;
Person = new Person();
or
import com.prasad.Misc.*;
Person = new Person();
but you cannot import both packages when you create a new Person Object
import com.prasad.*;
import com.prasad.Misc.*;
Person = new Person();
The compiler complains about the ambiguity.
Now how to create a package?
Just write this statemet at the begining of your .java file
package <packagename>
example:
package com.prasad;
public class Person
{
....
}
package com.prasad.Misc;
public class Person extends xxx
{
.....
}
Hope this helps
cheers
Siva
NageswaraRao Karra
Ranch Hand

Joined: Nov 12, 2000
Posts: 34
Hello Adnan!
for compiling yr. java files with package notation intact use the following.
c:>javac -d AnyJavafile.java
then it creates a directory structure with yr.package name as parent to the class file.
for execution of such class files
use the following
java package.anyclassfile
Nageswara
Max Rahder
Ranch Hand

Joined: Nov 06, 2000
Posts: 177
By the way, Java life is easier if you remember this rule: ALL class names must ALWAYS be qualified with their package. (By default java imports "java.lang,*", which make this rule less obvious.) For example, to reference class A in package mypackage you must code "mypackage.A" or use an import statement. If "A" has a main method then you run it by passing "mypackage.A" to java. This assumes your classpath is set. I.e., that your classpath includes the root location where directory "mypackage" is found.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: packages:::::::
 
Similar Threads
compiling a package with javac vs eclipse (cannot find symbol)
Compiling and running classes that import custom packages
Packages
How to complile java classes which exist in different Packages
Package Problem?Pls Help