Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JVM上设置默认参数_Java_Javafx_Jvm_Javafx 8_Virtual Keyboard - Fatal编程技术网

Java 在JVM上设置默认参数

Java 在JVM上设置默认参数,java,javafx,jvm,javafx-8,virtual-keyboard,Java,Javafx,Jvm,Javafx 8,Virtual Keyboard,我正在为一个嵌入式系统开发一个javafx应用程序。(WIN 7教统局,JAVA 8) 此系统为触摸式(无键盘),但JVM未默认设置虚拟键盘 我如何在JVM上一次性地确定地设置这个参数 -Dcom.sun.javafx.isEmbedded=true -Dcom.sun.javafx.touch=true -Dcom.sun.javafx.virtualKeyboard=javafx 谢谢你的帮助 JavaFX在调用Application.launch(…)之前不会初始化。 您应该尝试设置系统

我正在为一个嵌入式系统开发一个javafx应用程序。(WIN 7教统局,JAVA 8)

此系统为触摸式(无键盘),但JVM未默认设置虚拟键盘

我如何在JVM上一次性地确定地设置这个参数

-Dcom.sun.javafx.isEmbedded=true
-Dcom.sun.javafx.touch=true
-Dcom.sun.javafx.virtualKeyboard=javafx

谢谢你的帮助

JavaFX在调用
Application.launch(…)
之前不会初始化。 您应该尝试设置系统属性,例如,在
main(String[]args)
方法中:

publicstaticvoidmain(字符串[]args){
System.setProperty(“com.sun.javafx.isEmbedded”、“true”);
System.setProperty(“com.sun.javafx.touch”、“true”);
System.setProperty(“com.sun.javafx.virtualKeyboard”,“true”);
启动(args);//启动JavaFX
}

JavaFX在调用
Application.launch(…)
之前不会初始化。 您应该尝试设置系统属性,例如,在
main(String[]args)
方法中:

publicstaticvoidmain(字符串[]args){
System.setProperty(“com.sun.javafx.isEmbedded”、“true”);
System.setProperty(“com.sun.javafx.touch”、“true”);
System.setProperty(“com.sun.javafx.virtualKeyboard”,“true”);
启动(args);//启动JavaFX
}

最后,我找到了一个类似的解决方案,将我的main封装在另一个解决方案中,该解决方案在启动我原来的main之前设置了jvm属性

 package launcher;

import application.Main;

public class myLauncher {

    public static void main(String[] args) {


        Main.main(null);

    }

}
这是主要问题

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);
            }
(需要在jar导出工作时标记->“在生成的jar中提取所需的LIB!”)


我很抱歉,但我没有一个明确的解释,这个解决方案

最后,我找到了一个类似的解决方案,在启动我原来的main之前,将我的main包装到另一个设置jvm prop的解决方案中

 package launcher;

import application.Main;

public class myLauncher {

    public static void main(String[] args) {


        Main.main(null);

    }

}
这是主要问题

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);
            }
(需要在jar导出工作时标记->“在生成的jar中提取所需的LIB!”)



我很抱歉,但我没有一个明确的解释,这个解决方案

看:泰,伙计。。。但我在发帖之前做过一次搜索。。。。这个解决方案不起作用!我可能会用一个外部启动器来解决这个问题……你能确认主方法确实被调用了吗?IIRC在某些情况下,如果主类扩展了
应用程序
,JVM可能会跳过
main
方法。请参阅(图3-1之前的最后一个项目)和(在“描述”下)确认,我通过包装我的main找到了解决方案,我将自己发布解决方案。这是一个假的,已经找到的解决方案在IDE(eclipse)中运行良好,但不在jar可执行中。请参阅:Ty mate。。。但我在发帖之前做过一次搜索。。。。这个解决方案不起作用!我可能会用一个外部启动器来解决这个问题……你能确认主方法确实被调用了吗?IIRC在某些情况下,如果主类扩展了
应用程序
,JVM可能会跳过
main
方法。参见例如(图3-1之前的最后一个项目)和(在“描述”下)确认,我通过包装我的main找到了解决方案,我将自己发布解决方案。这是一个假的,已经找到的解决方案在IDE(eclipse)中运行良好,但在jar executableHi turikhay,sry中不工作,但在java 8上不工作,我不确定,但我认为jvm在启动主程序之前需要这个参数。。。。。这是我的main->it not work 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”,“true”);launch(args);}它有!只是我需要2个主要的让它工作良好。。。一个用于在设置JVM设置后启动sencond main,sry,但不适用于java 8,我不确定,但我认为因为JVM在启动main之前需要此参数。。。。。这是我的main->it not work 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”,“true”);launch(args);}它有!只是我需要2个主要的让它工作良好。。。一个是在设置JVM设置后启动sencond main,真的需要通过反射找到方法吗?似乎过于复杂且容易出错,尤其是因为类是硬编码的。为什么不直接调用
application.Main.Main(arguments)
?这是个好主意,无论如何我还有另一个问题。。。虚拟键盘可以从IDE开始,但不能从jar开始。。。。这是令人沮丧的…另一个更新:在通过提示符启动应用程序后,我在线程“JavaFX应用程序线程”java.lang.NullPointerException中插入了此异常-->images/vk-light.png异常-->Image不能为null-->似乎找不到虚拟键盘的图像最后,在“在生成的jar中提取所需的libs”标志下,它工作了!我会再花一天时间进行测试,并将重构此帖子。。。我认为jvm在解决虚拟键盘IMG的uri时遇到了问题(但我不确定)是否真的需要通过反射找到方法?似乎过于复杂且容易出错,尤其是因为类是硬编码的。为什么不直接调用
application.Main.Main(arguments)
?这是个好主意,无论如何我还有另一个问题。。。虚拟键盘可以从IDE开始,但不能从jar开始。。。。这是令人沮丧的…另一个更新:在通过提示符启动应用程序后,我在线程“JavaFX应用程序线程”java.lang.NullPointerException中插入了此异常-->images/vk-light.png异常-->Image不能为null-->似乎找不到虚拟键盘的图像最后,在“在生成的jar中提取所需的libs”标志下,它工作了!我会再花一天时间进行测试,并将重构此帖子。。。我认为jvm在解析虚拟键盘IMG的uri时遇到了问题(但我不确定)