我想知道如何从Windows Shell中使用JavaFX编译代码。
我在以下代码fxservidor.java:
public class Fxservidor extends Application {
/**
* @param args the command line arguments
*/
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) {
Synthetizer os = new Synthetizer("Ximena");
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
primaryStage.setScene(new Scene(root, 300, 250));
primaryStage.show();
}
}
Oracle Java 8
如果您使用的是Oracle Java 8或更高版本(如cayhorstmann在其回答中所指出),则JavaFX类现在位于Oracle Java实现的默认运行时类路径上。您可以直接运行javac,并java在你的程序和JavaFX类如预期会被发现,就像在JRE其他类。
javac Fxservidor.java
java Fxservidor
OpenJDK的8
如果您使用的是OpenJDK 8,则(当前)将需要从OpenJFX存储库中构建JavaFX源,并将生成的jfxrt.jar放置在您的类路径中,类似于此答案中定义的Java 7的描述。
JavaFX 2.x / Java 7
您可以使用Java编译器来编译JavaFX程序:
"%JDK_HOME%\bin\javac" -classpath "%JAVAFX_SDK_HOME%\rt\lib\jfxrt.jar" fxservidor.java
将JDK_HOME和JAVAFX_SDK_HOME占位符分别替换为已安装的JDK和JavaFX SDK的路径。
此处提供了JavaFX 2.x命令行开发和部署打包的示例Windows批处理脚本。
这是我在计算机上运行的用于编译您的应用程序的命令(您需要针对您的环境调整类路径):
javac -classpath "\Program Files\Oracle\JavaFX 2.1 Runtime\lib\jfxrt.jar" Fxservidor.java
这是我用来运行已编译类的命令:
java -classpath "\Program Files\Oracle\JavaFX 2.1 Runtime\lib\jfxrt.jar;." Fxservidor
请注意;.在Windows中用于将当前目录附加到java执行命令的类路径的令牌(如果使用Unix变体,则使用:.代替;.)。
示例应用
这是您的程序的修改后的版本,它将编译:
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 Fxservidor 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();
}
}
部署建议
如果将应用程序部署到用户,即使使用Java 8,也建议您使用相关的打包工具(例如JavaFX ant任务,javafxpackager,javafx-maven-plugin或javafx-gradle-plugin)打包应用程序。
如果您只是想对小型程序进行一些快速的命令行开发和测试,则不需要那些额外的打包工具,您只需使用此答案中的简单步骤即可。
主要内容:SDKMAN!,创建和运行第一个程序,hello.kt,运行 REPL(交互式解释器),使用命令行执行脚本Kotlin 命令行编译工具下载地址:https://github.com/JetBrains/kotlin/releases/tag/v1.1.2-2,目前最新为 1.1.2-2。 你可以选择一个最新的稳定版下载。 下载完成后,解压到指定目录,然后将 bin 目录添加到系统环境变量。bin 目录包含编译和运行 Kotlin 所需的脚本。 SDKMAN! 在 OS X、Linux、
Kotlin 命令行编译工具下载地址:https://github.com/JetBrains/kotlin/releases/tag/v1.1.2-2,目前最新为 1.1.2-2。 你可以选择一个最新的稳定版下载。 下载完成后,解压到指定目录,然后将 bin 目录添加到系统环境变量。bin 目录包含编译和运行 Kotlin 所需的脚本。 SDKMAN! 在 OS X、Linux、Cygwin、F
问题内容: 我一直在尝试将Notepad 设置为一个小的Java环境,主要是为了学习Java,因为我很难获得一个简单的程序来与NetBeans一起使用,不幸的是,有关设置Notepad 来调用Java代码的所有建议均不起作用。 我猜notepad ++发生了变化,或者Java开发工具包已经进行了大规模修改,因为我使用的所有示例都会导致错误,即使错误的余地很小。 首先,我找到了这个网站:http :
我正在尝试将clojure源代码编译成类文件,并且只使用命令行运行它,不使用lein,也不(可能)使用REPLY。 我在目录中有core.clj。 这是源代码。 根据这个站点(http://clojure.org/compilitation)中的提示,我尝试从repl获取类文件。 我在src目录中用启动REPL,然后尝试编译得到一个错误。 通过这个简单的工具将Clojure.clj编译成.clas
我试图通过执行这样的东西来组装一个apk: 但我得到以下错误: 任务:应用程序:编译FlavourNameDebugJavaBackJavac失败 重点是gradle似乎没有生成我在gradle的应用程序文件中定义的BuildConfig,在Flavor的定义上定义如下: 根据官方留档这应该是这样的方式,但我没有任何线索的原因,这是不工作。请注意,当我通过点击运行与Android Studio构建
问题内容: 我有这个目录结构: 上面一个包中的另一个文件: 在program2.java的标头中,我有 现在到我在命令行中运行以下命令时: 我收到此错误: 我可以看到编译器无法找到,但我在中有正确的 语句。我在这里需要帮助,并且在编译后,在运行该程序时是否需要考虑一些因素。 谢谢 问题答案: 尝试进入其中的一个目录,即 然后编译 为了跑步,做