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