Java 使用启动器运行应用程序时,是否可以获取jlink映像的位置?

Java 使用启动器运行应用程序时,是否可以获取jlink映像的位置?,java,jlink,Java,Jlink,例如,以下是输出的jlink图像: ├── bin │   ├── java │   ├── keytool │   └── launcher ├── conf │   ├── net.properties │   ├── sdp │   └── security ├── include │   ├── classfile_constants.h │   ├── jni.h │   ├── jvmticmlr.h │   ├── jvmti.h │   └── linux ├── legal │

例如,以下是输出的jlink图像:

├── bin
│   ├── java
│   ├── keytool
│   └── launcher
├── conf
│   ├── net.properties
│   ├── sdp
│   └── security
├── include
│   ├── classfile_constants.h
│   ├── jni.h
│   ├── jvmticmlr.h
│   ├── jvmti.h
│   └── linux
├── legal
│   └── java.base
├── lib
│   ├── classlist
│   ├── jexec
│   ├── jrt-fs.jar
│   ├── jspawnhelper
│   ├── jvm.cfg
│   ├── libjava.so
│   ├── libjimage.so
│   ├── libjli.so
│   ├── libjsig.so
│   ├── libnet.so
│   ├── libnio.so
│   ├── libverify.so
│   ├── libzip.so
│   ├── modules
│   ├── security
│   ├── server
│   └── tzdb.dat
├── man
│   └── man1
└── release
bin
dir中,我有
launcher
文件,它将执行我的模块化Java应用程序

我的计划是向输出的jlink图像目录添加更多目录,如
设置
工作
等。用户只需将此图像作为zip文件获取,并在解压后使用
启动器
文件来运行我的应用程序

问题是,我不知道如何访问自定义添加的目录(例如
设置
工作
,等等),因为用户可以在任何地方解压缩此图像。如果我能找到这张照片的位置,一切都会很好。也许有一种方法可以确定运行我的程序的java可执行文件的位置(因为它只是
bin
目录中的java可执行文件)?我不确定


有什么建议吗?

您可能可以获得JAR/类文件的位置。考虑到文件夹结构已知,这就足够了吗?我相信是的。但是我不相信在使用jlink时可以获得这些信息?但是。。。你真的试过了吗?作为普通模块运行与在jlink环境中运行时的输出是什么?因为启动器不是二进制的a la eclipse rcp;这只是一个调用java的脚本。是的,当然。获取类的路径时,它会给我jrt路径