jaydebeapi icon indicating copy to clipboard operation
jaydebeapi copied to clipboard

Class com.sybase.jdbc4.jdbc.SybDriver is not found

Open Magnezone7 opened this issue 5 years ago • 3 comments

Hi, I´ve been trying to connect to sybase database with a jar called jconn4 and this program

import jaydebeapi

cnxn = jaydebeapi.connect("com.sybase.jdbc4.jdbc.SybDriver", "jdbc:sybase:Tds:ip:5000/database" ,["user" "pass"],'local_path/jconn4.jar')

cursor = cnxn.cursor() cursor.execute(select * from venta limit 10)

cursor.fetchall()

cursor.close() cnxn.close()

but when I run i get the next error Class com.sybase.jdbc4.jdbc.SybDriver is not found

I use JayDeBeApi==1.2.3 and JPype1-0.7.5

i set java home and execute javac -version getting javac 11.0.7

The question is because happen this? I don´t know if the jar file must be into java home path or if I must to create something like classpath

Magnezone7 avatar Jul 16 '20 05:07 Magnezone7

driver jar = Just keep the Jconn4.jar in a path and keep in variable driver_class = com.sybase.jdbc4.jdbc.SybDriver db = jdbc:sybase:Tds:DB:PORT login = [] (login .append - username and password ) conn = jaydebeapi.connect ( driverclass, db,login, driver jar ) this should work

sur2rock avatar Nov 01 '21 17:11 sur2rock

Ran into a similar problem. I discovered the problem might be with the java version. I swapped to JDK 8 and it seems to work.

Env:

  • Java
    $ java -version 
    openjdk version "1.8.0_362"
    OpenJDK Runtime Environment (Zulu 8.68.0.19-CA-macosx) (build 1.8.0_362-b08)
    OpenJDK 64-Bit Server VM (Zulu 8.68.0.19-CA-macosx) (build 25.362-b08, mixed mode)
    
  • Python
    $ python --version 
    Python 3.10.9
    

Solution

  1. Install jdk 8 via sdkman
sdk install java 8.0.362-zulu
sdk use java 8.0.362-zulu
  1. Run python to test:
$ python
Python 3.10.9 (v3.10.9:1dd9be6584, Dec  6 2022, 14:37:36) [Clang 13.0.0 (clang-1300.0.29.30)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import jaydebeapi
conn = jaydebeapi.connect("com.sybase.jdbc4.jdbc.SybDriver",
                          "jdbc:sybase:Tds:<Rest-of-DB-URL>",
                          ["<username>", "<pass>"],
                          "<absolute-path-to-jar>/.m2/repository/com/sybase/jdbc/jconnect/7.0/jconnect-7.0.jar",)
curs = conn.cursor()
curs.execute("SELECT COUNT(*) FROM dbo.Moo")
curs.fetchall()
# will output data
curs.close()
conn.close()

js-lowes avatar Feb 10 '23 20:02 js-lowes

using jdk.8.0_321 works for me

spkjess avatar Jul 06 '23 08:07 spkjess