如何为.jar中使用的运行时/进程指定文件路径?

问题描述 投票:0回答:1

我正在Java中运行一些Powershell脚本,我已经完成了程序,但是现在我不确定如何将其打包到可执行文件.jar中,同时仍然可以使用这些脚本。我已将脚本放置在项目文件中(与src文件夹处于同一级别)

String[] commands1 = {"powershell.exe", "Set-Variable", "-Name \"address\" -Value \""+javaAddress+"\";", "C:\\Users\\--\\Documents\\ieAutomate.ps1\" "};

    String runScan = "powershell.exe  \"C:\\Users\\--\\Documents\\ipScan.ps1\" " ;
    Process scanProcess = Runtime.getRuntime().exec(runScan);

[我知道.class.getResourceAsStream("ipScan.ps1")可能可以工作-但如何将其用作runScan字符串第二部分的字符串?

我也不确定如何为FileWriter指定文件路径。

    writer2or32Port = new FileWriter("C:\\Users\\--\\Documents\\serials\\2or32Port.csv");
    buffer2or32Port = new BufferedWriter(writer2or32Port);`

理想情况下,我只能在任何用户桌面上使用%USERNAME%或%USERPROFILE%之类的东西

writer2or32Port = new FileWriter("%USERPROFILE%\\Desktop\\2or32Port.csv");

但是我正在获取文件时未找到例外。任何帮助,将不胜感激。

谢谢

java jar filepath powershell-core
1个回答
0
投票

我有一个类似的问题,发现这很有用:

例如您可以将脚本放入源中,并通过getResourceAsStream()进行加载,然后将内容放在磁盘上的任何位置。然后,您可以从那里启动脚本。

public static void main(String[] args) throws IOException {

    Files.copy(Test.class.getResourceAsStream("test.ps1"), Paths.get("/tmp/sometempfile.ps1"));
    // now you know the location and can do something like: cat /tmp/sometempfile.ps1

}
© www.soinside.com 2019 - 2024. All rights reserved.