为了账号安全,请及时绑定邮箱和手机立即绑定

执行java可执行文件(.exe)时如何获取CMD的目录

执行java可执行文件(.exe)时如何获取CMD的目录

慕码人2483693 2023-06-04 16:46:05
您如何从已导出并转换为 .exe 文件的 java 文件中找到 CMD 当前所在的当前目录。我不是在寻找当前工作目录,因为它只会让我找到 .exe 文件的位置。System.getProperty("user.dir") 不是我要找的。与 new File(".") 相同如果 cmd 是C:Users/User/Desktop 然后我调用file.exe,我想知道路径 C:Users/User/Desktop,而不是目录file.exe。我通过以下方式将 Main.java 文件转换为 .exe:(使用 Eclipse)导出为可运行的 Jar 文件作为 file.jarLaunch4j - Outputfile = file.exe - Jar 运行时路径 = Jars/file.jar - 不要包装 jar,仅启动
查看完整描述

2 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

如此处所述,您将使用:

System.getProperty("user.dir");

它会给你用户的工作目录。

输出是:

C:\Foo> java -jar bar\baz.jar
Directory: C:\Foo

因为这对您不起作用,所以问题一定来自 Launch4J。

当您启动 Launch4j 时,Option Basic -> Change Dir 中有一个小点,将其删除,您会很高兴。

//img1.sycdn.imooc.com/647c4f8a0001e45f04910031.jpg

这里的参考是我的 Launch4J 配置:

<?xml version="1.0" encoding="UTF-8"?>

<launch4jConfig>

  <dontWrapJar>false</dontWrapJar>

  <headerType>console</headerType>

  <jar>C:\Foo\bar\baz.jar</jar>

  <outfile>C:\Foo\bar\baz.exe</outfile>

  <errTitle></errTitle>

  <cmdLine></cmdLine>

  <chdir></chdir>

  <priority>normal</priority>

  <downloadUrl>http://java.com/download</downloadUrl>

  <supportUrl></supportUrl>

  <stayAlive>false</stayAlive>

  <restartOnCrash>false</restartOnCrash>

  <manifest></manifest>

  <icon></icon>

  <jre>

    <path></path>

    <bundledJre64Bit>false</bundledJre64Bit>

    <bundledJreAsFallback>false</bundledJreAsFallback>

    <minVersion>1.6</minVersion>

    <maxVersion></maxVersion>

    <jdkPreference>preferJre</jdkPreference>

    <runtimeBits>64/32</runtimeBits>

  </jre>

</launch4jConfig>

另一种可能的解决方法是使用.bat如下文件:


java -jar bar\baz.jar

并将这个bat打包成一个exe文件。


查看完整回答
反对 回复 2023-06-04
?
森栏

TA贡献1810条经验 获得超5个赞

这应该工作:


import java.util.*;

import java.lang.*;


public class GetExePath

{

  public static void main(String args[]) {

    try{

      String exePath = System.getProperty("user.dir");

      System.out.print("exe path at ="+exePath .replace("\\", "/"));

    }catch (Exception e){

      System.out.println("Some Exception ="+e.getMessage());

    }

  }

}

输出 :


D:\vinay_hegde\javaexample>javac GetExePath.jav


D:\vinay_hegde\javaexample>java GetExePath

exe path at = D:\vinay_hegde\javaexample


查看完整回答
反对 回复 2023-06-04
  • 2 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信