Please support VectorLinux!

Author Topic: Compiler for Java?  (Read 1755 times)

Martin109

  • Vectorite
  • ***
  • Posts: 290
Compiler for Java?
« on: June 25, 2011, 01:39:04 pm »
I can compile and run C programs with gcc, but what about java?

I have installed gcc-java 4.2.3-i486-1 but the command gcc-java doesn't do anything.

What do I need to do next to get java running?
Compaq Armada E500, i686 Pentium III, 512Mb RAM, 3.2 Gb HDD, running Vector Linux 5.9 Standard

Fujitsu Lifebook, i686 Pentium M, 1.7 GHz, 1028Mb RAM, 40 Gb HDD, running Vector Linux 6.0 Standard

Compaq Evo, i686 Pentium M, 1.4 GHz, 512Mb RAM, 40 Gb HDD, running Vector Linux 6.0 Standard

Martin109

  • Vectorite
  • ***
  • Posts: 290
Re: Compiler for Java?
« Reply #1 on: June 25, 2011, 02:00:54 pm »
OK, it's part of gcc, evoked with gcj!

Here's the classic "Hello, World!" program in java:

Code: [Select]
class HelloWorld
{
public static void main(String args[])
{
System.out.println("Hello World.");
}
}

When I issue the command:

Code: [Select]
gcj [path-to]HelloWorld.java

I get:

/usr/lib/gcc/i486-slackware-linux/4.2.3/../../../crt1.o: In function '_start':
(.text+0x18): undefined reference to 'main'
collect2: ld returned 1 exit status

Anyone know what's going wrong?
      
Compaq Armada E500, i686 Pentium III, 512Mb RAM, 3.2 Gb HDD, running Vector Linux 5.9 Standard

Fujitsu Lifebook, i686 Pentium M, 1.7 GHz, 1028Mb RAM, 40 Gb HDD, running Vector Linux 6.0 Standard

Compaq Evo, i686 Pentium M, 1.4 GHz, 512Mb RAM, 40 Gb HDD, running Vector Linux 6.0 Standard

DavidI

  • Member
  • *
  • Posts: 9
Re: Compiler for Java?
« Reply #2 on: June 25, 2011, 10:57:09 pm »
I don't use gcj anymore but when I did I had to specify the main method:

gcj --main=HelloWorld -o HelloWorld HelloWorld.java

Martin109

  • Vectorite
  • ***
  • Posts: 290
Re: Compiler for Java?
« Reply #3 on: June 26, 2011, 06:02:07 am »
I don't use gcj anymore but when I did I had to specify the main method:

gcj --main=HelloWorld -o HelloWorld HelloWorld.java

OK, when I issue that command the system produces another file  - HelloWorld*

When I issue the command 'java HelloWorld', I get:

Code: [Select]
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
Caused by: java.lang.ClassNotFoundException: HelloWorld
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native method)
at java.et.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: HelloWorld.  Program will exit.


Compaq Armada E500, i686 Pentium III, 512Mb RAM, 3.2 Gb HDD, running Vector Linux 5.9 Standard

Fujitsu Lifebook, i686 Pentium M, 1.7 GHz, 1028Mb RAM, 40 Gb HDD, running Vector Linux 6.0 Standard

Compaq Evo, i686 Pentium M, 1.4 GHz, 512Mb RAM, 40 Gb HDD, running Vector Linux 6.0 Standard

DavidI

  • Member
  • *
  • Posts: 9
Re: Compiler for Java?
« Reply #4 on: June 26, 2011, 06:45:57 am »
The file isn't bytecode so it isn't run by the JVM. Just use:

Code: [Select]
./HelloWorld

Martin109

  • Vectorite
  • ***
  • Posts: 290
Re: Compiler for Java?
« Reply #5 on: June 26, 2011, 02:10:24 pm »
Thanks, David, that's helped a lot!
Compaq Armada E500, i686 Pentium III, 512Mb RAM, 3.2 Gb HDD, running Vector Linux 5.9 Standard

Fujitsu Lifebook, i686 Pentium M, 1.7 GHz, 1028Mb RAM, 40 Gb HDD, running Vector Linux 6.0 Standard

Compaq Evo, i686 Pentium M, 1.4 GHz, 512Mb RAM, 40 Gb HDD, running Vector Linux 6.0 Standard