2012-10-09 141 views
1

我有一个小型的java项目。我想保持一个结构,以便如何在我的项目文件夹中组织文件。javac从文件夹A编译文件到文件夹B(linux)

有3个文件夹:bin/res/src/。 在src中都是源文件。 res是一些资源,如打印的文本文件是在运行时保存的文件。 在bin中,所有二进制文件应该在哪里。

我发现,我可以用-d参数编译我的源文件到bin文件夹。

javac -d bin src/*.java

但我无法从我的项目文件夹运行java bin/Main它给了我一个ClassNotFound的错误。 (在bin去,然后运行java Main作品。为什么?)

第二个问题是,该水库文件只有当res/bin/访问。我希望它有点像在Eclipse中。在res/中使用的源代码文件与执行程序在项目文件夹中一样。

我希望你明白我想要做什么。并感谢您的帮助!

回答

2

Java需要.class文件可从类路径根目录中定位。所以如果你的类路径是.,那么类com.mycompany.MyClass应该在./com/mycompany/MyClass.class。因此,要从基本目录运行文件,请通过将-cp bin命令行参数设置为java来设置类路径。

你如何试图去res文件?如果你使用上面的-cp技巧,你应该可以使用类似new FileReader("res/file1.txt")的东西。如果你在bin文件夹中运行,你需要new FileReader("../res/file1.txt")

+0

谢谢你的工作。 是的,我正在像你刚才提到的那样访问它们。 在手册页中有关于源路径和类路径的信息。 我有点困惑,因为-d参数将我的文件编译到另一个文件夹中。但是classpath做什么呢? (和sourcepath ??) – a2r

相关问题