好的,所以我的问题可能会有点令人困惑,所以请耐心等待。
我是以静态的方式从不同的类访问此方法 :
// Call
GuiHandling.handleGui();
// Method
public static void handleGui()
{
EventQueue.invokeLater(new Runnable()
{
@Override
public void run()
{
try
{
GUI gui = new GUI();
gui.setLocationRelativeTo(null);
TabMaker.MAIN_GUI = gui;
} catch (Exception e)
{
e.printStackTrace();
}
}
});
do
General.sleep(10);
while (!Config.MOVE_ON && !Config.STOP_SCRIPT);
}
我在java中有两个项目,具有完全相同的包和类命名,即。 scripts.gui.guiUtil
当我运行程序时,其他项目的GUI将加载。
所以,基本上我要问的是,我将如何去除静态修饰符,并非静态地访问它以便正确加载GUI?
注意: - 我没有导入其他类 - 它正在加载另一个GUI,因为两个项目都在同一个JVM下运行 - 我试过这个:http://java.dzone.com/articles/why-static-bad-and-how-avoid 但我不确定如何初始化Client构造函数,或者即使这样可以解决我的问题。
在此先感谢,如果我能清除任何内容,或者我还有其他任何内容,请告诉我
答案 0 :(得分:2)
我不认为这里的问题是静态的与非静态的,而是你的软件包名称存在冲突。听起来他们两个都在你的类路径上。这可能会导致问题,因为首先会加载类路径中的那个。
您需要1)只在您的类路径中有一个,2)更改包命名约定或3)确保您要加载的那个在类路径上的另一个之前。选项#3虽然脆弱但容易破碎,所以只能将其作为最后的手段使用。