2011-06-01 89 views
4

我正在学习使用Springsource Tool Suite(STS)和Spring框架进行开发。我正在尝试用于eclipse的Amazon AWS SDK,并决定将它安装到STS中。当我跟着创建一个新的AWS项目时,它将.java文件放在src下,而不是src/main/java,当我尝试构建它时,它说Springsource工具中src/main/java和src有什么区别

“没有主” 或类似的东西。

但是,当我将AwsConsoleApp.java和AwsCredentials.properties移动到src/main/java(默认包)时,我可以将该文件作为Java应用程序运行。

我的问题是,src/main/java - > default package和src - > main有什么区别。我们已经附上图片,以澄清事情:

Project_Explorer_View

回答

4

答:

在Eclipse(和STS以及)每个Java项目,具有相关的构建路径,它被指定的,哪些文件夹中该项目包含Java类。因此,src/src/main/java之间的区别在于src/main/java被配置为包含Java类(或Eclipse术语中的源文件夹)的文件夹,而src/文件夹仅包含源文件夹。

更多信息可在Eclipse Help中找到。

我不确定是什么原因导致您的Java类最终出现在错误的文件夹中,但这意味着它们不在项目的类路径中。因此,当您将应用程序作为Java应用程序运行时,它会抱怨它找不到main()方法(这是任何Java应用程序的默认入口点)。

当你在src/main/java的默认包下移动你的类时,所有东西都到位:Eclipse找到你的Java类和main()方法。

+1

任何人都可以告诉我,当我们创建一个新的Maven项目时,src/main/java和src/test/java被创建。这两者之间的基本区别是什么。基本上,在准备webdriver自动化脚本时,我们将所有测试用例和java文件添加到src/test/java文件夹中。我们为什么这样做? – 2013-09-16 14:18:45

+0

@Nilanjan这是Maven关于如何组织项目以便管理的建议。所有在生产环境中部署的或者将被其他模块使用的东西通常放在src/main/java中。所有你为这个模块编写的测试都会在src/test/java中进行。当Maven编译时,它将文件从两个文件夹中分离出来,并仅在必要时将它们合并。例如,如果您在另一个模块中使用该模块,则只会获得src/main/java。当你运行测试时,classpath将被合并为src/main/java和src/test/java。 – 2013-10-21 17:30:31