我是Eclipse java、Gradle和JavaFX新手。最近我正在尝试用gradle Project编写一个javafx应用程序。以下是我想提供的各种细节。
Javafx SDK版本和位置
Scene Builder版本和位置
ui.fxml:
> <?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.171">
<children>
<Button fx:id="button1" layoutX="-317.0" layoutY="-145.0" mnemonicParsing="false" onAction="#buttonPressed" text="Hit me" />
<Label fx:id="label1" layoutX="66.0" layoutY="-98.0" text="hi" />
</children>
</AnchorPane>
Build.Gradle
plugins {
id 'java'
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.8'
}
repositories {
mavenCentral()
}
dependencies {
modules = [ 'javafx.controls', 'javafx.fxml' ]
version = "11.0.2"
}
mainClassName = 'Library'
我怀疑这里有一些问题,因为当我运行gradle项目时,我不能运行它。我只能建造它。
public class Library {
public static void main(String arg[]) {
ex2.UIApplication.run(arg);
}
}
当我运行这个时,我得到了相当多的错误。
VM参数:--module-path“C:\users\andes\javafx-sdk-11.0.2\lib”--add-modules=javafx.controls,javafx.fxml
错误:找不到或加载主类LAB_3_1.Library
package ex2;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
public class Lab3Controller {
@FXML
private Button button1;
@FXML
private Label label1;
@FXML
void buttonPressed(ActionEvent event) {
}
}
uiapplication.java:
package ex2;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class UIApplication extends Application{
@Override
public void start(Stage stage) throws Exception{
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("/ui.fxml"));
VBox root = (VBox) loader.load();
Scene scene = new Scene(root);
stage.setScene(scene);
stage.setTitle("Lab 3");;
stage.show();
}
public static void run (String arg[]) {
Application.launch(arg);
}
}
问题是,您的Mainclass直接从应用程序扩展。
您需要通过一个不从应用程序扩展的类来启动它。
从这里开始。
public class AppLauncher {
public static void main(String[] args) {
Application.launch(UIApplication.class, args);
}
}
javafx {
version = "11"
modules = [ 'javafx.controls', 'javafx.fxml','javafx.graphics']
}
dependencies {
// your other dependecies
implementation 'org.openjfx:javafx:11'
compile group: 'org.openjfx', name: 'javafx', version: '11.0.2'
}
compileJava {
doFirst {
options.compilerArgs = [
'--module-path', classpath.asPath,
'--add-modules', 'javafx.controls,javafx.fxml,javafx.graphics'
]
println options.compilerArgs
}
}
例如。 这应该运行一个简单的hello world应用程序,摘自oracle文档。然而,当我‘运行’这个代码,没有窗口打开。取而代之的是打开一个名为“Java”的应用程序。看起来'java'只是一个位于'jdk1.8.0_25.jdk/contents/home/bin'中的'UNIX可执行文件‘。应用程序'java'绝对不显示任何东西,并且在没有强制退出的情况下无法关闭。 我在MacBook上运
我现在正在学习Android,在这方面我确实是个新手。我用的是Android版的Eclipse。我已经安装了Android 5.0.1 (API 21)下的所有文件和所有工具。然后我试着创建我的简单的“hello world示例”,但是我得到了很多错误。 以下是我的错误: 你能帮我一下吗?
我想让Gradle使用Eclipse项目依赖项。与这个问题不同,我不想做任何导出,因为我不想在更改后因为忘记再导出而查找问题。与这个问题不同的是,我根本不想将Gradle集成到Eclipse中,因为我对我的Eclipse的工作方式感到满意(它比Gradle构建快得多),而且我还担心我的Eclipse 3.7.2对于这样的游戏来说可能太老了。 理想情况下,我想要 事实上,拿到罐子就足够了。 我试过的
我想在一个Swing应用程序中使用一些JavaFX组件(特别是JFXPanel的HTML5呈现支持)。我的应用程序目前是在Eclipse4.3(Kepler)中设置的,我的机器上安装了最新的Java7 JDK。 这篇来自Oracle的教程建议您只需引用一个JavaFX类,它就可以在Swing应用程序中工作。所以我输入,但是Eclipse不能将其识别为有效的Java类。它确实可以识别其他Java7类
作为一个软件开发人员,我需要做哪些步骤来允许我的JavaFX应用程序与JDK11+一起运行?有什么好的广告吗?是否可以通过Gradle获得OpenJDK?
问题内容: 正如您可能从问题本身可以理解的那样,我是Java的新手。我进行了一个练习,编写一个Java程序,该程序接收一个字符,将其打印并输出Unicode表中的下一个字符。 现在,我有解决此问题的方法: 我了解此代码的基本概念,但是我试图在Eclipse中运行此代码,但遇到一个令人讨厌的错误: 线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:M