Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > на линуксовом серваке ругается


Автор: Bulat 6.12.2006, 16:28
есть маленький код
Код

public class Test {
    public static void main(String[] args) {
        Test t = new Test();
        t.Base();
    }

    public void Base() {
        java.sql.Connection con = init();

        String query = "SELECT record_id FROM Logins WHERE user_id = 28510 ORDER BY record_id";
        try {
            java.sql.Statement st = con.createStatement();
            java.sql.ResultSet rs = st.executeQuery(query);
            while (rs.next()) {
                System.out.println(rs.getInt("record_id"));
            }
            rs.close();
            st.close();
            destroy(con);
        } catch(java.sql.SQLException e) {
            e.printStackTrace();
        }
    }

    public java.sql.Connection init() {
        String databaseurl = "jdbc:mysql://<***>/<***>?lc_ctype=KOI8-R",
                      user = "***",
                  password = "***",
                driverName = "com.mysql.jdbc.Driver";
        java.sql.Connection con = null;

        try {
            Class.forName(driverName).newInstance();
            con = java.sql.DriverManager.getConnection(databaseurl, user, password);
        } catch (InstantiationException e) {
            e.printStackTrace(); 
        } catch (IllegalAccessException e) {
            e.printStackTrace(); 
        } catch (ClassNotFoundException e) {
            e.printStackTrace(); 
        } catch (java.sql.SQLException e) {
            e.printStackTrace(); 
        }
        return con;
    }

    public void destroy(java.sql.Connection con) {
        try {
            con.close();
        } catch (java.sql.SQLException e) {
            e.printStackTrace();
        }
    }

}


В идее запускается и работает, а на линуксовом серваке ругается
Цитата

Exception in thread "main" java.lang.NoClassDefFoundError: Test

запускаю командой java -classpath mysql-connector-java-3.1.12-bin.jar Test

при этом код
Код

public class test1 {

    public static void main(String[] args) {
        System.out.println("Hello world!");
    }

}


на том же серваке прекрасно срабатывает. smile 

Автор: tux 6.12.2006, 16:30
А так?
Цитата

java -classpath .:mysql-connector-java-3.1.12-bin.jar Test

Автор: Bulat 6.12.2006, 16:43
tux, тогда
Цитата

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:164)
        at Test.init(Test.java:34)
        at Test.Base(Test.java:9)
        at Test.main(Test.java:5)
Exception in thread "main" java.lang.NullPointerException
        at Test.Base(Test.java:13)
        at Test.main(Test.java:5)


правда может всеж с драйвером не до конца разобрался

в профайле прописано
Цитата

export JAVA_HOME=/usr/home/booker/java/jdk1.5.0_09
export PATH=$PATH:$JAVA_HOME/bin


сам драйвер кинул соотв. в директорию =/usr/home/booker/java/jdk1.5.0_09/lib

Автор: tux 6.12.2006, 16:49
Цитата(Bulat @  6.12.2006,  16:43 Найти цитируемый пост)
сам драйвер кинул соотв. в директорию =/usr/home/booker/java/jdk1.5.0_09/lib 

Так он в текущем-то каталоге есть или нет? Все должно работать.

Автор: Bulat 6.12.2006, 16:51
Цитата(tux @  6.12.2006,  16:49 Найти цитируемый пост)
Так он в текущем-то каталоге есть или нет? Все должно работать. 

Есть, вот и я сижу и не могу понять почему ругается smile 

Автор: Bulat 6.12.2006, 17:13
Может там чего с правами проблемы могут быть, или может манифест в самом джарике надо подредактировать? smile 

Автор: tux 6.12.2006, 20:23
Цитата(Bulat @  6.12.2006,  17:13 Найти цитируемый пост)
Может там чего с правами проблемы могут быть, или может манифест в самом джарике надо подредактировать?

Bulat, у меня все замечательно запускается. Права нужны только на чтение и для jar и для самого класса. С манифестом тоже ничего делать не надо.

Автор: LSD 7.12.2006, 12:11
Скопируй строку запуска из IDEA и сравни со своей.

Автор: Bulat 7.12.2006, 16:57
Цитата(LSD @  7.12.2006,  12:11 Найти цитируемый пост)
Скопируй строку запуска из IDEA

А на что конкретно я должен обратить внимание, потому как в IDEA кроме всех стандартных библиотек, еще и все библиотеки hibernate подключены и куча всего по мелочи, он перечисляет их всех в этой строке smile 

Автор: LSD 7.12.2006, 17:59
Цитата(Bulat @  7.12.2006,  16:57 Найти цитируемый пост)
А на что конкретно я должен обратить внимание, потому как в IDEA кроме всех стандартных библиотек, еще и все библиотеки hibernate подключены и куча всего по мелочи, он перечисляет их всех в этой строке

Чтоб я знал smile
Запости ее сюда, может кто разглядит в чем проблема.

Добавлено @ 18:01 
Да, и на будущее мат на форуме запрещен, в том числе и по английски, и в тексте программ.

Автор: Bulat 7.12.2006, 18:22
Цитата(LSD @  7.12.2006,  17:59 Найти цитируемый пост)
Да, и на будущее мат на форуме запрещен, в том числе и по английски, и в тексте программ. 

сорри, smile  я просто даже не придал этому значение, нелепая случайность smile 

в IDEA
Цитата

