0 / 0 / 0
Регистрация: 16.11.2019
Сообщений: 20

Компиляция (обычное приложение и с БД)

13.02.2020, 17:26. Показов 1125. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Только-только начинаю копать JAVA, возник вопрос.
Использую Netbeans. Написал простую программку, а-ля "Hello, World". Соответственно при запуске её в IDE, она компилируется и в папке с проектом, в папке /src имеем файл myprog.java
Ну, её в дальнейшем можем переносить и запускать. С этим вроде понятно (или нет?).
Если я буду создавать не один класс, а несколько, то итоговых файлов будет всё равно один (по идее несколько же)? Что тогда можно и нужно переносить? Понятно, что запускается тот .java, где объявлен класс main. А остальные классы будут в этой же папке, они же тоже нужны для работы программы.

Сумбурно написал, но, очень надеюсь на понимание.
Собственно второй вопрос, который более важен для меня.
Хочу подключить базу данных. Зарегистрировал драйвер, создал БД, создал таблицу. Ну и т.д.
Итог какой после компиляции? Что можно и НУЖНО скопировать на флешку, например, чтобы перенести на другой компьютер, там запустить, чтобы всё работало?

P.S. В незапамятные времена писал на Delphi, в том числе и с БД. Там немного проще было. Создаешь установочный комплект, в нем есть всё. При установке приложения всё работает. Здесь, в JAVA, пока блужусь конкретно. Что и где лежит, что можно переносить, что нужно запускать

Спасибо за понимание!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.02.2020, 17:26
Ответы с готовыми решениями:

Управляемое приложение, обычное приложение
Всем привет. Вопрос про Управляемое приложение и обычное приложение. Как понимаю разница между ними ощутимая, посему хочу понять что...

1с 8.2 Обычное приложение (интерфейс)
Можно ли как-то в командную панель формы добавить Калькулятор 1С-вский встроенный? Форма открыта модально, поэтому вызов по Ctrl-F2 не...

Обычное графическое приложение виндовс
Если я правильно понимаю, то нужно при создании проекта выбрать "Классическое приложение виндовс", но при этом у меня выдало, что не...

16
Модератор
Эксперт Java
 Аватар для alecss131
2880 / 1384 / 411
Регистрация: 11.08.2017
Сообщений: 4,413
Записей в блоге: 2
13.02.2020, 17:51
По первому вопросу достаточно загуглить всего 6 букв, 2 слова. jar и jre. Поизучай что это. Второй вопрос уже сложнее. Вообще бд это сервер и почти все бд требуют установки в систему. Вроде есть и портативные, которые достаточно подключить в виде библиотеки. Сразу советую узнать что такое maven и сборка проекта с зависимостями. Класс файлы никто не использует для запуска.
1
0 / 0 / 0
Регистрация: 16.11.2019
Сообщений: 20
13.02.2020, 23:34  [ТС]
да, действительно, я ступил. Конечно, .jar запускаются

а вот с БД какая-то засада получается. Как же мне его потом с linux машины переносить на Windows?
0
0 / 0 / 0
Регистрация: 16.11.2019
Сообщений: 20
14.02.2020, 15:12  [ТС]
а если делать через Maven, то изначально в Netbeans выбирать проект Maven -> Приложение Java
или можно Java -> Приложение Java
0
Модератор
Эксперт Java
 Аватар для alecss131
2880 / 1384 / 411
Регистрация: 11.08.2017
Сообщений: 4,413
Записей в блоге: 2
14.02.2020, 15:23
RayEagle, Лучше первый вариант, а про бд посмотрите в сторону h2, можно использовать без установки в систему, просто подключить как библиотеку.
0
 Аватар для Aviz__
2755 / 2062 / 509
Регистрация: 17.02.2014
Сообщений: 9,491
14.02.2020, 15:35
RayEagle, вот, я давал недавно ссылку, как это делать с MySQL Студенческая база прям очень все разжевано.
0
0 / 0 / 0
Регистрация: 16.11.2019
Сообщений: 20
15.02.2020, 00:17  [ТС]
вопрос почти сюда же
подключение к БД в самой программе выглядеть должно примерно так:
Java
1
2
public static final String DB_URL = "jdbc:h2:/c:/JavaPrj/SQLDemo/db/stockExchange";
public static final String DB_Driver = "org.h2.Driver";
как прописать относительный путь к БД. Или Maven сможет помочь потом при сборке для переноса?
0
Модератор
Эксперт Java
 Аватар для alecss131
