运行 java 程序使用多个文件夹中的包

Running java program using packages in multiple folders

我正在尝试 运行 具有以下结构的程序:

+src
    +gui
        -XL.java
        -moreFiles.java
        +menu
            -guiFiles.java
    +util
        -utilFiles.java
    +extra
         -extraFiles.java

我正在尝试通过调用

来编译代码
javac gui/XL.java

哪个成功了。 当我尝试 运行 将代码与

java gui.XL

我收到以下错误消息:

Exception in thread "main" java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: java/lang/invoke/StringConcatFactory
    at gui.XL.<init>(XL.java:25)
    at gui.XL.main(XL.java:58)
Caused by: java.lang.NoClassDefFoundError: java/lang/invoke/StringConcatFactory
    ... 2 more
Caused by: java.lang.ClassNotFoundException: java.lang.invoke.StringConcatFactory
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 2 more

我想我的类路径有一些问题,但我不知道如何修复它。有人有什么建议吗?

我的问题与类路径无关,或者我没有使用 IDE。我的问题来自于我正在将 'java' 命令更改为 运行 我的 java-openjdk-8 但我的编译器仍然 运行 和 java-openjdk -9。因此解决方案是

sudo update-alternatives --config javac #Change to java 8
sudo update-alternatives --config java #Change to java 8