golang如何获取这种文件的绝对路径?
go代码
package main
import "fmt"
func main() {
fmt.Println("9527")
}
我把这个go编译为/usr/bin/demo
Apple.java
#!/usr/bin/demo
其他java代码
我直接执行Apple.java,里面的go代码会被执行的,我想go获取这个Apple.java的绝对路径。
我遍历了os.Args,如果java文件是相对路径执行的,得到的就是./Apple.java,如果是绝对路径执行的,能获取到。
回复
1个回答

test
2024-09-07
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)
}
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容