From: ezer <andres.a@adinet.com.uy>
To: java@gcc.gnu.org
Subject: Mysql and -static--libgcj
Date: Thu, 25 Sep 2008 16:42:00 -0000 [thread overview]
Message-ID: <19673573.post@talk.nabble.com> (raw)
I am triyng for a month to resolver some basic problems. Basically i made a
basic test that conects and disconects from a mysql database.
I posted some other message. i am opening a new one to explain it clear.
http://www.nabble.com/Performance-gcj---mysql-td19375453.html
http://www.nabble.com/Compiling-with-mysql-td19092090.html
I want that program test to run in a machine that doesnt have neither java
or gcj installed.
Other way to make this example distributable will help me.
Now i am testing on Mandriva 2009 b2
i installed gcj from the SOFTWARE MANAGMENT
# gcj --version
gcj (GCC) 4.3.2
I will expose 2 test i made.. I use for them 2 files, MysqlConnect.java and
the jar driver of mysql
-------*-------
MysqlConnect.java
-------*-------
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
public class MysqlConnect{
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
System.out.println("MySQL Connect Example.");
Connection conn = null;
String dbName = "mysql";
String driver = "com.mysql.jdbc.Driver";
String userName = "root";
String password = "admin";
List rows = new ArrayList();
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName(driver).newInstance();
conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/mysqltest?useJvmCharsetConverters=true&useOldUTF8Behavior=true",
userName, password);
System.out.println("Connected to the database");
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT id, titulo, descripcion FROM
mytable");
System.out.println("Query executed");
while (rs.next()) {
//System.out.println(rs.getInt("id") + ", "
+ rs.getString("titulo") + ", " + rs.getString("descripcion"));
Vector row = new Vector();
row.add(rs.getInt("id"));
row.add(rs.getString("titulo"));
row.add(rs.getString("descripcion"));
rows.add(row);
}
conn.close();
System.out.println("Disconnected from database");
} catch (Exception e) {
e.printStackTrace();
}
long stopTime = System.currentTimeMillis();
long elapsedTime = (stopTime - startTime) / 1000;
System.out.println("Execution Time: " + elapsedTime + " seconds");
}
}
-------*-------
TEST 1)
-------*-------
1) gcj -O2 -c mysql-connector-java-5.0.8-bin.jar -o mysql-5.0.8.o
-findirect-dispatch
2) gcj -O2 --main=MysqlConnect MysqlConnect.class mysql-5.0.8.o -o
MysqlConnect -static-libgcj
3) ./MysqlConnect
Exception in thread "main" java.lang.NoClassDefFoundError:
com.mysql.jdbc.ConnectionProperties$ConnectionProperty
at java.lang.Class.initializeClass(MysqlConnect)
at java.lang.Class.forName(MysqlConnect)
at java.lang.Class.forName(MysqlConnect)
at com.mysql.jdbc.ConnectionProperties.class$(MysqlConnect)
at com.mysql.jdbc.ConnectionProperties.<clinit>(MysqlConnect)
at java.lang.Class.initializeClass(MysqlConnect)
at java.lang.Class.initializeClass(MysqlConnect)
at com.mysql.jdbc.NonRegisteringDriver.connect(MysqlConnect)
at java.sql.DriverManager.getConnection(MysqlConnect)
at testsql.TestConnection.getConnection(MysqlConnect)
at testsql.TestConnection.execQuery(MysqlConnect)
at testsql.TestConnection.main(MysqlConnect)
Caused by: java.lang.ClassNotFoundException: javax.naming.StringRefAddr not
found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./],
parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
at java.net.URLClassLoader.findClass(MysqlConnect)
at java.lang.ClassLoader.loadClass(MysqlConnect)
at java.lang.ClassLoader.loadClass(MysqlConnect)
at java.lang.Class.initializeClass(MysqlConnect)
...11 more
ldd MysqlConnect
linux-gate.so.1 => (0xffffe000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7fdf000)
libm.so.6 => /lib/i686/libm.so.6 (0xb7fb9000)
libpthread.so.0 => /lib/i686/libpthread.so.0 (0xb7fa1000)
librt.so.1 => /lib/i686/librt.so.1 (0xb7f98000)
libz.so.1 => /lib/libz.so.1 (0xb7f84000)
libdl.so.2 => /lib/libdl.so.2 (0xb7f80000)
libc.so.6 => /lib/i686/libc.so.6 (0xb7e31000)
/lib/ld-linux.so.2 (0xb7ffc000)
-------*-------
TEST 1)
-------*-------
1) gcj -O2 -c mysql-connector-java-5.0.8-bin.jar -o mysql-5.0.8.o
-findirect-dispatch
2) gcj -O2 -shared mysql-5.0.8.o -o mysql-5.0.8.so
3) gcj -O2 --main=MysqlConnect MysqlConnect.class mysql-5.0.8.so -o
MysqlConnect -static-libgcj
(here i use mysql-5.0.8.so instead of mysql-5.0.8.o)
4) ./MysqlConnect
libgcj failure: gcj linkage error.
Incorrect library ABI version detected. Aborting.
ldd MysqlConnect
linux-gate.so.1 => (0xffffe000)
mysql-5.0.8.so => /usr/lib/mysql-5.0.8.so (0xb7e82000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7e74000)
libm.so.6 => /lib/i686/libm.so.6 (0xb7e4e000)
libpthread.so.0 => /lib/i686/libpthread.so.0 (0xb7e36000)
librt.so.1 => /lib/i686/librt.so.1 (0xb7e2d000)
libz.so.1 => /lib/libz.so.1 (0xb7e19000)
libdl.so.2 => /lib/libdl.so.2 (0xb7e14000)
libc.so.6 => /lib/i686/libc.so.6 (0xb7cc6000)
libgcj.so.9 => /usr/lib/libgcj.so.9 (0xb5d86000)
/lib/ld-linux.so.2 (0xb80d1000)
-------*-------
COMMENTS
-------*-------
The class file i generated in windows with jdk 1.5
"C:\Archivos de programa\Java\jdk1.5.0_16\bin\javac.exe" MysqlConnect.java
Thanks to all again...
--
View this message in context: http://www.nabble.com/Mysql-and--static--libgcj-tp19673573p19673573.html
Sent from the gcc - java mailing list archive at Nabble.com.
next reply other threads:[~2008-09-25 16:42 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-25 16:42 ezer [this message]
2008-09-26 3:26 ` Taufik Chowi
2008-09-26 3:35 ` ezer
2008-09-26 3:57 Taufik Chowi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=19673573.post@talk.nabble.com \
--to=andres.a@adinet.com.uy \
--cc=java@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).