尝试为我的java应用程序创建包

尝试为我的java应用程序创建包,java,linux,packaging,openjdk,Java,Linux,Packaging,Openjdk,我正在用java组装一个简单的RPG游戏引擎。在这一点上,当我的所有类都在一个目录中时,一切都正常工作。基本上,我知道我将得到一堆文件,并希望将它们组织成一个包结构。我按照指示做了,但似乎无法让魔法发生。发布的两个类是最不相关的,我想如果我能让它们正常工作,那么剩下的就不应该是闹剧了。作为记录,我在Leeenux中使用openJDK(Ubuntu上网本的混音) 头等舱 package adventure.engine; import java.util.*; public class Inv

我正在用java组装一个简单的RPG游戏引擎。在这一点上,当我的所有类都在一个目录中时,一切都正常工作。基本上,我知道我将得到一堆文件,并希望将它们组织成一个包结构。我按照指示做了,但似乎无法让魔法发生。发布的两个类是最不相关的,我想如果我能让它们正常工作,那么剩下的就不应该是闹剧了。作为记录,我在Leeenux中使用openJDK(Ubuntu上网本的混音)

头等舱

package adventure.engine;

import java.util.*;

public class Inventory
{
ArrayList itemList = new ArrayList();

public Inventory()
{

}

public void addItem()
{

}

public void removeItem()
{

}
}
第二点:

package adventure.engine;



import adventure.engine.*;



public class PlayerCharacter

{

private String name = "Player";

private String race;

private String plrClass;

private int level;

private int xp;

private int levelXp;

private Inventory inventory = new Inventory();



//---------

//Abilities

//---------



private static final String[] abilitiesList = {"Strength",

                    "Dexterity",

                    "Constitution",

                    "Intelligence",

                    "Wisdom",

                    "Charisma"};



private int[] abilitiesValues = new int[abilitiesList.length];



//------

//Skills

//------

private static final String[] skillsList    = {"Acrobatics"     , "Insight",

                    "Arcana"            , "Intimidate",

                    "Athletics"         , "Nature",

                    "Bluff"         , "Perception",

                    "Diplomacy"     , "Religion",

                    "Dungeoneering"     , "Stealth",

                    "Endurance"     , "Streetwise",

                    "Heal"          , "Thievery",

                    "History"};



private int[] skillsValues = new int[skillsList.length];



//***********

//Constructor

//***********

public PlayerCharacter()

{

    level = 1;

    xp = 0;

    levelXp = 1000;



    setAbility("Strength", 8);

    setAbility("Dexterity", 10);

    setAbility("Constitution", 10);

    setAbility("Intelligence", 10);

    setAbility("Wisdom", 10);

    setAbility("Charisma", 10);

}       //public PlayerSheet()





//*************

//Class Methods

//*************

public void addXp(int val)

{

    xp += val;



    if (xp >= levelXp)

    {

        level++;

        xp -= levelXp;

        //levelXp += ;

    }

}       //public void addXp(int val)





public void updateSkills()

{



}





//Mutators

public void setName(String n)

{

    name = n;

}





public void setLevel(int l)

{

    level = l;

}



public void setRace(String r)

{

    race = r;

}



public void setXP(int x)

{

    xp = x;

}





public void setClass(String c)

{

    plrClass = c;

}



//set ability value by name

public void setAbility(String a, int val)

{

    for(int i = 0; i < abilitiesList.length; i++)

    {

        if(abilitiesList[i].compareTo(a) == 0)

        {

            abilitiesValues[i] = val;

        }

    }

}



//set ability by index

public void setAbility(int index, int val)

{

    abilitiesValues[index] = val;

}



//set skill by name

public void setSkill(String name, int val)

{

    for(int i = 0; i < skillsList.length; i++)

    {

        if(skillsList[i].compareTo(name) == 0)

        {

            skillsValues[i] = val;

        }

    }

}



//set skill by index

public void setSkill(int index, int val)

{

    skillsValues[index] = val;

}



//Accessors

public static String[] getAbilityList()

{

    return abilitiesList;

}



public static String[] getSkillsList()

{

    return skillsList;

}



//retrieve an ability value by name

public int getAbility(String a)

{

    int val = 0;



    for(int i = 0; i < abilitiesList.length; i++)

    {

        if(abilitiesList[i].compareTo(a) == 0)

        {

            val = abilitiesValues[i];

            break;

        }

    }



    return val;

}



//retrieve an ability value by index number

public int getAbility(int i)

{

    return abilitiesValues[i];

}



public int getSkill(String s)

{

    int val = 0;



    for(int i = 0; i < skillsList.length; i++)

    {

        if(skillsList[i].compareTo(s) == 0)

        {

            val = skillsValues[i];

            break;

        }

    }



    return val;

}



public int getSkill(int i)

{

    return skillsValues[i];

}



public String getName()

{

    return name;

}



public String getRace()

{

    return race;

}



public String getPlrClass()

{

    return plrClass;

}



public int getLevel()

{

    return level;

}



public int getXP()

{

    return xp;

}



public int getLevelXP()

{

    return levelXp;

}



}       //public class PlayerCharacter
对此的任何反馈都将不胜感激。如何解决这个问题?

两件事

1) 您可能没有编译清单
2) PlayerCharacter和Inventory在同一个包中。所以没有必要进口

您应该将它们编译为

javac冒险/engine/Inventory.java

javac adventure/engine/PlayerCharacter.java


编制了清单。已尝试删除导入,但仍然存在相同的错误。您也可以使用通配符。使用该设置从终端编译时没有错误。使用SCite作为我的编辑器,所以我只是使用它的默认编译选项。谢谢。你为什么要手动(一个接一个地)编译源文件?试试maven、ant或其他构建工具。我的大学学习已经完成了对java的介绍。在这个阶段,他们让我们手工编译。我会采纳任何建议,让这更容易。我来看看。请解释一下执行javac的目录,以及执行的javac命令。这可能有助于解决你们的问题,我想问题已经解决了。你能用“你是如何编译类的”来编辑这篇文章吗
PlayerCharacter.java:18: cannot find symbol
symbol  : class Inventory
location: class adventure.engine.PlayerCharacter
    private Inventory inventory = new Inventory();
            ^
PlayerCharacter.java:18: cannot find symbol
symbol  : class Inventory
location: class adventure.engine.PlayerCharacter
private Inventory inventory = new Inventory();