簡體   English   中英

通過命令行運行時,Java類文件無法加載testng類

[英]Java class file failed to load testng class when run through command line

我有這段代碼,它從main方法中使用XML文件調用testNG 我試圖通過以下命令從命令行調用此類文件:

java -cp My_Automation.jar com.mycomp.test.sanity.InvokeTestNGTest

但是,此操作失敗,並顯示以下消息:

Exception in thread "main" java.lang.NoClassDefFoundError: org/testng/ITestListener

我嘗試通過Eclipse運行此程序,該程序運行良好,但從命令行界面調用時失敗。 所有測試JAR都放置在類路徑中。 我不明白這個差異。

這是我的代碼:

package com.mycomp.test.sanity;

import java.util.ArrayList;
import java.util.List;
import org.testng.TestNG;
import org.testng.TestListenerAdapter;


public class InvokeTestNGTest {
    public static void main(String[] args) {


        List<String> xmlFileList = new ArrayList();
        xmlFileList.add("ILIO_testNG.xml");
        TestListenerAdapter tla = new TestListenerAdapter();
        TestNG testng = new TestNG();

        testng.setTestSuites(xmlFileList);
        testng.addListener(tla);
        testng.run();

        }

}

除非所有的jar文件都在同一目錄中,否則您需要在類路徑中指定每個jar的路徑。 您還需要確保您沒有丟失任何其他JAR文件。

java -cp "/path/to/project/My_automation.jar; /path/to/project/libs/testng-5.5.jar" ... 

從命令提示符運行時,請在類路徑中提供testng.jar。

java -cp "My_Automation.jar;testng-5.5.jar" com.mycomp.test.sanity.InvokeTestNGTest

謝謝

您的運行時類路徑上不包含哪個org.testng.ITestListener類。 Sergii Zagriichuk提到了一個testng.jar?

意識到我已經將其導出為一個jar而不是可執行jar。 這不是為項目選擇依賴罐。 謝謝你的指導

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM