Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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
为什么JavaFX在NetBeans之外的工作方式不同?_Java_Windows_Netbeans_Javafx - Fatal编程技术网

为什么JavaFX在NetBeans之外的工作方式不同?

为什么JavaFX在NetBeans之外的工作方式不同?,java,windows,netbeans,javafx,Java,Windows,Netbeans,Javafx,我使用Netbeans 8.1和JavaFX制作了一个Java应用程序(JDK1.7) 基本思想是用字母填充网格,行和列按顺序高亮显示,以便用户只需按一次键(空格键)即可选择字母。一旦字符数等于或大于3,我就实现了一个自动完成功能,该功能可以获取以这些字母开头的单词,并根据词法频率对它们进行排序 当我从IDE内部运行项目时,它工作得非常好,但当我尝试在IDE外部运行它时,会发生以下情况: 当我启动程序时,输入在很长一段时间内不起作用(10-15秒…尽管有时它几乎立即起作用,有时甚至需要更长的时

我使用Netbeans 8.1和JavaFX制作了一个Java应用程序(JDK1.7)

基本思想是用字母填充网格,行和列按顺序高亮显示,以便用户只需按一次键(空格键)即可选择字母。一旦字符数等于或大于3,我就实现了一个自动完成功能,该功能可以获取以这些字母开头的单词,并根据词法频率对它们进行排序

当我从IDE内部运行项目时,它工作得非常好,但当我尝试在IDE外部运行它时,会发生以下情况:

  • 当我启动程序时,输入在很长一段时间内不起作用(10-15秒…尽管有时它几乎立即起作用,有时甚至需要更长的时间)。。。但一旦它再次检测到我的按键,它就会100%的工作。它不仅限于空格键(也包括用于操纵高亮显示速度的“+”和“-”)。此外,该程序没有冻结,我可以调整大小的东西只是罚款和行/列的动画
  • 我还将一个标签放在我放置自动完成建议的行旁边。所述标签应倾斜-90°。每当我从Netbeans外部运行它时,它就会失去旋转。注意:我不使用CSS文件,而是使用.SetStyle()
仅仅因为我没有从Netbeans运行应用程序,它的行为会有什么不同

谢谢你的回答

一些可能的原因:

  • .jar文件不是最新的
  • Netbeans从.class文件运行,而在外部运行时使用.jar文件

    进行清理和重建,然后重试

  • 不同的类路径
  • Netbeans指定它希望应用程序在命令行上使用的所有库的类路径。您使用的是什么命令行?有什么不同吗

    当Netbeans运行您的应用程序时,您可以看到输出窗口中使用的命令行(您可能需要启用详细的输出形式—使用Maven可以添加--debug)

  • 如果权限降低,则需要一些时间才能解决的安全问题
  • 许多人授予Netbeans管理员权限(例如,允许它创建jar文件)。命令行上可能不是这种情况

    尝试在具有管理员权限的命令提示符下运行.jar

  • (受实际问题的启发——谢谢@BlackRainbow)——Netbeans项目将绑定到特定的Java版本。当使用
    Java从命令行运行时-jar…
    您将获得可能不同的最新Java版本

  • 尝试从命令行运行它,选择特定版本的Java。类似于
    “C:\Program Files\Java\jdk7\jre\bin\Java”…
    或类似内容。

    在外部运行之前,您是否对项目进行了清理和重建?这将确保jar与代码正确匹配。这里的要点是netbeans使用.class文件,而外部运行使用.jar文件。如果罐子不同步,你会看到这个问题。是的,我试过了(读了你的答案后又试了一次)。可悲的是,这并没有改变任何事情!您在netbeans内外使用相同的java运行时吗?实际上没有。netbeans调用的是1.7。。。当我双击Jar时,它正在调用1.8。非常感谢。如果有人对我为什么在1.8:[1]标签旋转中出现这些错误感兴趣:在1.7中,当我使用Label.setStyle(“-fx rotate:-90”),然后修改另一个属性(例如颜色)时,旋转将保持不变。在1.8中,我必须在同一个语句中附加每个样式属性,并始终提到-90旋转。[2] 输入问题:我发现如果右键单击文本区域,我的动画网格将立即开始注册按键。遗憾的是,我不知道我做了什么来修复这个问题,但它与焦点有关(因为事件侦听器位于根窗格上)。1.7很好,谢谢你的回答!问题是它使用的是Java1.8而不是1.7。。。如果我使用1.7,一切正常。有没有办法把1.7强加于人。。。如果他们没有,停止执行?@BlackRainbow建议将JRE与应用程序一起打包(请参阅javapackager工具、JavaFX Ant任务和JavaFX Maven插件),或者使用Java Web Start并在那里修复JRE版本(另请参阅部署Java JavaScript).@BlackRainbow请注意,Oracle的Java SE 7已经到了生命的尽头,因此强烈建议升级到Java SE 8,除非您与Oracle签订了支持合同。但即便如此:对于JavaFX应用程序,还是建议使用JavaSE8。