Could not find main class HelloWorld

后端 未结 10 1749
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-01 09:39

I installed Java 1.7.0 in the following folder C:\\Program Files\\Java. My operating system is Windows XP(Version 2002) with Service pack 3.

The envir

相关标签:
10条回答
  • 2020-12-01 09:43

    JAVA_HOME is not necessary if you start java and javac from the command line. But JAVA_HOME should point to the real jdk directory, C:\Program Files\Java\jdk1.7.0 in your case.

    I'd never use the CLASSPATH environment variable outside of build scripts, especially not global defined. The -cp flag is better. But in your case, as you do not need additional libraries (rt.jardoesn't count), you won't need a classpath declaration. A missing -cp is equivalent to a -cp . and that's what you need here)

    The HelloWorld class needs to be declared as public. This actually may be the cause for your problems. (I was pretty sure, that a source file needs one public class... or was it one public class at most ?)

    0 讨论(0)
  • 2020-12-01 09:48

    Just remove your "classpath" from you environment variable. Then try running:

    java HelloWorld 
    

    This should work fine.

    0 讨论(0)
  • 2020-12-01 09:51

    put .; at classpath value in beginning..it will start working...it happens because it searches the class file in classpath which is mentioned in path variable.

    0 讨论(0)
  • 2020-12-01 09:57

    You are not setting a classpath that includes your compiled class! java can't find any classes if you don't tell it where to look.

    java -cp [compiler outpur dir] HelloWorld
    

    Incidentally you do not need to set CLASSPATH the way you have done.

    0 讨论(0)
  • 2020-12-01 09:57

    Java is not finding where your compiled class file (HelloWorld.class) is. It uses the directories and JAR-files in the CLASSPATH environment variable for searching if no -cp or -classpath option is given when running java.exe.

    You don't need the rt.jar in the CLASSPATH, these was only needed for older versions of Java. You can leave it undefined and the current working directory will be used, or just add . (a single point), separated by ';', to the CLASSPATH variable to indicate the current directory:

    CLASSPATH: .;C:\...\some.jar

    Alternatively you can use the -cp or -classpath option:

    java -cp . HelloWorld
    

    And, as Andreas wrote, JAVA_HOME is not needed by Java, just for some third-party tools like ant (but should point to the correct location).

    0 讨论(0)
  • It looks that you had done all setup properly but there might be one area where it might be causing problem

    Check the value of your "CLASSPATH" variable and make sure at the end you kept ;.

    Note: ; is for end separator . is for including existing path at the end

    0 讨论(0)
提交回复
热议问题