我正在尝试从Windows,Mac或Linux上的不同目录编译多个.java程序... cmd或终端。没关系。
但是,我确信你们中的许多人都熟悉Netbeans如何将文件存储在不同的文件夹中。我一直把不同的概念放到不同的文件夹中,现在我想运行它们。
例如,我看过的国际象棋程序有点像这样:
/Chess
/build
/classes
/chess
/Chess.class
/color
/colorHelper.class
/game
/Board.class
/Game.class
/GameManager.class
/Player.class
... etc. (the rest of the directories with .class files)
/build.xml
/gameLog.txt
/manifest.mf
/nbproject
... (some xml and .properties files)
/src
/chess
/Chess.java
/color
/ColorHelper.java
/game
/Board.java
/Game.java
/GameManager.java
/Player.java
... etc. (the rest of the directories with .java files)
所以,我的问题是,如何使用javac *.java
(可能在/src
中)编译所有文件(因为否则我会收到cannot find symbol
错误。 file not found
当我在javac *.java
中src
运行时,我感到很茫然。
提前致谢,
迪伦
答案 0 :(得分:1)
它不会一次编译。实际上,你的src
目录不包含任何.java文件,所以它不会以这种方式完成!
我担心您必须通过更改src
文件夹下的路径来执行此操作。
您必须为每个chess
,color
,game
等执行此操作。目录实现相同。
因此,在每次运行时更改路径或按照注释中的建议进行,以实现所有java文件的编译。
或强>
正如David Ehrmann在您的评论中提出的那样,您可以通过使用javac $(find . -name '*.java')
一次编译来实现。
它将编译您当前目录(src(.)
)下的所有.java文件。
答案 1 :(得分:0)
javac * .java编译当前目录中的所有Java文件。在您的情况下,由于您根据包具有不同的文件夹层次结构,因此无法一次完成此操作。最多可以在每个文件夹上运行命令javac * .java。
答案 2 :(得分:0)
您应该尝试使用maven或ant等自动构建系统。它允许您使用单个命令构建项目。它甚至允许运行单元测试,并将您的应用程序打包为jar(或您喜欢的任何包)。
如果你真的不想使用其中一个,你仍然可以使用一个(虽然冗长)命令。 * .java只是文件路径中的通配符。它查找当前目录中以.java结尾的所有文件。在linux上你可以试试这样的find -name "*.java" | xargs javac
。第一部分是一个find命令,它以递归方式搜索以.java结尾的所有文件。这个管道是xargs的文件列表,它们将它们作为java命令的单独参数添加。
这真的不是最好的方式。再试一次,试试maven。设置基本项目非常简单,您的IDE通常还有一个为您创建maven项目的功能。
答案 3 :(得分:0)
在同一个文件夹中编译多个包含不同包名的文件
javac -d . *.java