繁体   English   中英

在另一个包的主包中使用一个包中的java类(同一项目)

[英]Using java class from one package in main of another package (Same project)

我正在用Java处理的项目中有两个软件包,当我在另一个软件包中运行类的主体时,需要从一个软件包中调用一个类。

我有一些如下所示的内容:

Project JavaCode
    /src
        /fr.insalyon.tc.framework
            Main.java
            Gameplay.java
        /Game
            Wythoff.java

问题是在Wythoff.java文件中,我调用import fr.insalyon.tc.framework.Gameplay; 但是运行Main.java时出现错误,提示它找不到类Wthoff。

Main.java和Gameplay.java都具有package fr.insalyon.tc.framework; 作为第一行,Gameplay是一个界面,Wythoff实现了Gameplay来玩游戏。 主要功能如下:

BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) );
nomClasse = in.readLine();
Class<?> votreClasse = Class.forName(nomClasse);  
JeuCombinatoire jeu = (JeuCombinatoire) votreClasse.newInstance();

当我运行Main并提示我键入类名称时,键入Wythoff会给我ClassNotFoundException

我不知道如何修改项目或软件包以使其一起工作,同时保持当前软件包不变,我不想在默认软件包中包含Wythoff.java,它必须位于/ Game中

Class.forName(nomClasse); 需要完整的类名,如docs所述

所以你必须输入Game.Wythoff

的Class.forName(nomClasse); 需要类名的完全合格路径。 请将nomClasse更改为(packgname.classname)和Improt Appropriat软件包。

注意:-有关更多信息,请阅读Java文档链接:-https: //docs.oracle.com/javase/8/docs/api/

您需要输入fr.insalyon.tc.framework.Game.Wythoff ,这是完全限定名称。 或者,您也可以键入Game.Wythoff因为包含main方法的类位于直接父包中。 并且请注意,通常包名称以简单字母开头,例如game not Game

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM