如何在 Go 代码中获取包含 Java 脚本的绝对路径?

如何在 go 代码中获取包含 java 脚本的绝对路径?

如何在 go 中获取包含 java 脚本的绝对路径?

在所给的代码片段中,go 代码被编译到可执行文件 /usr/bin/demo 中。当执行 apple.java 时,go 代码也会被执行,但问题是无法直接获取 apple.java 的绝对路径。

为了解决这个问题,我们可以使用 go 的 os 包和 path/filepath 包来获取当前执行脚本的绝对路径,然后使用相对于脚本的路径来获取 apple.java 的绝对路径。

package main

import (
    "fmt"
    "os"
    "path/filepath"
)

func main() {
    // 获取当前可执行文件的路径
    execPath, err := os.Executable()
    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    // 获取当前执行的脚本的路径(通过 os.Args[0])
    scriptPath := os.Args[0]

    // 将路径转换为绝对路径
    absPath, err := filepath.Abs(scriptPath)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    // 打印绝对路径
    fmt.Println("Absolute path:", absPath)
}

这种方法将输出包含 apple.java 的绝对路径,即使它是使用相对路径执行的。

以上就是如何在 Go 代码中获取包含 Java 脚本的绝对路径?的详细内容,更多请关注硕下网其它相关文章!