编译java代码时遇到麻烦

时间:2015-06-03 04:34:33

标签: java

我在macbook pro上用崇高的文字写了下面这段代码。 我将文件保存在桌面上的java文件夹中。当我尝试编译程序并尝试执行它时,我收到了以下错误消息“错误:无法找到或加载主类动物”。 有人可以帮我编译和运行这个程序

package forest;
class Animals{

    public static void main(String[] args)
    {
        Animals s = new Animals();
        Sring[] s2 = s.getAllAnimals();

    }

    public String[] getAllAnimals()
    {
        String[] s1= {"Lion", "Elephant", "Tiger","Deer","Wolf","Dinosar"};
        return s1;
    }
}

5 个答案:

答案 0 :(得分:2)

将您的类Animal设为public并将该文件重命名为Animal.java

答案 1 :(得分:1)

  1. 您的班级名为forest,因此您需要将Animals.java移至名为forest的目录。

  2. 您在第7行遇到错字:Sring[] s2 =应为String[] s2 =

  3. forest的父目录编译。这样的事情应该有效

    $ javac forest/Animals.java
    
  4. 从父目录运行:

    $ java forest.Aminals
    
  5. 运行程序时,程序没有输出。

答案 2 :(得分:0)

查看代码,java中没有sring类型,因此将其更改为String

 Sring[] s2 = s.getAllAnimals();
    change it to 
     String[] s2 = s.getAllAnimals();

一切都会好的

答案 3 :(得分:0)

首先,您可以使用任何名称命名您的java文件。 说Sample.java。让我们认为这个文件存在于D:\ work

转到cmd提示符下的D:\ work文件夹。

牢记这一点:

如果您编写包林,那么您的类必须是公共的。 写公共类动物{}

编译时执行此操作javac -d Sample.java 通过这样做,编译器将创建文件夹“forest”,并在其中创建Animals.class。 所以现在在D:\ work中我们有Sample.java文件和“forest”文件夹

现在在命令提示符下不要进入“forest”文件夹。 留在工作文件夹中。 d:\工作

从D:\ work java forest.Animals

运行此命令

<强> Explantion ::

包含Main方法的类的名称不是动物。它是 forest.Animals 这是该类的完全限定名称。这是因为你把放到了它上面。  因此,在运行时,您必须使用完全限定名称

运行
 java forest.Animals

您的类的名称不是Sample.java。 &lt; - 这只是一个文本文件,命名为编译器不会生成名为Sample.class的类,因为在此文件中没有这样的类,类名是Animals。所以将生成Animals.class。

javac -d Sample.java可帮助您根据包自动创建文件夹结构。

例如,如果你的课程是这样的

package com.stackoverflow.samples
public class Animals{
}

你做java -d Sample.java

编译器会在另一个文件夹 stackoverflow 里面创建一个文件夹 com ,在另一个文件夹 samples 里面,并在那个文件里面的.class

要运行此功能,您必须使用完全限定名称

从“com”文件夹外部运行它
java com.stackoverflow.samples.Animals

答案 4 :(得分:0)

尝试本教程Java and the Mac OS X Terminal并制作课程public,并确保包含源代码的文件名和main class的名称相同,您的主要课程是包含主要方法的那个。