Java “实例”;“主要”;方法在从另一个类调用时未运行
我正在学习Java,并在netbeans中试用Javafx 我在这里运行sqlite教程: 当设置为一个单独的文件时,它当然可以正常工作 我正在一个测试项目“testDB”中设置它,由于某种原因,当我初始化这个类时,该类本身被识别,但main()没有运行 下面是testdb文件本身: testDB.java: sqlitetest.javaJava “实例”;“主要”;方法在从另一个类调用时未运行,java,netbeans,Java,Netbeans,我正在学习Java,并在netbeans中试用Javafx 我在这里运行sqlite教程: 当设置为一个单独的文件时,它当然可以正常工作 我正在一个测试项目“testDB”中设置它,由于某种原因,当我初始化这个类时,该类本身被识别,但main()没有运行 下面是testdb文件本身: testDB.java: sqlitetest.java 我认为您正在混淆构造函数和主方法 只有在启动JVM、运行特定类(或者在其他地方显式调用)时,才会调用main方法 在创建类的实例时会调用构造函数,就像这里
我认为您正在混淆构造函数和主方法
- 只有在启动JVM、运行特定类(或者在其他地方显式调用)时,才会调用main方法
- 在创建类的实例时会调用构造函数,就像这里所做的那样
testdb
中,更改:
public static void main(String args[]) {
到
或者,在
Sqlitetest.main
中调用testdb.main(args)
(或使用其他一些参数),这可能是错误的。我设置它的想法是,main是在启动时启动的,因此我在那里输入的任何代码也会启动。我可能会被误解,对<实例化类时不调用code>main。当您使用java
命令执行java程序时,会调用它。使用new
运算符时,将调用构造函数。@takendark谢谢。我在答案中添加了更多关于差异的信息。
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package sqlitetest;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
/**
*
*/
public class Sqlitetest extends Application {
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
testDB test = new testDB();
test.makeStuff();
launch(args);
}
}
public static void main(String args[]) {
public testdb() {