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

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

12.11.2015, 11:13. Показов 1971. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru