我有我的数组类,如下所示,当我运行程序时,它给了我这个错误消息:Error: Main method not found in class SArray, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
我不知道如何修改我的代码来解决这个问题,因为它似乎在那里没有必要让我有一个主要的方法。
public class SArray {
public void setS(double[] S) {}
public SArray(double[] S) {
super();
}
public double[][] getS(){
double[ ][ ] S = {{ x,x,x}, { x,x,x},{ x,x,x}};
for(int x = 0; x<S.length; x++){
for(int y = 0; y<S[x].length; y++){
System.out.println(S[x][y]);
}
}
return S;
}
}
答案 0 :(得分:0)
显然问题与getS
的返回类型无关,但项目设置期望SArray
有一个应用程序入口点。
答案 1 :(得分:0)
您需要main
方法
您可以在班级中定义一个,制作new SArray()
并致电getS()
或制作新课程并在其中放置main
方法
答案 2 :(得分:0)
如果您希望代码运行,Java需要知道从哪里开始。没有任何事情发生
定义为
public static void main(String[] args) {
//whatever you want to do
}
Java如何知道从哪里开始?
答案 3 :(得分:0)
答案 4 :(得分:0)
JVM fisrt在程序中搜索入口点(主方法)。所以你应该在项目中至少有一个主要方法来运行。否则它无法启动
public static void main(String args[])
{
//code here
}
在您的示例中,您创建的constructor
主文件不能包含constructors
。删除构造函数并运行或创建另一个类并将主类放在那里并创建该类的实例。
答案 5 :(得分:0)
你的问题是你在驱动程序类和类之间混淆。我的意思是,在你的构造函数中编写了super();
,当你的类是另一个的子类时使用它,在这种情况下,你应该使用关键字extends在代码的开头定义父类。如果扩展另一个类,则可以在构造函数中使用关键字super(),以便从父类中获取构造函数,并以某种方式链接它们。例如,您说public class SArray extends InsertParentsClassName
。最终,您仍然需要一个驱动程序类来运行您的代码,您可以使用您创建的其他类作为对象。驱动程序类通常是具有main方法的驱动程序类。因此,如果这不是您的驱动程序类,您可以做的是创建一个具有main方法的不同类,并在其中创建SArray对象。
public class DriverClass{
//This is only a rough draft of what it might look like
SArray array = new SArray();
public static void main(String [] args){
//As you can see you can use the functions in SArray class here.
array.getS();
}
}
另一方面,如果这是您的驱动程序类,则您尝试在没有main方法的情况下运行代码。这是不可能的,因为Java不知道从哪里开始。你应该将它添加到你的代码中,你的代码应该放在main方法中。此外,您应该为所有功能添加关键字static,例如public static double[][] getS()
public static void main(String[] args){//Insert your code here}
这是您的代码将被执行的地方。
我建议你回到更基本的东西,因为这是Java开始变得更先进的地方,如果你不熟悉基础知识,你将无法在以后做得好。