java Jenkins|“系统找不到指定的档案”

hgb9j2n6  于 2022-12-10  发布在  Java
关注(0)|答案(6)|浏览(321)

我正在使用Jenkins来安排我的selenium/java自动化测试(测试脚本打包到一个.jar文件中)。
我已经创建了一个.bat文件来触发.jar文件,我正在从Jenkins调用.bat文件。
当我通过双击.bat文件手动触发测试时,一切都运行得很顺利。但是当我试图通过Jenkins运行相同的测试时,我在每个测试用例中都得到了以下错误:
“系统找不到指定的档案”
Jenkins成功地调用了.bat文件,因为我可以看到测试用例名称(存在于.jar文件中)显示在Jenkins控制台上。
在我的java代码中,我使用.\来表示“当前目录”,其中包含jar文件和一个excel文件,其中的数据驱动自动化框架。甚至.bat文件也出现在同一个位置,并且我给出了.bat文件和jenkins的完全限定路径。
我不能硬编码,必须在我的java代码中使用./。我在Windows Server上运行这个程序(不是我的本地机器)。

8ftvxx2r

8ftvxx2r1#

识别当前目录路径,其中.bat文件被放置和附加/添加到系统路径变量。一旦完成,然后允许jenkin执行.bat文件。

vshtjzan

vshtjzan2#

这是一个问题,当你在Jenkins上运行时,你的工作目录不同。
最简单的修复:执行Windows批处理命令来代替您的构建步骤。在第一行,输入cd C:/Desktop/QA/来更改您的工作目录以匹配您在本地执行的操作。在第二行,使用trigger.batC:\Desktop\QA\trigger.bat
更可靠的修复:在你的java代码中,当引用其他文件时,你使用.\。这基本上意味着当前目录,如果你在不同的工作目录中,这将不是你想要的。相反,你可以使用look at this question/answer,它显示了如何引用你的.jar文件所在的目录,而不是工作目录。总之,这样做:

return new File(MyClass.class.getProtectionDomain().getCodeSource()
    .getLocation().toURI().getPath());
pw9qyyiw

pw9qyyiw3#

这个问题是在Jenkins的安装上。一个devops的工程师帮我解决了这个问题。必须在里面安装Tomcat和Jenkins。他说:“如果Jenkins是作为UI安装的,它就不能打开另一个UI。因此我们应该在一个单独的服务器上安装.war文件,为Jenkins创建单独的UI,这样我的应用程序UI(firefox)就可以在本地启动了。”

cbjzeqam

cbjzeqam4#

似乎在删除文件/文件夹或将文件复制到远程服务器时,可能会给予以下错误信息:

Caused: java.io.IOException: Cannot run program "nohup" (in directory "C:\Windows\system32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\Test_ssh_Remove"): CreateProcess error=2, The system cannot find the file specified
java.io.IOException: CreateProcess error=2, The system cannot find the file specified

要解决此问题,您必须在源和目标中给予相对路径,而不是绝对路径,如下所示。例如,此处C:驱动器(远程服务器)。

样品:

dir('VueAPP') { // Go to Your Current Directory where build code present to copy at Remote server 

   sshRemove remote: remote, path: "/Program Files/Apache24/htdocs/dist"

   sshPut remote: remote, from: 'dist', into: '/Program Files/Apache24/htdocs/'

   sshPut remote: remote, from: 'index.html', into: '/Program Files/Apache24/htdocs/'

}
72qzrwbm

72qzrwbm5#

对我来说,在java“C:\Program Files\Java\jdk1.8.0_301/bin/java”的路径中有一个额外的空间,我更新了它,它工作了。

omhiaaxx

omhiaaxx6#

新的Jenkins。。遵循postamn的文章,以设置这与纽曼。。我得到了类似的东西。
在工作空间C:\ProgramData\Jenkins.jenkins\workspace\分配[分配] $ sh -xe C:\WINDOWS\TEMP\jenkins4486248303661911584.sh中以系统构建运行系统无法找到指定的文件FATAL:命令执行失败
有什么主意吗?

相关问题