powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / NetBeans... может выполнять некомпилируемый код ?!
22 сообщений из 22, страница 1 из 1
NetBeans... может выполнять некомпилируемый код ?!
    #38255505
ozzmosis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
step #1.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
class trampampam {
  static void doIt(int x) {System.out.println("yes, i`m here with int="+x); }
  public static void main(String[] a) {
    doIt(1);
    doIt(2);
    //doIt(3)
  }
}


Запускаем этот класс в СетевыхБобах по Shift-F6, пока всё ОК, выдаёт:
Код: plaintext
1.
2.
3.
run:
yes, i`m here with int=1
yes, i`m here with int=2
BUILD SUCCESSFUL (total time: 0 seconds)

step #2
Раскомментариваем команду doIt(3), причём *НЕ* ставим там символ точки с запятой.
Получаем , есс-но, подсветку с подсказкой "';' expected".
Добавляем изврата ради еше такой же коцаный вызов метода, т.е. получаем:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
class trampampam {
  static void doIt(int x) {System.out.println("yes, i`m here with int="+x); }
  public static void main(String[] a) {
    doIt(1);
    doIt(2);
    doIt(3) // здесь намеренно НЕТ символа ";"
    doIt(4) // и здесь тоже :-)
  }
}

Игнорируем сообщения об ошибках и снова запускаем файл по Shift-F6.
Результат: вместо того, чтобы брякнуть про невыполнимый код, СетевыеБобы... выполняют его! причём так, что якобы мною была проставлена эта самая ";" во всех нужных местах (см аттач).

Как такое может быть ?
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38255523
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ozzmosis,

так он не компилит повторно после изменений..билд то есть уже ;)
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38255526
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинozzmosis,

так он не компилит повторно после изменений..билд то есть уже ;)
Тогда бы в консоли не было 3 и 4.
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38255538
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczОзверинozzmosis,

так он не компилит повторно после изменений..билд то есть уже ;)
Тогда бы в консоли не было 3 и 4.

подвох ощущаю именно такой. Автор что нибудь укрыл: либо старый код со старыми экспериментами, либо зайца в шляпе. Не думаю, что нетбинс может игнорировать критикал компайл ерроры
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38255540
ozzmosis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверинozzmosis,

так он не компилит повторно после изменений..билд то есть уже ;)всё он компилит, спокойненько так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
// закомментарил обратно бредятину, жамкаю Shift-F6, перехожу в консоли в каталог build/classes:
D:\JAVA\nbprojects\csprobe\build\classes>dir /-C trampampam.class | findstr /i /c:"trampampam"
13.05.2013  17:2 7                    846  trampampam.class

D:\JAVA\nbprojects\csprobe\build\classes>java trampampam
yes, i`m here with int=1
yes, i`m here with int=2

// раскомментарил бредятину, жамкаю Shift-F6, выполняю опять в консоли:
D:\JAVA\nbprojects\csprobe\build\classes>dir /-C trampampam.class | findstr /i /c:"trampampam"
13.05.2013  17:2 8                    862  trampampam.class

D:\JAVA\nbprojects\csprobe\build\classes>java trampampam
yes, i`m here with int=1
yes, i`m here with int=2
yes, i`m here with int=3
yes, i`m here with int=4
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38255543
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ozzmosis,

разве что нетбинс обучили точку с запятой расставлять?
у меня валялся какой то нетбинс..проверю ща ;)
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38255546
ozzmosis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОзверинАвтор что нибудь укрыл: либо старый код со старыми экспериментами, либо зайца в шляпе. Не думаю, что нетбинс может игнорировать критикал компайл еррорынеа, ничего там старого не укрыто.
Вот, еще раз:
1) создаю новый класс в default-пакете
2) имя класса = Trampampam2
3) код класса:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class Trampampam2 {
  static void doIt(int x) {System.out.println("yes, i`m here with int="+x); }
  public static void main(String[] a) {
    doIt(1);
    doIt(2);
    doIt(3) // здесь намеренно НЕТ символа ";"
    doIt(4) // и здесь тоже :-)
  }
} // end of class Trampampam2


4) запускаю файл по Shift-F6.
5) получаю в консоли NetBeans'a:
Код: plaintext
1.
2.
3.
4.
5.
run:
yes, i`m here with int=1
yes, i`m here with int=2
yes, i`m here with int=3
yes, i`m here with int=4
BUILD SUCCESSFUL (total time: 0 seconds)

Кому интересно, проверьте сами - код перед вами.
PS.
Код: plaintext
1.
2.
3.
4.
5.
Product Version: NetBeans IDE 7.2.1 (Build 201210100934)
Updates: Updates available
Java: 1.6.0_31; Java HotSpot(TM) Client VM 20.6-b01
System: Windows 2000 version 5.0 running on x86; Cp1251; en_us (nb)
User directory: C:\Documents and Settings\ozzmosis\Application Data\NetBeans\7.2.1
Cache directory: C:\Documents and Settings\ozzmosis\Local Settings\Application Data\NetBeans\Cache\7.2.1
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38255552
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,

блин.. подтверждаю ахтунг. Так оно все и есть.
Причем...самое страшное, он даже такое воспринимает нормально:

for (int i=1 i<=10; i++)
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38255555
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ozzmosis,

но билд таки он не делает, к слову.
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38255566
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ozzmosis
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
// раскомментарил бредятину, жамкаю Shift-F6, выполняю опять в консоли:
D:\JAVA\nbprojects\csprobe\build\classes>dir /-C trampampam.class | findstr /i /c:"trampampam"
13.05.2013  17:2 8                    862  trampampam.class

