This week's book giveaway is in the General Computing forum.
We're giving away four copies of Arduino in Action and have Martin Evans, Joshua Noble, and Jordan Hochenbaum on-line!
See this thread for details.
The moose likes Linux / UNIX and the fly likes java at linux Big Moose Saloon
  Search | Java FAQ | Recent Topics
Register / Login


JavaRanch » Java Forums » Engineering » Linux / UNIX
Reply Bookmark "java at linux" Watch "java at linux" New topic
Author

java at linux

Asher Tarnopolski
Ranch Hand

Joined: Jul 28, 2001
Posts: 260
hey folks, i just began to use linux, i'm totally puzzeled, so please help me.
i installed sdk, i want to run a simple java file
which will output "Goodbye, world!"
now, i compile the file and get a class file.
but when i try to run it, i get a ClassNotFound exception: something like /usr/java/jdk1_4_1/World/class not found...
i have no idea why World.class becomse World/class, this is some kind of linux bizzare stuff.
thanX for ya help folks.


Asher Tarnopolski
SCJP,SCWCD
Frank Carver
Sheriff

Joined: Jan 07, 1999
Posts: 6919
You didn't tell us what you were typing to run your new class, but I guess you typed something like:
java World.class
What you really need to type is more like:
java World
The Java interpreter will add the ".class" automatically.


Read about me at frankcarver.me ~ Raspberry Alpha Omega ~ Frank's Punchbarrel Blog
Asher Tarnopolski
Ranch Hand

Joined: Jul 28, 2001
Posts: 260
thank's for your answer.
i tried this too. it doesn't help.
to run the file i type
/usr/local/jdk/bin/java /usr/local/javafiles/World
i still get NoClassDefFound..
Michael Ernest
High Plains Drifter
Sheriff

Joined: Oct 25, 2000
Posts: 7292

Go to the directory that has World.class in it. Then type:

and tell us what you get.


Make visible what, without you, might perhaps never have been seen.
- Robert Bresson
Gregg Bolinger
Ranch Hand

Joined: Jul 11, 2001
Posts: 15230

Java is also really picky about your classpath in Linux.
You need to do one of a couple of things.
1. Explicitly specify your classpath when executing your application.
i.e. java -classpath "directory/of/class/file" World
2. Create an environment variable called CLASSPATH in your .bashrc (for bash shell) file.
i.e.
CLASSPATH=/path/to/class/files
export CLASSPATH
Barry Gaunt
Ranch Hand

Joined: Aug 03, 2002
Posts: 7729
Of course it also depends on WHAT Linux you are running. Linux distributions are not very portable
-Barry


Ask a Meaningful Question and HowToAskQuestionsOnJavaRanch
Getting someone to think and try something out is much more useful than just telling them the answer.
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 14572
    
    7

Actually, the problem is that the current directory is NOT automatically part of the classpath.
try

Did you see the little "."? It means "current directory" in both the Windows/DOS and Unix/Linux worlds (and internal to Java just about anywhere).
You can alternatively export a "CLASSPATH=." in your login script if you like.


Customer surveys are for companies who didn't pay proper attention to begin with.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: java at linux
 
Similar Threads
Problems with SDK
Editing Environment Variables
core java doubt
ajax and java
HelloWorldSwing