Ale*_*lex 35 java command-line javac
我阅读了Sun文档和Stack Overflow上的很多帖子,但我仍然对Java编译器选项-cp
和Java之间的差异感到困惑-sourcepath
.
假设我有这个目录结构:
c:\Java\project1\src (where the Java source files are)
c:\Java\project1\bin (where the Java class files will be or already are)
Run Code Online (Sandbox Code Playgroud)
我们还说我MainClass.java
在包中有一个源文件com.mypackage
,并且源文件夹中的目录结构正常.
我在project1目录中并运行:
javac -d bin -sourcepath src src/com/mypackage/MainClass.java
Run Code Online (Sandbox Code Playgroud)
要么
javac -d bin -classpath src src/com/mypackage/MainClass.java
Run Code Online (Sandbox Code Playgroud)
我得到了同样的结果.在详细模式下,源文件的搜索路径src
在两种情况下都是如此.
如果有人能帮助我弄清楚这些选项的具体细节,那就太好了.
sta*_*ker 25
-classpath classpath
Run Code Online (Sandbox Code Playgroud)
设置用户类路径,覆盖CLASSPATH环境变量中的用户类路径.如果既未指定CLASSPATH或-classpath,则用户类路径由当前目录组成.
如果未指定-sourcepath选项,则会在用户类路径中搜索源文件以及类文件.
Run Code Online (Sandbox Code Playgroud)-sourcepath sourcepath
指定源代码路径以搜索类或接口定义.与用户类路径一样,源路径条目由分号(;)分隔,可以是目录,JAR存档或ZIP存档.如果使用了包,则目录或存档中的本地路径名必须反映包名.
请注意,如果找到了源,则通过类路径找到的类会自动重新编译.
CLASSPATH告诉编译器和类加载器在哪里寻找所需的.class文件。
Sourcepath是我不常用的东西。我相信它是可选的,因为通常当前目录是sourcepath。CLASSPATH不是。
但是,如果未指定 sourcepath,则会在类路径中搜索类文件和源文件。
这让我相信我们几乎总是可以通过仅使用类路径并完全避免使用源路径来使事情变得简单。
需要同时使用 classpath 和 sourcepath 的人可能针对的是奇怪的目录内容。例如,他们可能有一个包含源文件和类文件的文件夹,但只想搜索源文件。
归档时间: |
|
查看次数: |
32547 次 |
最近记录: |