Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2015, 15:36   #1
Aleksander550
Форумчанин
 
Регистрация: 07.01.2014
Сообщений: 124
По умолчанию java и командная строка

Начал изучать java. IDE пока не использую, всё делаю через notepad++ и консоль.

Для компиляции сделал
comp.bat:
Код:
javac *.java
pause
но для запуска скомпилированного класса такая запись не сработает
run.bat
Код:
java *
pause
Как запустить скомпилированный класс?
#define TRUE FALSE //счастливой отладки
Aleksander550 вне форума Ответить с цитированием
Старый 29.03.2015, 16:49   #2
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Вместо звёздочки написать имя скомпилированного файла, полностью.
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 29.03.2015, 19:37   #3
Aleksander550
Форумчанин
 
Регистрация: 07.01.2014
Сообщений: 124
По умолчанию

Цитата:
Вместо звёздочки написать имя скомпилированного файла, полностью.
Это я знаю.
Как не писать имя класса?
В notepad++ есть функция "запуск", работает как cmd. Я хочу научить его компилировать код из открытого файла и запускать скомпилированный класс, с помощью горячих клавиш.
#define TRUE FALSE //счастливой отладки
Aleksander550 вне форума Ответить с цитированием
Старый 29.03.2015, 21:44   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

В java только имя класса передать надо, без расширения.
Код:
javac MyClass.java
java MyClass
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 29.03.2015, 22:02   #5
Aleksander550
Форумчанин
 
Регистрация: 07.01.2014
Сообщений: 124
По умолчанию

Цитата:
В java только имя класса передать надо, без расширения.
Я это понимаю.
Но если не известно как будет называется *.java файл.
Программа javac.exe прекрасно находит файл исходник по маске *.java
С программой java.exe такой трюк не проходит.
#define TRUE FALSE //счастливой отладки
Aleksander550 вне форума Ответить с цитированием
Старый 29.03.2015, 22:13   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А я что написал? javac передавайте с расширением, а для java вырезайте его. Как это реализовать в notepad++ или батнике не знаю, да и вообще раз хотите хардкора без IDE, то и пишите в ручную в консоли.

А java.exe не принимает имя с .java потому что ей он не нужен, изучайте что она делает, и ее параметры.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 29.03.2015 в 22:16.
Alex11223 вне форума Ответить с цитированием
Старый 29.03.2015, 22:27   #7
Aleksander550
Форумчанин
 
Регистрация: 07.01.2014
Сообщений: 124
По умолчанию

Цитата:
Как это реализовать в notepad++ не знаю
к блокноту++ можно прикрутить батник.

Можно ли это реализовать в батнике?
#define TRUE FALSE //счастливой отладки
Aleksander550 вне форума Ответить с цитированием
Старый 29.03.2015, 23:24   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Да зачем вам батник, вы Java учите или батники? Напишите Java класс запускающий указанный класс (имя файла в параметрах коммандой строки передавайте, args[0]) и его вызывайте в вашем батнике.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 29.03.2015, 23:32   #9
Aleksander550
Форумчанин
 
Регистрация: 07.01.2014
Сообщений: 124
По умолчанию

Цитата:
Да зачем вам батник, вы Java учите или батники? Напишите Java класс запускающий указанный класс (имя файла в параметрах коммандой строки передавайте, args[0]) и его вызывайте в вашем батнике.
Я уже почти написал такую программу, только на С++
#define TRUE FALSE //счастливой отладки
Aleksander550 вне форума Ответить с цитированием
Старый 30.03.2015, 00:17   #10
Aleksander550
Форумчанин
 
Регистрация: 07.01.2014
Сообщений: 124
По умолчанию

Может кому-нибудь пригодится.
Программа принимает аргумент - маска файла (например Hello*.class или *.class) и запускает этот класс
Код:
#include "conio.h"
#include "io.h"
#include "iostream"
#include <windows.h>

using namespace std;

int main(int argc, char* argv[]) {
    FILE *pFile;
    struct _finddata_t findData;
    intptr_t hFile;
    //поиск файла
    if( (hFile = _findfirst(argv[1],  &findData ) ) == -1L)
        cout << "\n\nError! fail search\n" << endl;
    else 
        _findclose (hFile);
	//формирование команды
	int size = 0;
	char *comand;
	for (int i = 0; findData.name[i] != '\0'; i++)
		++size;
	
	comand = new char[size+1];
	//comand = "java ";//да как индус
	comand[0] = 'j';
	comand[1] = 'a';
	comand[2] = 'v';
	comand[3] = 'a';
	comand[4] = ' ';
	for (int i = 0; i < size - 6; i++)
		comand[i+5] = findData.name[i];
	WinExec (comand, SW_SHOW);
	delete [ ] comand;
    _getch();
    return 0;
}
#define TRUE FALSE //счастливой отладки
Aleksander550 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
командная строка Наталья Баева Windows 3 19.01.2014 00:04
Командная строка Карина 1578 Помощь студентам 1 07.02.2012 21:17
Командная строка Morphling Помощь студентам 9 01.02.2010 00:27
Командная строка Vladya Помощь студентам 4 09.02.2009 18:29
Командная строка Dj_smart Свободное общение 2 23.08.2008 20:12