i am quite new to java
i used to code in c++ but now we have to program in java which has not been taught.
i browsed net but casn't get enough information
this is my first code which i managed to get from net
i am using GNU java compiler i.e, gcj in ubuntu

can anyone tell how to get the program completed.
this is what compiler shows
nchy@ubuntu:~/Desktop$ gcj hi.java
hi.java:1: error: The public type HelloWorld must be defined in its own file
public class HelloWorld {
^^^^^^^^^^
1 problem (1 error)
nchy@ubuntu:~/Desktop$ gcj hi.java
hi.java:2: error: The public type HelloWorld must be defined in its own file
public class HelloWorld {
^^^^^^^^^^
1 problem (1 error)

import java.io.*;
public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello, World");
    }

}

It's how java keeps track of what classes are where: Every public class is defined an a source file called classname.java, and the compiled code is in classname.class (where classname is the (case-sensitive) name of the public class).
Sp you need to rename your source file to HelloWorld.java (or rename your class to hi - not recommended!)

can there be any java code without class as in c++.
example

#include<iostream>
using namespace std;
int main()
{
 cout<<"hello world";
}

if so, in that case is there any restriction on filename.

can u do me one favour
it would be of great help if u can post whole code which would run.

compiler showa after modification

nchy@ubuntu:~/Desktop$ gcj HelloWorld.java
HelloWorld.java:1: warning: The import java.io is never used
import java.io.*;
^^^^^^^
1 problem (1 warning)
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status

The "import java.io is never used" message means what it says - you don't need that import and can simply delete it.
I'm not a Linux buff, so I don;t understand the second half of that output.

But this should definitely run:

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

it is still showing second half of the error i.e, undefined reference to main

I DOWNLOADED GCJ(GNU JAVA COMPILER).
code is same as posted by you.
it is coming from compiler.
this is what it looks like in terminal
nchy@ubuntu:~/Desktop$ gcj HelloWorld.java
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../crt1.o: In function `_start':

(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status

What was the problem? Please share your solution.
I would always recommend downloading the Oracle "official" JDK rather than any other version.

i was actually using command
gcj HelloWorld.java
instead of
javac HelloWorld.java

This question has already been answered. Start a new discussion instead.