Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
3 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 60

Запуск приложения из командной строки linux

12.11.2015, 11:13. Показов 1985. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package testconnection;
/* Libraries for jdbc*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
 
/**
 *
 * @author ontol
 */
public class TestConnection {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        /*
        1.      Connection string
                jdbc:oracle:<drivertype>:@<database>
                jdbc:oracle:<drivertype>:<user>/<password>@<database>
                Where:
                drivertype can be "thin", "oci" or "kprb".
                Database can be in the form of "hostname:port:SID"
        */        
        String addressDB = "jdbc:oracle:thin:@localhost:1521:XE";
        String usernameDB = "system";
        String passwordDB = "pass";
        /*
        2. Register Oracle JDBC driver
        Class.forName("oracle.jdbc.OracleDriver");
        or
        DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
        */
        try
        {
            DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
        }
        catch (SQLException exception)
        {
            exception.printStackTrace();
        }
        /*
        Establishing connection
        There were 3 ways, but we'll use one (using username and password)
        Connection conn = DriverManager.getConnection(dbURL, username, password);
        */
        Connection conn = null;
        try
        {
            conn = DriverManager.getConnection(addressDB, usernameDB, passwordDB);
            if (conn != null)
            {
                System.out.println("Connected with current connetion");
            }
        }
        catch (SQLException exception)
        {
            exception.printStackTrace();
        }
        
        /*
        Closing connection
        */
        try
        {
            if( conn != null && !conn.isClosed())
                conn.close();
            System.out.println("Connection is closed");
        }
        catch (SQLException exception)
        {
            exception.printStackTrace();
        }
        
    }
    
}
В общем программулинка указана выше.
ОС: linux mint
Компиляция проводилась в Netbeans, успешна. Выполнение из под среды также успешно.
Кидаю файл в /home, (имя файла TestConnection.class) открываю консоль с правами root, перехожу к файлу.
попытка запустить файл командой:
java -cp . testconnection.TestConnection
выдает сообщение:
Could not find or load main class testconnection.TestConnection
Что я делаю не так? Уже вроде и пакет указал, и путь к файлу

Добавлено через 14 минут
Есть хорошая мануалка netbeans по созданию jar файла и дальнейшему его распространению:
https://netbeans.org/kb/73/jav... oy_ru.html
Это все хорошо, но хотелось бы разобраться в чем причина, хотя бы ради интереса

Добавлено через 18 минут
Поэкспериментировав в директории сборки netbeans решил сменить директорию на уровень выше:
Путь до скомпилированного файла ...../NetBeansProjects/TestConnection/build/classes/testconnections/TestConnection.class

запуск из директории выше, т.е. из под директории ...../NetBeansProjects/TestConnection/build/classes/ отрабатывает, но вызывает исключения вида:
Exception in thread "main" java.lang.NoClassDefFoundError: oracle/jdbc/OracleDriver
at testconnection.TestConnection.main(TestC onnection.java:43)
Caused by: java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver
at java.net.URLClassLoader.findClass(URLCla ssLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoa der.java:424)
at sun.misc.Launcher$AppClassLoader.loadCla ss(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoa der.java:357)


запуск проводился командой
java -cp . testconnection/TestConnection
Т.е. получается, необходима обязательно директория, совпадающая с именем пакета.
Осталось решить проблему с классом драйвера oracle.jdbc.OracleDriver
В одной из статей вычитал, что необходимо указывать все пути к классам через точку с запятой, например:
java -cp ./path1; ./path2 package.NameOfClass
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.11.2015, 11:13
Ответы с готовыми решениями:

Запуск приложения Java из командной строки
Народ, перерыл весь гугл, прочитал хренову кучу литературы по Java, уже дошел до нервного срыва. Прошу помогите, как мне запустить...

Запуск приложения python из командной строки
Во всех ответах к аналогичным рекомендуют открывать из папки командой python file.py или прописывать путь к интерпретатору а потом к файлу....

Запуск многопоточного приложения из командной строки
Приветствую. Есть задание: написать прогу для архивации/дезархивации данных. В проге 2 потока, для архивации и дезархивации...

2
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
12.11.2015, 11:19
necheyhin_a_v,

1. Проверим что java установлена и настроена

Bash
1
$ java -version
Результат
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)

Bash
1
$ javac
Результат
Usage: javac <options> <source files>
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are used
-classpath <path> Specify where to find user class files and annotation processors
-cp <path> Specify where to find user class files and annotation processors
-sourcepath <path> Specify where to find input source files
-bootclasspath <path> Override location of bootstrap class files
-extdirs <dirs> Override location of installed extensions
-endorseddirs <dirs> Override location of endorsed standards path
-proc:{none,only} Control whether annotation processing and/or compilation is done.
-processor <class1>[,<class2>,<class3>...] Names of the annotation processors to run; bypasses default discovery process
-processorpath <path> Specify where to find annotation processors
-parameters Generate metadata for reflection on method parameters
-d <directory> Specify where to place generated class files
-s <directory> Specify where to place generated source files
-h <directory> Specify where to place generated native header files
-implicit:{none,class} Specify whether or not to generate class files for implicitly referenced files
-encoding <encoding> Specify character encoding used by source files
-source <release> Provide source compatibility with specified release
-target <release> Generate class files for specific VM version
-profile <profile> Check that API used is available in the specified profile
-version Version information
-help Print a synopsis of standard options
-Akey[=value] Options to pass to annotation processors
-X Print a synopsis of nonstandard options
-J<flag> Pass <flag> directly to the runtime system
-Werror Terminate compilation if warnings occur
@<filename> Read options and filenames from file


2. Создадим файл
Bash
1
2
3
$ mkdir ~/test
$ cd test
~/test$ nano HelloWorld.java
Java
1
2
3
4
5
6
7
8
/**
* Содержимое файла HelloWorld.java
*/
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
3. Скомпилируем и запустим
Bash
1
2
~/test$ javac -cp . HelloWorld.java
~/test$ java HelloWorld
0
0 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 5
13.11.2015, 13:52
Цитата Сообщение от necheyhin_a_v Посмотреть сообщение
запуск проводился командой
java -cp . testconnection/TestConnection
Т.е. получается, необходима обязательно директория, совпадающая с именем пакета.
Конечно, иерархия классов и директорий должна совпадать - это в спецификации Java написано
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.11.2015, 13:52
Помогаю со студенческими работами здесь

Запуск приложения с параметром, введенным из командной строки
Помогите, мне нужно создать бат файл который запускает приложение с параметром, введенным из командной строки set /p var =&quot;&quot;...

Эмуляция командной строки Linux
Преподаватель дал задание сделать эмуляцию пары команд из linux. Моей задачей было сделать команду ls , которая должна выводить все файлы...

Запуск С Командной Строки
с виндяткой ситуация достаточно обсосана с линухами - все печальней (в смысле адекватной инфы от вендора) гугл нам в помощь...

Запуск программы из командной строки
Здравствуйте. Подскажите, как запустить следующею программу из командной строки? #include &lt;iostream&gt; #include &lt;limits&gt; ...

Запуск ОС из командной строки grub
Стоял дебиан, затем установил ремикс ос, теперь в грубе только он. Лайв сд нет. Как из командной строки груба запустить систему?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru