It's not a secret anymore!*
The moose likes Servlets and the fly likes Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of OCM Java EE 6 Enterprise Architect Exam Guide this week in the OCMJEA forum!
JavaRanch » Java Forums » Java » Servlets
Bookmark ""package does not exist" message in servlet" Watch ""package does not exist" message in servlet" New topic
Author

"package does not exist" message in servlet

michael shay
Greenhorn

Joined: Feb 24, 2003
Posts: 3
Hello,
I created a Package which includes a bean in directory c:\classes\packagex\utility\bean.class. at the top of the bean I put the line "package packagex.utility;". I then created a servlet which is in directory c:\classes\packagex\servlets\servlet.class, on the top of the servlet I have "package packagex.servlet;".
The error I get is when in the servlet i try to import the bean package using "import packagex.utility.*;" I get an error "package packagex.utility not found".
Please help if you have any ideas.
Thank you
Michael
Vijayalakshmi Muthusswamy
Greenhorn

Joined: Feb 24, 2003
Posts: 6
hi,
check out your classpath & try out.
michael shay
Greenhorn

Joined: Feb 24, 2003
Posts: 3
I have it in the classpath, but am still getting that error.
Mike Curwen
Ranch Hand

Joined: Feb 20, 2001
Posts: 3695

what directory are you in when you attempt to compile, and what is the exact command you send to javac ?
michael shay
Greenhorn

Joined: Feb 24, 2003
Posts: 3
In directory c:\classes\packagex\servlets\" that is where the servlet that I am trying to compile is located.
I use "javac sevlet.java"
thanks for your help
Mike Curwen
Ranch Hand

Joined: Feb 20, 2001
Posts: 3695

I hate debugging classpath issues, especially when they're my own. So I figured out a while back the way to avoid them is to use the command-line switch to send in a classpath. There is a second switch to tell where to place the compiled classes. This has been a godsend. If you're not using ANT, at least try this out...

within WEB-INF have two directories...

all of my code is in the src directory, but there are no subfolders here. So even if my class is in a package, I don't worry about it for the source file.

I use Textpad as my java 'IDE', and my javac macro looks like:

-classpath c:\jars\servlet.jar;..\classes;%CLASSPATH% -d ..\classes $File

What this does is several things. First, you're absolutely specifying where to find servlet.jar. Then, you are also specifying where to find any of your own files (that's the ..\classes part). Why are they there? That's the second cool thing. The -d ..\classes option tells javac to transfer your compiled class files into the classes directory... and the added benefit is that it will put them in the appropriate folder heirarchy (into their packages).

How does this help you? If for example, you placed the source for both your bean and servlet class into the src directory, and compiled the bean class first, you'd find it appearing in classes\packagex\utility\bean.class

Then when your servlet tries to import it, it should find it, because you are sending it ..\classes with the -cp switch.

This has worked for me for quite a while. And from project to project, you don't need to change your settings in Textpad, as long as you always have a src and classes directory at the same level (and compile from the root of src)
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
 
subject: "package does not exist" message in servlet