首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用处理java,java.lang.IllegalAccessException

使用处理java,java.lang.IllegalAccessException
EN

Stack Overflow用户
提问于 2022-02-03 02:02:28
回答 1查看 208关注 0票数 1

运行以下处理代码时:

代码语言:javascript
复制
package model;

import processing.core.*;

public class UsingProcessing extends PApplet {

    // The argument passed to main must match the class name
    
    // method for setting the size of the window
    public void settings(){
        size(500, 500);
    }

    // identical use to setup in Processing IDE except for size()
    public void setup(){
        background(0);
        stroke(255);
        strokeWeight(10);
    }

    // identical use to draw in Processing IDE
    public void draw(){
        line(0, 0, 500, 500);
    }
    public static void main(String[] args) {
     PApplet.main("model.UsingProcessing");
   }

}

我得到一个java运行时错误。

错误在下面。具体来说,它声明为"class processing.core.PApplet (in module core) cannot access class model.UsingProcessing (in module Test) because module Test does not export model to module core"

代码语言:javascript
复制
java.lang.RuntimeException: java.lang.IllegalAccessException: class processing.core.PApplet (in module core) cannot access class model.UsingProcessing (in module CovidSchoolSimulation) because module CovidSchoolSimulation does not export model to module core
    at core/processing.core.PApplet.runSketch(PApplet.java:10227)
    at core/processing.core.PApplet.main(PApplet.java:10072)
    at core/processing.core.PApplet.main(PApplet.java:10054)
    at CovidSchoolSimulation/model.UsingProcessing.main(UsingProcessing.java:26)
Caused by: java.lang.IllegalAccessException: class processing.core.PApplet (in module core) cannot access class model.UsingProcessing (in module CovidSchoolSimulation) because module CovidSchoolSimulation does not export model to module core
    at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:392)
    at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:674)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:489)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    at core/processing.core.PApplet.runSketch(PApplet.java:10221)
    ... 3 more

core.jar文件在构建路径中,所以我不明白为什么它不能工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-03 06:36:57

你的项目中有一个模块-info.java吗?您所看到的错误消息:

java.lang.RuntimeException: java.lang.IllegalAccessException:类processing.core.PApplet (在模块核心中)无法访问类model.UsingProcessing (在模块CovidSchoolSimulation中),因为模块CovidSchoolSimulation没有将模型导出到模块核心。

意味着核心(处理)模块无法对您的模块进行反射。在PApplet.main("model.UsingProcessing");中传递类名时,它使用反射来实例化类。您需要在模块info.java中执行类似的操作,以允许核心模块使用模块CovidSchoolSimulationTest上的反射,具体取决于您的错误消息是正确的:

代码语言:javascript
复制
module CovidSchoolSimulation { 
    opens CovidSchoolSimulation to core;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70965114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档