D:\JAVA\nbprojects\csprobe\build\classes>java trampampam
yes, i`m here with int=1
yes, i`m here with int=2
yes, i`m here with int=3
yes, i`m here with int=4

А если открыть скомпилированное на просмотр, там разве нет строк вида
Код: plaintext
Syntax error, insert ";" to complete Statement
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38255601
ozzmosis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ivanraА если открыть скомпилированное на просмотря правильно понял, что под "открыть скомпилированное" понимается натравливание на класс утилиты javap ?
Если да, то вот:
Код: plaintext
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.
D:\JAVA\nbprojects\csprobe\build\classes>javap -c Trampampam2
Compiled from "Trampampam2.java"
public class Trampampam2 extends java.lang.Object{
public Trampampam2();
  Code:
   0:   aload_0
   1:   invokespecial   #1; //Method java/lang/Object."<init>":()V
   4:   return

static void doIt(int);
  Code:
   0:   getstatic       #2; //Field java/lang/System.out:Ljava/io/PrintStream;
   3:   new     #3; //class java/lang/StringBuilder
   6:   dup
   7:   invokespecial   #4; //Method java/lang/StringBuilder."<init>":()V
   10:  ldc     #5; //String yes, i`m here with int=
   12:  invokevirtual   #6; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
   15:  iload_0
   16:  invokevirtual   #7; //Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
   19:  invokevirtual   #8; //Method java/lang/StringBuilder.toString:()Ljava/lang/String;
   22:  invokevirtual   #9; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
   25:  return

public static void main(java.lang.String[]);
  Code:
   0:   iconst_1
   1:   invokestatic    #10; //Method doIt:(I)V
   4:   iconst_2
   5:   invokestatic    #10; //Method doIt:(I)V
   8:   iconst_3
   9:   invokestatic    #10; //Method doIt:(I)V
   12:  iconst_4
   13:  invokestatic    #10; //Method doIt:(I)V
   16:  return

}
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38255611
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanraА если открыть скомпилированное на просмотр, там разве нет строк вида
Код: plaintext
Syntax error, insert ";" to complete Statement

"скомпилированное"? Байткод не хранит всех деталей синтаксиса оригинального класса.
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38256061
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у нетбинс в кишках свой компилятор, то он что угодно может делать.
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38256087
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczivanraА если открыть скомпилированное на просмотр, там разве нет строк вида
Код: plaintext
Syntax error, insert ";" to complete Statement

"скомпилированное"? Байткод не хранит всех деталей синтаксиса оригинального класса.
Я по аналогии с эклипсом. У него свой компилятор, и он так же как и нетбинс компилирует некомпилируемое. И этот код будет исполняться, до тех пор, пока не попадет на участок с ошибкой, а при попытке исполнения некомпилируемого кода будет выдана ошибка.
Приведенная строка как раз соответствует тому, что вставляет эклипс, просто предположил, что нетбинс должен вставлять что-то подобное. Для того, чтобы увидеть строку, необязательно делать декомпиляцию, можно открыть любой смотрелкой, например, F3 в FAR-е
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38257398
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше бы сделали чтоб можно было писать блоки из одного выражения без скобок в любом месте,
и синхронайзд в выражениях, например

Код: java
1.
2.
3.
 

public int getSum() return synchronized(that) getSomeValue() + synchronized(this) getSomeValue();
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38257618
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛагманЛучше бы сделали чтоб можно было писать блоки из одного выражения без скобок в любом месте,
и синхронайзд в выражениях, например

Код: java
1.
2.
3.
 

public int getSum() return synchronized(that) getSomeValue() + synchronized(this) getSomeValue();



dafuq?
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38257644
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ждем нетбинс, в котором можно будет вообще ничего не писать и он это все равно скомпилит в правильную программу.
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38257947
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public int getSum() {
    	int value;

	synchronized(that) {
		value = getSomeValue();
	}

	synchronized(this) {
		value += getSomeValue();
	}
	return  value;
}



Пример конешно притянут за уши, но все же.
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38263764
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал Ваш код на NetBeans 7.2.1 (jdk6 ) и NetBeans 7.3 (jdk7).

Если в Properies компилятора для проекта отмечен флаг Compile On Save, то NetBeans выдает диалоговое окно, о том, что компилятор обнаружил ошибки и спрашивает "Run Anyway" или "Cancel". Но в этом окне есть возможность установить флажок, чтобы при дальнейшей работе диалоговое окно не появлялось и тогда, если parser NetBeans может исправить ошибку он выполнит Ваш код.

Если снять флажок Compile On Save, то код не выполняется из-за ошибок.

NetBeans использует компилятор JDK для ANT/Maven задач, но конечно для editor (parsing etc) он использует возможности javax.lang.model.

Вообще то об этом подробно можно узнать здесь:

http://wiki.netbeans.org/FaqCompileOnSave
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38263871
ozzmosis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valery ShiskinПопробовал Ваш код на NetBeans 7.2.1 (jdk6 )у мну 7.2.1. Не могу найти, где в его настройках подкручиваются "Properies компилятора" ?
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38264763
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ozzmosis,

Щелчок на Вашем проекте в Project Explore, затем выбор пункта меню Properties, а там слева Build -> Compiling.

Свойства настраиваются индивидуально на каждый проект.
...
Рейтинг: 0 / 0
NetBeans... может выполнять некомпилируемый код ?!
    #38264981
ozzmosis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valery Shiskin,

спасибо.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / NetBeans... может выполнять некомпилируемый код ?!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]