Tyler M.
Tyler M.

Reputation: 125

Can't run java file (having trouble with classpath fixes)

I'm remoted into a Linux machine that I don't own from my Windows machine. I've got 2 java files:

DBConnect.java
Main.java

I compile and run them fine on my machine and in my IDE (I'm using NetBeans). When I copy them to the remote Linux machine, the place they're located is:

/home/NETID/myname/430

I compile them using:

javac *.java

They compile successfully, which creates two new files:

DBConnect.class
Main.class

I then attempt to run Main.class. With each of the following commands, I get the error "Error: Could not find or load main class Main"

java Main
java <pkg>.Main
java <pkg>/Main

In my case, in NetBeans, my project is called MyProject. In the directory structure on the left-hand side of the IDE window, there is MyProject. Under that is a file called Source Packages. In that file is another thing called pkgMyProject. When I expand that, I see my two java files.

Also, at the top of both Main.java and DBConnect.java, there is:

package pkgMyProject;

I've read some other questions here referring to this issue, but I'm having trouble understanding the answers. Also, many of the answers don't apply because I don't think I can set the classpath on the remote machine.

When I check my classpath in my terminal (when I'm remotely connected) using...

echo ${CLASSPATH}

...nothing is displayed.

How can I find my classpath, and how can I run these files?

Upvotes: 0

Views: 45

Answers (1)

cristhiank
cristhiank

Reputation: 766

I think you are missing the package folder. You need to create a directory in the Linux machine with the name pkgMyProject. Then, run javac pkgMyProject/*.java and run java -cp . pkgMyProject.Main after that.

Update: You can add the -cp to set the classpath to be used in the java command.

Upvotes: 1

Related Questions