Paul-E
Paul-E

Reputation: 95

Unable to run Java main class though windows commandline

I have an external jar and I have written 2 classes named 'TestConnector.java' and 'APIExampleUsageTestData.java' and I have placed these 2 files under default package.

I have placed all the 3 artifacts -> externalConnector.jar, TestConnector.java and APIExampleUsageTestData.java into a folder named 'temp'.

I have opened commandline in the temp folder context and compiled the class files with below command and it executed without any errors:

javac -cp "externalConnector.jar" *.java

I can see that there are 2 class files present in the tem folder.

There is a main method in the APIExampleUsageTestData.class and I'm trying to call that class with the below command, but, is failing

When running the below command in 'C:\Users\AppData\Local\Temp\0.15429262750877082' folder context

java -cp "externalConnector.jar" APIExampleUsageTestData

I'm getting error Error: Could not find or load main class APIExampleUsageTestData

When I trying to run the command, without any class path entry to check what error it is throwing:

java APIExampleUsageTestData

It throws error: Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.NoClassDefFoundError: com/external/connector/CustomException

It is a Windows Operating System. Could you please let me know how to run the program successfully?

Upvotes: 1

Views: 96

Answers (1)

Jon Skeet
Jon Skeet

Reputation: 1503290

You need both the current directory and the jar file to be on the classpath. So you want (Linux / Mac):

java -cp .:externalConnector.jar APIExampleUsageTestData

Or (Windows)

java -cp .;externalConnector.jar APIExampleUsageTestData

Upvotes: 2

Related Questions