JavaFX - 生成 App Jar 时不显示虚拟键盘
JavaFX - Virtual Keyboard Doesn't Show When the App Jar is Generated
我在 IntelliJ14.14 中创建了一个 JavaFX 应用程序,它将使用 JavaFX 虚拟键盘.我在 mainApp class 控制器中添加了以下属性:
public static void main(String[] args) {
System.setProperty("com.sun.javafx.isEmbedded", "true");
System.setProperty("com.sun.javafx.touch", "true");
System.setProperty("com.sun.javafx.virtualKeyboard", "javafx");
launch(args);
}
当我 运行 来自 IntelliJ 的应用程序时,一切正常。虚拟键盘完美运行。
但是当我从 Build -> Build Artifacts... -> Build 生成应用程序的 Jar 文件并执行它时,键盘从不显示,因为未设置 VM 选项。
这是我缺少的东西...?
提前致谢...
编辑
我找到了一种方法来完成这项工作,运行使用以下命令从 cmd 中下载文件:
java -Dcom.sun.javafx.isEmbedded=true -Dcom.sun.javafx.virtualKeyboard="javafx" -Dcom.sun.javafx.touch=true -jar myApp.jar
但是我想让它只执行 Jar 文件...
编辑
还有另一种附近的方法可以完成我想要的...
在jar同文件夹下创建文件.bat并放入:
start javaw -Dcom.sun.javafx.isEmbedded=true -Dcom.sun.javafx.virtualKeyboard="javafx" -Dcom.sun.javafx.touch=true -jar myApp.jar
所以当 .bat 文件被执行并启动 jar 文件时,系统属性被正确加载...
public class MyApp {
public static void main(String[] args) {
if (args.length == 0) {
try {
// re-launch the app itselft with VM option passed
Runtime.getRuntime().exec(new String[] {"java", "-Dcom.sun.javafx.isEmbedded=true", "-Dcom.sun.javafx.virtualKeyboard=\"javafx\"", "-Dcom.sun.javafx.touch=true", "-jar", "myApp.jar"});
} catch (IOException ioe) {
ioe.printStackTrace();
}
System.exit(0);
}
// Run the main program with the VM option set
//...
//...
}
}
我在 IntelliJ14.14 中创建了一个 JavaFX 应用程序,它将使用 JavaFX 虚拟键盘.我在 mainApp class 控制器中添加了以下属性:
public static void main(String[] args) {
System.setProperty("com.sun.javafx.isEmbedded", "true");
System.setProperty("com.sun.javafx.touch", "true");
System.setProperty("com.sun.javafx.virtualKeyboard", "javafx");
launch(args);
}
当我 运行 来自 IntelliJ 的应用程序时,一切正常。虚拟键盘完美运行。
但是当我从 Build -> Build Artifacts... -> Build 生成应用程序的 Jar 文件并执行它时,键盘从不显示,因为未设置 VM 选项。
这是我缺少的东西...?
提前致谢...
编辑
我找到了一种方法来完成这项工作,运行使用以下命令从 cmd 中下载文件:
java -Dcom.sun.javafx.isEmbedded=true -Dcom.sun.javafx.virtualKeyboard="javafx" -Dcom.sun.javafx.touch=true -jar myApp.jar
但是我想让它只执行 Jar 文件...
编辑
还有另一种附近的方法可以完成我想要的...
在jar同文件夹下创建文件.bat并放入:
start javaw -Dcom.sun.javafx.isEmbedded=true -Dcom.sun.javafx.virtualKeyboard="javafx" -Dcom.sun.javafx.touch=true -jar myApp.jar
所以当 .bat 文件被执行并启动 jar 文件时,系统属性被正确加载...
public class MyApp {
public static void main(String[] args) {
if (args.length == 0) {
try {
// re-launch the app itselft with VM option passed
Runtime.getRuntime().exec(new String[] {"java", "-Dcom.sun.javafx.isEmbedded=true", "-Dcom.sun.javafx.virtualKeyboard=\"javafx\"", "-Dcom.sun.javafx.touch=true", "-jar", "myApp.jar"});
} catch (IOException ioe) {
ioe.printStackTrace();
}
System.exit(0);
}
// Run the main program with the VM option set
//...
//...
}
}