我有一个RDX俄罗斯方块克隆,最初是使用ide和maven进行依赖关系管理而制作的.一切都运行得很好--但是,我想知道一切都是如何工作的,所以我试图在不使用ide或maven的情况下在我的ubuntu终端中编译和运行该应用程序.
我的项目 struct 中有所有javafx依赖项和SQlite-jdbc驱动程序/slj 4 jar.
以下是我try 编译和运行该应用程序时所采取的步骤:
-
CD进入项目根目录~/Tetris,其中包含目录lib、bin和SRC.Lib包含javafx模块,bin用于.Class文件输出和项目资源(图像文件、声音文件、高分数据库),SRC包含源代码.
-
编写程序:
javac --module-track lib --add-modules javafx.base,javafx. controlls,javafx.graphics,wwwjavafx.media bin src/main/java/com/example/tetris/*.Java
到目前为止,一切都很顺利.
-
运行程序:
Java--模块路径lib--add-modules javafx. base,javafx. controlls,www.example.com,www.example.com-cp bin:lib/SQlite-jdbc-3.45.3.0.jar:lib/sl4j-api-1.7.36.jar SRC/main/Java/com/example/tetris/www.example.com
在此命令中,我将SQLite驱动程序和sl4 j添加到类路径中并try 运行该程序.首先,我得到的控制台输出表明程序正在运行: 已成功创建表格"top_players". 表中的行数:3 N:AAA,S:10000 N:BBB,S:5000
但不久之后,它崩溃了,我得到了这个神秘的错误:
Exception in Application start method
Exception in thread "main" java.lang.IllegalArgumentException: 0 > -4
at java.base/java.util.Arrays.copyOfRange(Arrays.java:3782)
at java.base/java.util.Arrays.copyOfRange(Arrays.java:3742)
at jdk.compiler/com.sun.tools.javac.launcher.Main.execute(Main.java:431)
at jdk.compiler/com.sun.tools.javac.launcher.Main.run(Main.java:192)
at jdk.compiler/com.sun.tools.javac.launcher.Main.main(Main.java:132)
这就是它给我的全部信息,没有其他信息.有人知道我可能错过了什么或做错了什么吗?
如果有帮助的话,我使用的是Ubuntu系统.我已经在PATH中添加了jdk和javafx.我真的被难住了.感谢任何看到并回复的人.