我在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;
}
}
答案 0 :(得分:2)
将您的类Animal设为public并将该文件重命名为Animal.java
答案 1 :(得分:1)
您的班级名为forest
,因此您需要将Animals.java
移至名为forest
的目录。
您在第7行遇到错字:Sring[] s2 =
应为String[] s2 =
。
从forest
的父目录编译。这样的事情应该有效
$ javac forest/Animals.java
从父目录运行:
$ java forest.Aminals
运行程序时,程序没有输出。
答案 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
的名称相同,您的主要课程是包含主要方法的那个。