2880 / 1384 / 411
Регистрация: 11.08.2017
Сообщений: 4,413
Записей в блоге: 2
15.02.2020, 09:55
В новых версиях вроде можно не регистрировать драйвер, но почемуто все гайды продолжают это делать. Я регистририую драйвер немного иначе, стандартный способ имхо слишком много исключений кидает, можно вот так сделать DriverManager.registerDriver(new Driver()); предварительно импортировав сам драйвер строчкой import org.h2.Driver; а путь к базе можно прописать 3 видами, полный путь как у вас, относительный путь от рабочей папки программы jdbc:h2:./%имя% (база будет рядом с jar файлом с именем имя.h2.db) и еще можно так jdbc:h2:~/%имя% вот тут не смог найти где хранится, еще базу можно хранить в памяти, но база будет удаляться при закрытии программы, как то так jdbc:h2:mem:%имя%
1
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
15.02.2020, 10:38
А исчо можно использовать hibernate
0
0 / 0 / 0
Регистрация: 16.11.2019
Сообщений: 20
15.02.2020, 13:28  [ТС]
если писать вот так: jdbc:h2:./%имя%
то база будет в корне домашней папки (я под Ubuntu сижу)

если писать вот так: jdbc:h2:~/%имя%
то база вообще в корень машины улетает, поэтому, наверное, Вы и не могли её найти

а я хотел, чтобы указывался относительный путь. Но, в java, похоже, в лоб так не получиться, т.к. файлы лежат по разным папкам и относительно какой считать система не знает.
Судя по всему, можно прописать абсолютный путь, а потом, при сборке Maven, пути поменяются на относительные
0
Модератор
Эксперт Java
 Аватар для alecss131
2880 / 1384 / 411
Регистрация: 11.08.2017
Сообщений: 4,413
Записей в блоге: 2
15.02.2020, 14:28
Цитата Сообщение от RayEagle Посмотреть сообщение
если писать вот так: jdbc:h2:./%имя%
то база будет в корне домашней папки (я под Ubuntu сижу)
Небольшое уточнение, смотря как запускать jar программу, там берется рабочая папка программы, в линуксе она по умолчанию домашняя папка, под виндой будет папка где находится сам jar (если запускать двойным кликом по jar)
попробуйте запустить jar из командной строки предварительно перейдя в папку с jar, база появится рядом
Цитата Сообщение от RayEagle Посмотреть сообщение
если писать вот так: jdbc:h2:~/%имя%
то база вообще в корень машины улетает, поэтому, наверное, Вы и не могли её найти
я проверял корни дисков и базы не нашел, по крайней мере под виндой

Добавлено через 56 секунд
На худой конец можно в программе получить расположение запускаемого файла и создать строку с адресом до подключения к бд
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
18.02.2020, 13:24
Цитата Сообщение от Goongala Посмотреть сообщение
А исчо можно использовать hibernate
причем тут хиб?
RayEagle, гуглите in memory databases
вот одна из первых ссылок
https://www.baeldung.com/java-in-memory-databases

Добавлено через 5 секунд
Цитата Сообщение от Goongala Посмотреть сообщение
А исчо можно использовать hibernate
причем тут хиб?
RayEagle, гуглите in memory databases
вот одна из первых ссылок
https://www.baeldung.com/java-in-memory-databases
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
18.02.2020, 17:36
neske, как эт причём? Через hibernate проще работать с бд, чем напрямую через JDBC
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
18.02.2020, 19:25
Goongala, просто как я понял рут коз тут был в выборе субд, а не в работе с ней, ну да ладно)
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
18.02.2020, 21:09
neske, а, ну, может быть и так. В который раз открываю эту тему, но так и не хватило сил полностью прочитать первый пост
0
 Аватар для Aviz__
2755 / 2062 / 509
Регистрация: 17.02.2014
Сообщений: 9,491
19.02.2020, 08:36
Цитата Сообщение от Goongala Посмотреть сообщение
не хватило сил полностью прочитать
т.е. ты осваиваешь новую форму восприятия текстов?!! контекстное))
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
24.02.2020, 12:42
Цитата Сообщение от RayEagle Посмотреть сообщение
~/%имя%
то база вообще в корень машины улетает
~/%имя% эквивалент /home/%имя%. Каким образом в корень? Ну только если у данного юзера home замапен на корень (в самой системе). Но это, если оно так, кончено, аберрация ещё та
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.02.2020, 12:42
Помогаю со студенческими работами здесь

1c 8.2 Обычное приложение. Уникальность форм
Всем привет. Мне необходимо запустить обработку из документа передав в нее параметры - с этим проблем нет. Затем мне нужно при...

Права доступа в бп 1.6 обычное приложение платформа 8.2
Чтобы войти в конфигурацию пользователю нужно назначить роли - обязательную бухгалтер или полные права, если их не задал пользователю, то в...

Сбой пользовательского интерфейса: обычное приложение
В режиме Предприятия в главном меню дублируются и троятся строки. Интерфейс делается конструктором или набирается вручную или делается...

Скопировать не записанный документ. обычное приложение
Доброго времени суток, форумчане!) Задачка: есть документ (неважно какой) с двумя формами документа. одна с них основная. При создании...

Создание ВПФ под обычное приложение
Необходимо создать внешнюю печатную форму под обычное приложение. Искал в сети, но везде описывается только под управляемое приложение....


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
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