Im trying to import my own Java library into RFW to use the keywords. Importing Selenium works fine. I have exported the java class to a .jar.
Things I have tried:
With the .jar and .robot file in the same folder:
λ jython -m robot testcase1.robot
Pasting the MyTestLib.jar in C:\Program Files\jython2.7.2\Lib\site-packages and running:
λ jython -m robot testcase1.robot
jython -Dpython.path=C:\Users\Gijs\eclipse-workspace\testrobot\src\test\robotframework\acceptance\ -m robot testcase1.robot
- Setting my CLASSPATH env variable to C:\Users\Gijs\eclipse-workspace\testrobot\src\test\robotframework\acceptance
and running
λ jython -m robot testcase1.robot
Every time i get the same error:
[ ERROR ] Error in file 'C:\Users\Gijs\eclipse-workspace\testrobot\src\test\robotframework\acceptance\testcase1.robot' on line 5: Importing library 'MyTestLib.jar' failed: NoClassDefFoundError: com/cimsolutions/testautomation/testrobot/MyTestLib (wrong name: MyTestLib)
What am I doing wrong?
Here is my java class:
public class MyTestLib {
public static final String ROBOT_LIBRARY_SCOPE = "GLOBAL";
public void hello(String name){
System.out.println("Hello " + name + ".\n");
}
public void Nothing(){
}
}
Here is my testsuite:
*** Settings ***
Documentation This is a test file to test RFW
...
Library SeleniumLibrary
Library MyTestLib.jar
*** Test Cases ***
Testcase0
Log This is testcase 1.robot Starting logging
Open Browser https://google.com chrome
Set Browser Implicit Wait 1
Click Button //button[.//text() = 'Ik ga akkoord']
Sleep 1
Input Text name=q Cimsolutions
Press Keys name=q \ue00c
Press Keys name=q \ue007
Sleep 1
Close Browser
Log Test completed
MyLibTest
Log My lib test is starting
Nothing
I think I installed all requirements correctly:
C:\
λ jython --version
Jython 2.7.2
C:\
λ java --version
java 11.0.10 2021-01-19 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.10+8-LTS-162)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.10+8-LTS-162, mixed mode)
C:\
λ jython -m robot --version
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.python.core.io.StreamIO (file:/C:/Program%20Files/jython2.7.2/jython.jar) t
o field java.io.FilterOutputStream.out
WARNING: Please consider reporting this to the maintainers of org.python.core.io.StreamIO
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Robot Framework 4.0.3 (Jython 2.7.2 on java11.0.10)
C:\
λ jython -m pip list
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.python.core.io.StreamIO (file:/C:/Program%20Files/jython2.7.2/jython.jar) t
o field java.io.FilterOutputStream.out
WARNING: Please consider reporting this to the maintainers of org.python.core.io.StreamIO
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
DEPRECATION: A future version of pip will drop support for Python 2.7.
Package Version
------------------------------ -------
pip 19.1
robotframework 4.0.3
robotframework-seleniumlibrary 4.2.0
selenium 3.141.0
setuptools 41.0.1
urllib3 1.26.5