当前位置: 首页 > 知识库问答 >
问题:

Java移动应用程序到启动文件夹

程鸿畅
2023-03-14
public class info {
    
    public static String getautostart() {
        return System.getProperty("java.io.tmpdir").replace("Local\\Temp\\", "Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup");
    }
    
    public static String gettemp() {
        String property = "java.io.tmpdir";
        String tempDir = System.getProperty(property);
        return tempDir;
    }
    
    public static String getrunningdir() {
        String runningdir = ProjectGav.class.getProtectionDomain().getCodeSource().getLocation().getPath();
        return runningdir;
    }
    
}
    System.out.println(info.getautostart() + "\\asdf.jar");
    System.out.println(info.getrunningdir());
    Files.move(info.getrunningdir(), info.getautostart() + "\\asdf.jar");

文件。move不起作用。

共有1个答案

何长恨
2023-03-14

假设您要将jar从当前目录移动到autostart文件夹。您已经有了以下方法:

// nothing to change here - it seems to work just fine
public static String getautostart() {
    return System.getProperty("java.io.tmpdir").replace("Local\\Temp\\", "Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup");
}

// this one got confused with the '/' and '\' so I changed it
public static String getrunningdir() {
     //you need to import java.nio.file.Paths for that.
    String runningdir = Paths.get(".").toAbsolutePath().normalize().toString(); // it simulates the creation of a file in the current directory and returns the path for that file
    return runningdir;
}

现在移动文件需要路径而不是字符串,因此您需要为每个字符串创建一个路径实例:

 Path autostartPath = Paths.get(getautostart());
 Path currentPath = Paths.get(getrunningdir());

如果要指向路径中的文件(如.jar文件),可以这样做:

currentPath.resolve("myProgram.jar"); // The paths end with a `/` so you don't need to add it here
Files.move(currentPath.resolve("myProgram.jar"), autostartPath.resolve("myProgram.jar"));
 类似资料:
  • 问题内容: 我有一个Java应用程序。 该应用程序具有一个设置,该设置决定该应用程序是否在启动时启动。 目前,我可以通过在“启动项目”文件夹中放置/删除快捷方式来实现此目的。 但是,我想知道是否有更好的方法来处理此行为。 编辑 是的,它是Windows。抱歉,之前没有清除该内容。 该应用程序具有一个用户可以在其中触发动作的UI,并且该应用程序在运行时会定期在后台运行一些任务。 @Peter,如何在

  • 我有一份Java申请。 应用程序有一个决定应用程序是否在启动时启动的设置。 目前,我通过在StartUp items文件夹中放置/删除快捷方式实现了这一点。 然而,我想知道是否有更好的方法来处理这种行为。 编辑 是的,是视窗。抱歉之前没有清除。 应用程序有一个UI,用户可以在其中触发操作,并且应用程序在运行时定期在后台运行一些任务。 @Peter,如何使用应用程序中的代码更改注册表?这种方法是否与

  • 当我的应用程序启动时,将创建一个executor服务(在java.util.concurrent中使用Executors.NewFixedThreadPool(maxThreadNum))对象。当请求到来时,executor服务将创建线程来处理它们。 当应用程序启动时,它将在executorService池中创建200个线程。 只是想知道当应用程序启动时,这是一种正确的创建线程的方法吗?还是有更好

  • 如何在Eclipse中配置Java动态Web项目,使Web-INF/lib文件夹位于子文件夹中? 例如,假设我希望我的“lib”文件夹位于此处: src/main/webapp/WEB-INF/lib 我的webapp根在这里: src/main/webapp/ 如何在Eclipse中配置此功能?我知道我可以“添加jar”,但我希望它们被组织在我的应用程序构建路径库部分的“Web应用程序库”部分。

  • 我已经编写了一个Java应用程序,它可以构建flume配置文件,并将它们写入Linux机器上的磁盘。然后,应用程序构建flume命令,并尝试通过运行以下代码中的命令来启动flume代理: 如果我接受flume命令并通过终端手动执行它,它工作得很好。当java应用程序尝试执行flume命令时,什么都没有发生。这是类路径问题吗? Flume Command here: /root/flume-flum

  • 问题内容: 我已经看到许多应用程序将乐器类作为参数并在加载时作为参数,这些应用程序也将a 放到了命令行中。 Java文档说关闭了类验证。 但是,为什么有人要关闭验证,即使他们正在学习类呢? 问题答案: 我会说启动时间。加载类时,验证类是否正确需要花费一些时间。由于类可能以惰性方式加载(不是在应用程序启动时加载,而是在首次使用时加载),因此这可能会导致意外的和不希望的运行时延迟。 实际上,通常不需要