【问题标题】:How to find where the Startup folder is with Java?如何使用 Java 找到 Startup 文件夹的位置?
【发布时间】:2010-12-30 21:28:38
【问题描述】:

在我的 Java 程序中,我怎样才能找到启动文件夹在用户 PC 上的位置?我知道它在不同版本的 Windows 上有所不同。我只需要我的应用程序就可以在 Windows 上运行。任何示例代码?

【问题讨论】:

标签: java windows startup-folder


【解决方案1】:

这应该可行:

System.getProperty("user.dir")

这里有关于系统属性的概述:

http://download.oracle.com/javase/tutorial/essential/environment/sysprop.html

【讨论】:

  • 没用。它应该是这样的:C:\Users\USER\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
  • 那么变量是什么?用户名?
  • 我不太明白你的问题,我想知道启动文件夹在用户电脑上的位置,那么我应该寻找什么属性呢?还是有这样的财产?我知道这个文件夹的位置在不同版本的 Windows 上是不同的。但是没有这样的属性:user.startup_folder
  • 我想通了,是user.dir和user.home的组合
【解决方案2】:

使用 ShellLink 创建快捷方式非常简单。 https://github.com/BlackOverlord666/mslinks

马文:

<dependency>
  <groupId>com.github.vatbub</groupId>
  <artifactId>mslinks</artifactId>
  <version>1.0.5</version>
</dependency>

参考https://stackoverflow.com/a/38952899/4697928的回答

private final String STARTUP_PATH = "/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup";

private void checkAutoStartPresent() {
    File file = new File(System.getProperty("user.home") + STARTUP_PATH + "/YourShortcutFileName.lnk");
    if (!file.exists()) { // shortcut not found
        try {
            ShellLink.createLink("/YourTargetProgramPath.exe", file.getAbsolutePath());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多