Java Package Vs Folder-Structure? what is the difference

JavaPackageDirectory

Java Problem Overview


I would like to know What are the difference between folder-structure and package used in Eclipse IDE for Java EE development.

When do we use which one and why?.

Whats should be the practice

  • create a folder structure like src/com/utils and then create a class inside it
  • create a package like src.com.util and then create a class inside it

which option would be better and easy to deploy if i have to write a ant script later for deployment ?

if i go for the folder-structure will the deployment is as easy as copying files from development to deployment target ?

Java Solutions


Solution 1 - Java

If you configured stuffs correctly. Adding a folder inside src, is same as adding a package from File > New Package.

So, it's up to you, whatever feels comfortable to you -- add a folder or create a package. Also, when you put stuffs under src the package name starts from subfolder. So, src/com/naishe/test will be package com.naishe.test.

Solution 2 - Java

Basically there is no difference, both are the same.

In both the cases, the folder structure will be src/com/utils.

and in both the cases, you will need to mention

package com.utils;

as first line in the class

Since it doesn't have any difference practically, it won't make any difference to ant script.

Solution 3 - Java

"Packaging helps us to avoid class name collision when we use the same class name as that of others. For example, if we have a class name called "Vector", its name would crash with the Vector class from JDK. However, this never happens because JDK use java.util as a package name for the Vector class (java.util.Vector). So our Vector class can be named as "Vector" or we can put it into another package like com.mycompany.Vector without fighting with anyone. The benefits of using package reflect the ease of maintenance, organization, and increase collaboration among developers. Understanding the concept of package will also help us manage and use files stored in jar files in more efficient ways."

check out http://www.jarticles.com/package/package_eng.html for more information on packages

Solution 4 - Java

> create a package like 'src.com.util'

That sounds like a mistake. The package name should be 'com.util', and 'src' is the name of the source folder.

Other than that, I fail to see what the difference is between your two choices. The result is the same, right? Just different steps in the GUI to arrive at it. The wizard to create a new package in Eclipse is just a wrapper around creating the appropriate folder hierarchy within a source folder.

You don't need to create empty packages at all, you can directly create classes (the package will be created automatically if it does not already exist).

Solution 5 - Java

A package is automatically "source folder" where folder is just a normal folder. When you compile an Eclipse project, all files in source folders are compiled but not in regular folders (unless those regular folders a)

Solution 6 - Java

folder structure or to be specific source folder in eclipse is meant just for eclipse but package is universal irrespective of any editor..

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMrinmoyView Question on Stackoverflow
Solution 1 - JavaNishantView Answer on Stackoverflow
Solution 2 - Javadku.rajkumarView Answer on Stackoverflow
Solution 3 - Javauser2729857View Answer on Stackoverflow
Solution 4 - JavaThiloView Answer on Stackoverflow
Solution 5 - JavateamasterView Answer on Stackoverflow
Solution 6 - JavaJackView Answer on Stackoverflow