2011-11-06 107 views
23

在eclipse中的一个项目的src目录中创建一个文件夹时,它使该文件夹成为一个包。有什么办法可以避免这个文件夹自动成为一个包吗? 例如,我在src目录中添加主文件夹。我不希望它成为一个包。我怎样才能做到这一点?在eclipse中添加eclipse中的文件夹而不打包它

假设我补充这样的文件夹:的src/main /组织/阿帕奇。我不想让main.org.apache成为一个包,相反,我想从org开始打包。 (即,org.apache)。

回答

28

Eclipse强制您区分源目录和普通文件夹。源文件夹中的任何子目录都将被视为一个包。

在你的情况,你可以创建一个普通的文件夹的src/之外,以防止子目录被解释为包。

或者,您可以修改项目属性有src/被认为是一个普通的目录,并把它内源目录。

您可以管理在项目目录被认为是源目录:

  1. 右键单击您的项目,然后单击Properties
  2. 在左侧窗格中,单击Java Build Path。在右侧窗格中,选择Source tab
  3. 在这里你可以添加/编辑/删除源文件夹。
+0

但是,如果我们这样做,并且文件不再被识别为“src文件”,那么我们如何编译和运行/调试项目(Ctrl F11)? – Pacerier

+0

你是对的,你所有的代码仍然需要进入'src'文件夹或者它不会被编译。 –

+1

有什么办法可以配置Eclipse,以便我们可以将包中的类放入多个文件夹中? – Pacerier

0

src目录中的任何文件夹都会成为一个包。如果你想有一个主文件夹,然后创建一个名为main的源文件夹,然后在主文件夹中创建所需的包。

11

你需要去项目 - >属性 - > Java构建路径 - >源代码(标签)。

从“源文件夹上构建路径”删除src

然后添加src/main作为源文件夹。如果你已经有org,那么你的包应该根据需要从org开始。

0

当您运行在Eclipse Java项目,当前工作目录是项目的根文件夹。那么为什么不在那里创建资源文件夹呢?

ProjectDirectory 
../bin 
../src 
../resourceDirectory 

然后,在你的项目,你可以用

public File getDirectory(String dir) { 
    File cwdir = new File(".").getParentFile(); // remove the "." in path 
    for (File f : cwdir.listFiles()) { 
     if (f.isDirectory() && f.getName().equals(dir)) { 
      return f; 
     } 
    } 
    return null; 
} 

File resourceDir = getDirectory("resourceDirectory"); 
if (null == resourceDir) { 
    System.err.println("Resource directory not found"); 
    System.exit(-1); 
} 

注意取resourceDirectory你可能也许想创建一个实用工具类的getDirectory()方法,或类似的东西。这只是一个例子。

底线是,应用程序将最有可能被推出,它应该是,你可能只使用一个启动文件(.bat,.SH等),要做到这一点呢。无需将资源目录放入源文件或二进制文件夹中;让他们分开。

3

我在**中添加了“Excluded”模式到'Java Build Path - > Source - > src/main/resources',我的软件包在Eclipse中成为一个简单的文件夹。

+0

这正是我一直在寻找的谢谢! – Potion