How to run jar files with classpath?

Hi

I'm trying to run my own jar file (and I can) but it is complaining that it can't find a class in another jar file. I've been trying the following:

java -cp path_to_otherfile\otherfile.jar -jar myfile.jar

but it won't work. I am certain that the classpath is correct and everything works fine if I run the extracted class file (from the jar) directly:

java -cp path_to_otherfile\otherfile.jar myclass

Any ideas?
boomerang061797Asked:
Who is Participating?
 
objectsCommented:
Add the following to your MANIFEST for myfile.jar:

Class-Path: other.jar

I think this assumes the two jars are in the same directory. You may also specify a relative location for the jar.

0
 
rameshnutCommented:
hi boomerang


just try this

java -cp .;path_to_otherfile\otherfile.jar -jar myfile.jar

(i have added a dot and a semi colon,just try it)


rameshnut

0
 
mrachowCommented:
Try
java -cp "pathToOthers\other.jar;pathToYour\YourJar.jar" packageOfYourClass.YourClass

Greetings
Michael
0
Cloud Class® Course: Python 3 Fundamentals

This course will teach participants about installing and configuring Python, syntax, importing, statements, types, strings, booleans, files, lists, tuples, comprehensions, functions, and classes.

 
boomerang061797Author Commented:
To rameshnut: I tried that first and it still didn't work. To objects: I tries this and it still can't find the file, but this seems like the right way to go. However, I am trying to refer to another jar file on my harddisk and it has nothing to do with my jar file. It will therefore never be part of my actual jar file. How can I refer to a jar file that is not part of either the system class path or included in my jar file?
0
 
objectsCommented:
If you don't know the location of the other jar relative to your jar at the time of creating your jar then I think you'll either have to:

- ensure that the other jar is placed in the 'ext' directory, or

- run the class without using the -jar option.

0
 
objectsCommented:
From the (-jar) doco:

"The JAR file is the source of all user classes, and other user class path settings are ignored. "


0
 
boomerang061797Author Commented:
What do you mean by the ext directory? I'm running on NT. I've tried running the jars in the same directory, but that didn't make a difference.
0
 
objectsCommented:
> What do you mean by the ext directory?

There is an ext directory inside the lib directory of your JAVA_HOME directory. Any jars in that directory will be included in your classpath automagically.


http://java.sun.com/j2se/1.3/docs/guide/extensions/extensions.html

> I've tried running the jars in the same directory

If the jars are in the same directory then providing 'Class-Path' in your manifest should do the trick.
0
 
boomerang061797Author Commented:
Just one last question; is it common to place JDBC driver jar files in the extension directory of the JRE on the server or is there a better solution?
0
 
objectsCommented:
Can't see a problem with doing that.
The only reason I can think of for not putting any jar in the ext folder is if you want to control the load order, for example if you have two versions of the same class.
O/wise I'd say dump them all in there :)
0
 
boomerang061797Author Commented:
I'm still working on trying to get the ext directory to work properly on my win2000 machine. No trouble on linux though.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.