我在Eclipse中有一个maven项目。在src/main/resources下,我有一个名为“directoryToCopy”的目录,其中包含文件。一旦我运行了我的项目,我想将“directoryToCopy”复制到桌面上的本地目录“localDirec”下。
我用了这个:
File localDirec = new File("c:/desktop/scripts");
URI urlDir = ClassLoader.getSystemResource("directoryToCopy").toURI();
File srcDir = new File(urlDir.getPath());
FileUtils.copyDirectory(srcDir, localDirec);
这在本地工作正常,但是当我想将其作为可执行jar文件运行时,我会得到NullPointerException。
Exception in thread "main" java.lang.NullPointerException
at java.base/java.io.File.<init>(File.java:278)
请问有什么建议吗?
您可以随时尝试打印路径
System.out.println(getClass().getResource(getClass().getSimpleName() + ".class"));
类的<code>getResource()-文档说明了区别:
"此方法在对资源名称进行以下更改后,将调用委托给其类加载器:如果资源名称以"/"开头,则保持不变;否则,将"."转换为"/"后,包名称将在资源名称之前。如果此对象由引导加载器加载,则将调用委托给ClassLoader.getSystemResource."
使用/当路径不应该改变时,尝试打印加载的路径,它会使事情变得清晰。
终端中使用lldb运行可执行文件 进入lldb环境, 在终端内输入lldb回车 lldb 使用file命令, 将可执行文件包装成一个target (lldb) file test Current executable set to '/Users/shenyj/Documents/CodeForTest/staticOCLib/test' (x86_64). 运行可执行文件, 在刚刚的l
我有一些Spring测试,这些测试可以加速应用程序上下文并测试一些服务。我能够使用Maven并通过IDE运行这些测试。现在我需要在另一台无法访问Maven的机器上运行这些测试。我的想法是创建一个测试jar并通过命令行运行它们。 所以我创建了一个自定义Runner,它调用我需要的测试类,这些测试将启动Spring Application上下文并测试一些服务。 以下是示例代码: 我的自定义跑步者: 上
我在Eclipse IDE中使用Java编写了一个简单的Selenium+TestNG maven项目(例如,在目录中),当我右键单击该项目并运行文件以启动Chrome浏览器时,我现在将该项目导出为“可运行JAR文件”并将JAR保存在桌面()。 现在, 如果我从项目目录中运行保存的可执行jar,并双击该jar,就能够启动Chrome浏览器,即,但是 如果我从desktop保存可执行jar,无法启动
我正在尝试并行运行两个exe程序。我想启动它们,等待它们完成后再继续。以下是一个例子: 第一个进程睡眠5秒,第二个进程睡眠10秒。我希望看到进程启动的两条消息和“等待任务”消息。10秒后,请参见“过程完成”。但是,我立即看到“Procs complete”。 任务管理器显示正在运行的进程,同时显示“进程完成”。 那么,我如何从一个程序中启动两个独立的可执行程序,并行运行它们,然后等待它们完成,然后
问题内容: 我在将当前项目提取到可执行jar文件时遇到问题。当我在日食中按下运行按钮时,一切正常,但是当我这样做时 然后启动.jar文件;我唯一得到的是带有灰色画布的窗口。它应该启动我编写的游戏(spaceInvaders)。 这是我上载项目的github的链接。我真的不知道错误在哪里,在哪里看。在我的代码中?在我安装的JRE / JDK中?创建罐子时我做错什么了吗? 请帮忙 -。- 问题答案:
我有一个项目与cucumber和maven也我使用JUnit。 我能够从Eclipse成功地运行和构建我的项目。 现在,我想在另一个没有安装eclipse或cucumber的系统中从命令行运行测试。我有一个想法,我们可以从JAR创建一个JAR,我们可以通过java cli命令运行测试。 我已经在类路径中添加了JUNIT Jar。 我以两种方式生成jar, 1)使用->project->export