java – -sourcepath vs -classpath
学习oracle认证我正在尝试考试期间可能出现的所有可能情况.
例如,这里有一点关于 shell命令行(基于unix)的疑问: 让我们假设有一个名为myProject的文件夹和一个名为myProject / source的子文件夹. File SubFile.java位于myProject / source文件夹中,另一个文件File.java位于myProject文件夹中. 通过键入以下命令,我会遇到不同的行为: cd源(因此,目前我在“myProject / source”) javac -sourcepath ../ File.java javac -classpath ../ SubFile.java //使用标志-classpath它似乎接受../语法来访问超级文件夹. 你知道它为什么会这样吗?而且有没有机会使用-sourcepath标志访问超级文件夹? 解决方法
这取决于SubFile是否也引用File.
请考虑以下代码: public class SubFile { private static File file = new File(); } 假设此文件位于源文件夹中,并假定您位于源文件夹中 javac -sourcepath ../ SubFile.java 将SubFile.java编译到源文件夹中的SubFile.class中,并将File.java编译到父文件夹中的File.class中.如果这些文件之间没有依赖关系,那么编译器将无法编译File.java(意味着,编译器不会自动编译源路径上的所有文件). 使用-classpath进行编译时,除了明确指定单独的源路径之外,还会在类路径中搜索源文件 – 在下列情况下,编译器将抛出错误(假设您之前已清理过File.class文件): javac -classpath .. -sourcepath temp SubFile.java 有关更多信息,另请参见javac – Java programming language compiler和Differences between classpath and sourcepath options of javac. 这两个链接的重点是:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |