我的案子非常简单。在文件夹D://redbacktree
中,我有两个文件.java
。
我想将它们编译到文件夹D://redbacktree/bin
。
我尝试的是:
javac -d bin *.java
在redblacktree
文件夹中创建了bin
文件夹,并将.class
个文件放入其中
D://redbacktree/bin/redblacktree/
但我不希望javac
在redblacktree
文件夹中创建bin
文件夹。
如何正确编译和运行?
答案 0 :(得分:1)
也许你的java文件有包声明?
package redbacktree;
编译器为每个包创建一个单独的文件夹。您可以尝试使用默认包(即完全省略包装解除),尽管使用默认包不是一个好习惯。
答案 1 :(得分:1)
我会从我的评论中创建一个答案。 首先是关闭;如果您有包声明(这是组织代码和模块的好习惯),您的文件最终会在与您的包结构匹配的文件夹结构中。
我建议您阅读javac
和java
的手册页以查看所有标记和选项。我还建议使用某种构建工具并遵循java"约定"如何组织源文件和类文件。阅读更多here。
Maven,Gradle或Buildr是Java构建工具的三个示例。
Too" fix"您当前的问题是您可以使用以下命令运行已编译的java类:
java -cp bin redblacktree.<name of your class>
即告诉java要运行哪个类,您需要使用完全限定名称(包路径+类名)。另外-cp
指定(root-)类路径,可以在其中找到已编译的类。