1

我有一个愚蠢的问题,因为我在这里搜索了数据库,但找不到答案。我是 javaFX 的新手,所以......请帮帮我!

这是我使用的代码。虽然这是一个示例代码。

package helloworld;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class HelloWorld extends Application {
    public static void main(String[] args) {
        launch(args);
    }


    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Hello World!");
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                System.out.println("Hello World!");
            }
        });

        StackPane root = new StackPane();
        root.getChildren().add(btn);
        primaryStage.setScene(new Scene(root, 300, 250));
        primaryStage.show();

    }

}

使用 .\helloworld 从目录中编译后javac HelloWorld.java,我运行以下命令:

PS D:\documents\javafx\helloworld> javafxpackager -createjar -appclass HelloWorld -srcdir . -outdir out -outfile hello.jar -v

但是,当我跑步时,cd我得到了这个:outjava -jar hello.jar

PS D:\documents\javafx\helloworld\out> java -jar hello.jar Error: Could not find or load main class HelloWorld

发生了什么或者我做错了什么?

任何建议/解释都非常感谢。

谢谢大家。

泽斯托斯。

4

1 回答 1

1

您的应用程序类位于 helloworld 包中,因此要引用它,您应该使用 helloworld.HelloWorld 的完全限定名称。

这是使用您问题中的示例 HelloWorld 应用程序的完整示例。我在安装了 Oracle Java 8u25 的 OS X 10.8 上尝试了这个,它对我有用。

$ java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

$ javac -version
javac 1.8.0_25

$ tree 
.
├── classes
└── src
    └── helloworld
        └── HelloWorld.java

3 directories, 1 file

$ javac -d classes src/helloworld/HelloWorld.java

$ tree
.
├── classes
│   └── helloworld
│       ├── HelloWorld$1.class
│       └── HelloWorld.class
└── src
    └── helloworld
        └── HelloWorld.java

4 directories, 3 files

$/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/javapackager -createjar -appclass helloworld.HelloWorld -srcdir classes -outdir dist -outfile hello.jar -v

$ tree
.
├── classes
│   └── helloworld
│       ├── HelloWorld$1.class
│       └── HelloWorld.class
├── dist
│   └── hello.jar
└── src
    └── helloworld
        └── HelloWorld.java

5 directories, 4 files

$ java -jar dist/hello.jar 
于 2014-12-15T19:18:12.737 回答