升级到新计算机后,所有程序上的Java.Lang.IllegalAccessError

升级到新计算机后,所有程序上的Java.Lang.IllegalAccessError,java,illegalaccessexception,Java,Illegalaccessexception,我昨天买了一台新电脑(戴尔XPS13)。我刚刚安装了JDK,并将所有旧Java项目复制到新设备上,但当我尝试运行这些程序时,会出现非法访问错误 编辑:注意:在升级之前,我使用的是jdk1.8.0_151。我现在使用的是jdk-12.0.2 我已经尝试过在一些项目中重新编译所有类,但这没有帮助。请注意,非法访问错误仅在运行时发生。我见过其他关于非法访问错误的stackoverflow帖子,但他们的解决方案都不适合我 Exception in thread "main" java.lang.

我昨天买了一台新电脑(戴尔XPS13)。我刚刚安装了JDK,并将所有旧Java项目复制到新设备上,但当我尝试运行这些程序时,会出现非法访问错误

编辑:注意:在升级之前,我使用的是jdk1.8.0_151。我现在使用的是jdk-12.0.2

我已经尝试过在一些项目中重新编译所有类,但这没有帮助。请注意,非法访问错误仅在运行时发生。我见过其他关于非法访问错误的stackoverflow帖子,但他们的解决方案都不适合我

    Exception in thread "main" java.lang.IllegalAccessError: failed to access class Tree from class BinTree (Tree is in unnamed module of loader 'app'; BinTree is in unnamed module of loader com.sun.tools.javac.launcher.Main$MemoryClassLoader @48a242ce)
    at BinTree.main(BinTree.Java:12)
编辑:此项目的项目层次结构为:

    BinTree:
        Tree:
            Node
编辑:这是项目的主要类:

    import java.util.Scanner;
    import java.util.ArrayList;
    class BinTree {
        public static void main(String[] args) {
            //Create randomized values for a new tree 
            ArrayList<Double> toSort = new ArrayList<Double>();
            for (int i = 1; i <= 1300; i++) {
                double rand = 1 + ((int)(Math.random()*100000));
                toSort.add(rand);
            }
            //Create tree
            Tree binTree = new Tree(toSort);
            binTree.getGreatestNode();
            binTree.sort();
        }
    }
import java.util.Scanner;
导入java.util.ArrayList;
类二叉树{
公共静态void main(字符串[]args){
//为新树创建随机值
ArrayList toSort=新的ArrayList();

对于(int i=1;i尝试一次编译项目的所有
.java
源文件。如果在同一目录中有所有三个文件
BinTree
Tree
Node
,则可以使用cmd/terminal轻松地转到该目录并编写:

javac *.java

它应该一次编译该目录中的所有java文件。

升级之前,您的项目是否在java 9上?您可以共享主类的代码吗?您可以发布项目的包层次结构吗?一旦您可以在项目中创建
模块info.java
,这应该很容易解决。@JacobG.是的。我将发布层次结构为了简单起见,我还将把错误消息切换到更简单的项目中。@M.Prokhorov在升级之前我使用的是jdk 1.8.0151。我现在使用的是jdk-12.0.2。它们都在同一个目录中。我运行了“javac*.java”。所有编译都没有失败。但是,我仍然收到相同的非法访问错误。可能是使用某些测试库执行不再支持的反射调用。