4

Ok, this is working on windows. My Java app is running and functioning normally

javac -classpath .;ojdbc14.jar -g foo.java
java  -classpath .;ojdbc14.jar  foo

However, when I do the same thing on Unix I get this error: ojdbc14.jar: not found

What am I doing wrong? I know the ";" is telling my shell that ojdbc14.jar is a new command, but I'm not sure how to fix this.

4 Answers 4

12

Use a colon (":") instead of a semicolon (";").

See Setting the class path (Solaris and Linux) vs Setting the class path (Windows)

Sign up to request clarification or add additional context in comments.

Comments

2

The final solution was:

javac -classpath .:ojdbc14.jar -g foo.java
java  -classpath .:ojdbc14.jar  foo

Note: Using '.;ojdbc14.jar' removed the initial error message I was getting, but resulted in the following errro:

Exception in thread "main" java.lang.NoClassDefFoundError: foo

Comments

0
javac -classpath '.;ojdbc14.jar' -g foo.java
java  -classpath '.;ojdbc14.jar'  foo

4 Comments

OK, you're correct that the single quote will prevent the shell from interpreting the ";" as a command separator, but a Unix java isn't going to understand ";" in the classpath.
If java will recognize the semicolon in a classpath on non-Windows platforms, it is neither guaranteed nor documented.
+1. The -1 was unwarranted. InsDel's solution does work, and is not inherently unhelpful. It might not be the optimal solution, but it is a solution.
Yeah, but I think James's point is valid - it may not always work.
0

Use ant, or even better use ant with a continuous build environment like Hudson and a SCM like SVN.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.