Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / NetBeans... может выполнять некомпилируемый код ?! / 22 сообщений из 22, страница 1 из 1
13.05.2013, 17:15:25
    #38255505
ozzmosis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NetBeans... может выполнять некомпилируемый код ?!
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
13.05.2013, 17:25:29
    #38255523
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NetBeans... может выполнять некомпилируемый код ?!
ozzmosis,

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

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

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

подвох ощущаю именно такой. Автор что нибудь укрыл: либо старый код со старыми экспериментами, либо зайца в шляпе. Не думаю, что нетбинс может игнорировать критикал компайл ерроры
...
Рейтинг: 0 / 0
13.05.2013, 17:32:43
    #38255540
ozzmosis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NetBeans... может выполнять некомпилируемый код ?!
Озверин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
13.05.2013, 17:35:05
    #38255543
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NetBeans... может выполнять некомпилируемый код ?!
ozzmosis,

разве что нетбинс обучили точку с запятой расставлять?
у меня валялся какой то нетбинс..проверю ща ;)
...
Рейтинг: 0 / 0
13.05.2013, 17:37:48
    #38255546
ozzmosis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NetBeans... может выполнять некомпилируемый код ?!
ОзверинАвтор что нибудь укрыл: либо старый код со старыми экспериментами, либо зайца в шляпе. Не думаю, что нетбинс может игнорировать критикал компайл еррорынеа, ничего там старого не укрыто.
Вот, еще раз:
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
13.05.2013, 17:41:53
    #38255552
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NetBeans... может выполнять некомпилируемый код ?!
Озверин,

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

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

но билд таки он не делает, к слову.
...
Рейтинг: 0 / 0
13.05.2013, 17:50:31
    #38255566
ivanra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NetBeans... может выполнять некомпилируемый код ?!
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
13.05.2013, 18:11:02
    #38255601
ozzmosis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NetBeans... может выполнять некомпилируемый код ?!
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
13.05.2013, 18:18:29
    #38255611
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NetBeans... может выполнять некомпилируемый код ?!
ivanraА если открыть скомпилированное на просмотр, там разве нет строк вида
Код: plaintext
Syntax error, insert ";" to complete Statement

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

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

Код: java
1.
2.
3.
 

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

Код: java
1.
2.
3.
 

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



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

Код: 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
19.05.2013, 12:25:33
    #38263764
Valery Shiskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NetBeans... может выполнять некомпилируемый код ?!
Попробовал Ваш код на 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
19.05.2013, 23:56:50
    #38263871
ozzmosis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NetBeans... может выполнять некомпилируемый код ?!
Valery ShiskinПопробовал Ваш код на NetBeans 7.2.1 (jdk6 )у мну 7.2.1. Не могу найти, где в его настройках подкручиваются "Properies компилятора" ?
...
Рейтинг: 0 / 0
20.05.2013, 16:13:59
    #38264763
Valery Shiskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NetBeans... может выполнять некомпилируемый код ?!
ozzmosis,

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

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

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


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