C:\Programs\Java\jdk1.5.0_05\bin\java -Didea.launcher.port=7532 "-Didea.launcher.bin.path=C:\Programs\JetBrains\IntelliJ IDEA 5.0\bin" -Dfile.encoding=windows-1251 -classpath "C:\Programs\Java\jdk1.5.0_05\jre\lib\charsets.jar;C:\Programs\Java\jdk1.5.0_05\jre\lib\deploy.jar;C:\Programs\Java\jdk1.5.0_05\jre\lib\javaws.jar;C:\Programs\Java\jdk1.5.0_05\jre\lib\jce.jar;C:\Programs\Java\jdk1.5.0_05\jre\lib\jsse.jar;C:\Programs\Java\jdk1.5.0_05\jre\lib\plugin.jar;C:\Programs\Java\jdk1.5.0_05\jre\lib\rt.jar;C:\Programs\Java\jdk1.5.0_05\jre\lib\ext\dnsns.jar;C:\Programs\Java\jdk1.5.0_05\jre\lib\ext\localedata.jar;C:\Programs\Java\jdk1.5.0_05\jre\lib\ext\sunjce_provider.jar;C:\Programs\Java\jdk1.5.0_05\jre\lib\ext\sunpkcs11.jar;C:\Programs\My_spec_progs\Work\Project\servlet-api.jar;C:\Programs\My_spec_progs\Work\Project\jsp-api.jar;C:\Programs\My_spec_progs\Work\Project\firebirdsql-full.jar;C:\downloads\mysqljdbc\mysql-connector-java-3.1.12\mysql-connector-java-3.1.12\mysql-connector-java-3.1.12-bin.jar;C:\Documents and Settings\Комтат\Рабочий стол\mysql-connector-java-3.1.12\mysql-connector-java-3.1.12\mysql-connector-java-3.1.12-bin.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\hibernate3-src.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\hibernate3.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\ant-1.6.3.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\ant-antlr-1.6.3.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\ant-junit-1.6.3.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\ant-launcher-1.6.3.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\ant-swing-1.6.3.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\antlr-2.7.5H3.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\asm-attrs.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\asm.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\c3p0-0.8.5.2.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\cglib-2.1.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\cleanimports.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\commons-collections-2.1.1.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\commons-logging-1.0.4.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\concurrent-1.3.2.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\connector.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\dom4j-1.6.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\ehcache-1.1.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\jaas.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\jacc-1_0-fr.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\jaxen-1.1-beta-4.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\jboss-cache.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\jboss-common.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\jboss-jmx.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\jboss-system.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\jdbc2_0-stdext.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\jgroups-2.2.7.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\jta.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\junit-3.8.1.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\log4j-1.2.9.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\oscache-2.1.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\proxool-0.8.3.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\swarmcache-1.0rc2.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\versioncheck.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\xerces-2.6.2.jar;C:\Programs\My_spec_progs\Work\lib\hibernate-3.0.5\hibernate-3.0\lib\xml-apis.jar;C:\Programs\My_spec_progs\Work\javamail-1_4.zip&File=javamail-1_4\javamail-1.4\mail.jar;C:\Programs\My_spec_progs\Work\javamail-1_4.zip&File=javamail-1_4\javamail-1.4\lib\dsn.jar;C:\Programs\My_spec_progs\Work\javamail-1_4.zip&File=javamail-1_4\javamail-1.4\lib\imap.jar;C:\Programs\My_spec_progs\Work\javamail-1_4.zip&File=javamail-1_4\javamail-1.4\lib\mailapi.jar;C:\Programs\My_spec_progs\Work\javamail-1_4.zip&File=javamail-1_4\javamail-1.4\lib\pop3.jar;C:\Programs\My_spec_progs\Work\javamail-1_4.zip&File=javamail-1_4\javamail-1.4\lib\smtp.jar;C:\Programs\My_spec_progs\Work\jaf-1_1-fr.zip&File=jaf-1_1-fr\jaf-1.1\activation.jar;C:\Documents and Settings\Комтат\IdeaProjects\ThreadsTutor\classes;C:\Programs\JetBrains\IntelliJ IDEA 5.0\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain thread.Test


на сервере уже было выше написано  smile 

Автор: LSD 7.12.2006, 18:38
Я думал у тебя IDEA тоже под Linux запускается, а так тут это мало поможет.

Положи jar в jdk/jre/lib/ext (подробнее http://java.sun.com/docs/books/tutorial/ext/basics/install.html).

Автор: Bulat 8.12.2006, 09:15
Цитата(LSD @  7.12.2006,  18:38 Найти цитируемый пост)
Положи jar в jdk/jre/lib/ext (подробнее тут). 

Прямо в точку  smile 
Цитата(tux @  6.12.2006,  16:30 Найти цитируемый пост)
А так?

И пока что только так запускается  smile 

Ну вроде все, наконец разобрался

Автор: Bulat 8.12.2006, 09:31
LSD, в довершении, я так понимаю все нестандартные библиотеки мне нужно кидать и в jdk/jre/lib/ext  и в /usr/home/booker/java/jdk1.5.0_09/lib ???

Автор: Sherst 8.12.2006, 10:04
Цитата(Bulat @  8.12.2006,  09:31 Найти цитируемый пост)
мне нужно кидать и в jdk/jre/lib/ext  и в /usr/home/booker/java/jdk1.5.0_09/lib ??? 


Достаточно ложить в jdk/jre/lib/ext. По этому пути сработает расширенный загрузчик классов и найдет нужные классы без явного указания пути к этим классам.

Автор: LSD 8.12.2006, 14:33
Цитата(Bulat @  8.12.2006,  09:31 Найти цитируемый пост)
LSD, в довершении, я так понимаю все нестандартные библиотеки мне нужно кидать и в jdk/jre/lib/ext  и в /usr/home/booker/java/jdk1.5.0_09/lib ???

Вообще-то этот механизм, не для этого предназначен.

По нормальному библиотеки должны подключаться, через параметр запуска -classpath. И надо разбираться почему он у тебя не заработал.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)