gpt4 book ai didi

java - 在命令行界面写一个看似自指的 "-d . "有什么用

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:06:37 25 4
gpt4 key购买 nike

在命令行界面编译应用程序时,有时会看到这样写的命令:

javac -d . HelloWorld.java

我的理解是:

  1. -d <directory> = 指定放置生成的类文件的位置
  2. . = 当前文件夹

我的问题是:写-d .的目的是什么? ?

这似乎是 self 参照,完全多余/不必要。我只希望以下内容,据我所知具有相同的效果并且不那么冗长:

javac HelloWorld.java

有什么我想念的吗?

我使用 symbolhound.com 在网上搜索这个特定的短语,但找不到任何解释。

This page在 Oracle Java 网站上,例如:

javac -d . XorInputStream.javajavac -d . XorOutputStream.javajavac -d . XorSocket.javajavac -d . XorServerSocket.javajavac -d . XorServerSocketFactory.javajavac -d . XorClientSocketFactory.javajavac -d . Hello.javajavac -d . HelloClient.javajavac -d . HelloImpl.java

最佳答案

当源目录不是当前目录时

假设你在/tmp/src中有一个Hello.java文件

当你在/tmp时,编译

javac -d . src/Hello.java

将类文件放在当前目录中,所以它是/tmp/Hello.class

如果没有这个选项,它会进入与源文件相同的目录,即/tmp/src/Hello.class

MOREOVER 当涉及 时会有所不同。编译这段代码

package Foo;

public class Hello {
public static void main(String[] args) {
System.out.println("Hello, World");
}

使用 -d . 选项从 /tmp/src 目录为包构建一个子目录

/tmp/src
├── Foo
│   └── Hello.class
└── Hello.java

javac Hello.java 将类文件留在当前目录中

$ tree
.
└── Hello.java

0 directories, 1 file
$ javac Hello.java
$ tree
.
├── Hello.class
└── Hello.java

0 directories, 2 files

在使用 javac 1.8.0_101 的测试中没有动物受伤。

关于java - 在命令行界面写一个看似自指的 "-d . "有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38811937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com