我知道Oracle在8u33中删除了JavaFX,但我想知道为什么我不能将JavaFX与jdk1.8.0一起使用?我是从Oracle档案馆获得的(http://download.oracle.com/otn/java/jdk/8-b132/jdk-8-linux-arm-vfp-hflt.tar.gz)
我已将其解压缩/usr/bin/java_8_arm/jdk1.8.0并运行我的.jar文件sudo /usr/bin/java_8_arm/jdk1.8.0/bin/java -jar jarfile.jar
运行/usr/bin/java_8_arm/jdk1.8.0/bin/java -version回报
java version "1.8.0"
Java (TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot (TM) client VM (build 25.0-b70, mixed mode)
Run Code Online (Sandbox Code Playgroud)
并运行 System.out.println("Running Java version: " + Runtime.class.getPackage().getImplementationVersion());
回报 Running Java Version: 1.8.0
我得到的错误是:
Exception in thread "main" java.lang.NoClassDefFoundError: javafx/embed/swing/JFXPanel
at front_end.GUI.initGUI(GUI.java:47)
at back_end.Run.main(Run.java:28)
Caused by: java.lang.ClassNotFoundException: javafx.embed.swing.JFXPanel
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 2 more
Run Code Online (Sandbox Code Playgroud)
如果您想知道,我正在编程并通过Windows 7将程序编译为共享文件,并从Raspberry …
我正在制作一个包含文件复制的应用程序,但是当我浏览一个大目录(1000+)文件并将它们复制到另一个文件夹时,它使用290+ MB的RAM.
那么,有没有办法改变File的FileOutputStream,而无需创建一个新的实例FileOutoutStream类?
编辑:
这是我的Java 7 API版本.
Path source = FileSystems.getDefault().getPath(Drive.getAbsolutePath(), files[i].getName());
Path destination = FileSystems.getDefault().getPath(Save);
try {
Files.copy(source, destination);
} catch (FileAlreadyExistsException e) {
File file = new File(Save + files[i]);
file.delete();
}
Run Code Online (Sandbox Code Playgroud)
请记住,这是在一个for循环中,正在测试1000多个文件计数.使用当前的方法,我使用270+ MB的RAM