Java packages com and org

What are the meaning of the packages org and com in Java?


Solution 1:

According to Sun, packages should be namespaced according to the inverse of your domain name, and then followed by whatever you see fit. Most companies or organisations have a .com, or .org domain name, and hence most packages start with com. or org.. To quote from the Sun Code Conventions:

The prefix of a unique package name is always written in all-lowercase ASCII letters and should be one of the top-level domain names, currently com, edu, gov, mil, net, org, or one of the English two-letter codes identifying countries as specified in ISO Standard 3166, 1981.

Subsequent components of the package name vary according to an organization's own internal naming conventions. Such conventions might specify that certain directory name components be division, department, project, machine, or login names.

And the examples that they give, make it pretty clear that you are meant to use the companies DNS name:

com.sun.eng

com.apple.quicktime.v2

edu.cmu.cs.bovik.cheese

You will also see edu. and net. packages out in the wild as well, although they are less common.

Solution 2:

You can also see package names as reversed internet domain names (which is often also true in real world, see for example the org.apache.commons which correlate with http://commons.apache.org). The com (commercial) and org (organization) are here then actually Top Level Domain names.

Package names are in general just to identify the manfacturer/vendor of the code you're facing.

Solution 3:

Usually com is used by companies when naming the packages, com being followed by the company's name. For instance you have the com.sun packages in the JVM.

The org package prefix is mostly used by non-profit organizations or for open source code, such as apache, w3c, etc.

Solution 4:

See Oracle doc for package naming

See Naming Conventions for class/interface/annotations/etc standard naming

package name and class standard syntax:
<your domain in reverse>.<project name>.<controller/dao/service/handlers etc>.<your class>

example1: (here domain:- "stackoverflow.com", project:- "Test")
com.stackoverfllow.test.handler.TestHandler

example2: (here domain:- "www.google.co.in", project:- "My Proj")
in.co.google.myproj.controller.MainController

but for reserved domains like java.*, javax.*, sun.*, etc. you should get permission from oracle community