【发布时间】:2011-12-16 23:09:51
【问题描述】:
在使用 jGRASP 时,我注意到包中程序的输出与正常情况略有不同,特别是程序名称似乎是从类顶部开始的相对路径。
例如,对于包含语句 package ch01.stacks; 的 Java 程序,编译输出如下所示:
javac -g ch01\stacks\ArrayStack.java
和运行输出类似。
我想知道是否有一种相对简单的方法可以在其他程序中模拟这种行为,例如 Notepad++ 或 gedit,用户可以设置脚本来编译程序。
编辑:抱歉,我忘了提到我所说的编译脚本本质上是传递给 javac 的程序文件名。我宁愿不使用绝对路径,如果可能的话,我希望我的脚本以类似于 jGRASP 的方式工作。
为了进一步澄清手头的问题,我相信包结构给我带来了问题,因为它是在程序的当前目录中编译的。我正在寻找一种相对于包结构编译我的 Java 程序的方法。
也就是说,有没有什么方法可以检测编译所需的顶层目录(上例中的ch01),而无需通过程序查找package?
【问题讨论】:
-
那是正常行为——你想模拟什么(以及为什么)?
-
文件系统目录结构总是反映java中的包结构。这个是正常的。见download.oracle.com/javase/1.4.2/docs/tooldocs/windows/…
-
@Dave Newton 我的目的是让我的 Notepad++、gedit 等编译脚本像 jGRASP 那样无缝地检测包结构。除了在程序中寻找
package之外还有什么方法可以做到这一点? -
@M.Cain 移动回答;太长了。
标签: java compilation package relative-path jgrasp