Задайте версию Java на рабочем столе [duplicate]

Это оптимизация производительности. В результате этой функциональности, какой из этих двух вызовов функций вы считаете более быстрым?

def print_tuple(some_tuple=(1,2,3)):
    print some_tuple

print_tuple()        #1
print_tuple((1,2,3)) #2

Я дам вам подсказку. Вот разборка (см. http://docs.python.org/library/dis.html ):

# 1

0 LOAD_GLOBAL              0 (print_tuple)
3 CALL_FUNCTION            0
6 POP_TOP
7 LOAD_CONST               0 (None)
10 RETURN_VALUE

# 2

 0 LOAD_GLOBAL              0 (print_tuple)
 3 LOAD_CONST               4 ((1, 2, 3))
 6 CALL_FUNCTION            1
 9 POP_TOP
10 LOAD_CONST               0 (None)
13 RETURN_VALUE

Я сомневаюсь, что опытное поведение имеет практическое применение (кто действительно использовал статические переменные в C без размножающихся ошибок?)

] Как вы можете видеть, - преимущество производительности при использовании неизменяемых аргументов по умолчанию. Это может иметь значение, если это часто называемая функция или аргумент по умолчанию занимает много времени, чтобы построить. Кроме того, имейте в виду, что Python не C. В C у вас есть константы, которые в значительной степени свободны. В Python у вас нет этого преимущества.

18
задан AndyPower 5 September 2011 в 14:28
поделиться

4 ответа

Вам также нужно переключить переменную среды пути, чтобы указать ее в каталог JRE bin. Кроме того, я думаю, что современные версии java помещают копию «java.exe» в каталог system32 Windows, вам нужно будет удалить их (или переименовать их, если вы хотите сохранить их как резервные копии).

32
ответ дан Sirs 21 August 2018 в 05:10
поделиться
  • 1
    Спасибо! Я переименовал java.exe в папку system32, и он работает! – AndyPower 5 September 2011 в 14:37
  • 2
    Нет проблем, я недавно обновился до Windows 7 64 как дома, так и на работе, и я столкнулся с проблемами, которые вы описываете. – Sirs 5 September 2011 в 14:39
  • 3
    У меня была проблема с обращением: я хотел java 7, но он запускал только java 6. Вы тоже решили мою проблему, я удалил java.exe в system32. Благодаря! – java lava 6 November 2011 в 18:57
  • 4
    Gosh, спасибо за подсказку System32. Я почти безумно пытался избавиться от версии Java 7 через переменную PATH: D – Max 23 April 2013 в 15:57
  • 5
    подумал о unistalling java7, прежде чем я увидел этот пост. спасибо, это сэкономило много времени – akhi 28 January 2014 в 10:33

Так как Java поддерживает опцию командной строки «-версия». Вы можете использовать эту функцию для выбора конкретной версии для запуска, например:

java -version:1.7 -jar [path to jar file] запустит приложение jar в java 1.7, если оно установлено.

См. Документацию Oracle здесь: http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html

2
ответ дан Akhilesh Dhar Dubey 21 August 2018 в 05:10
поделиться

JAVA_HOME не используется java.exe.

Обязательно укажите путь к каталогу Java 6 JRE bin в переменной окружения PATH, до Java JRE, и перед системным каталогом Windows (system32).

Или вы можете использовать полный путь к команде java:

c:\java6\bin\java com.foo.bar.Main
3
ответ дан JB Nizet 21 August 2018 в 05:10
поделиться

Windows использует переменную среды PATH, а не JAVA_HOME для выполнения исполняемых файлов, включая Java-приложение launcher java.exe. Хотя переменная среды JAVA_HOME может использоваться в переменной среды PATH, это не обязательно, поэтому вы должны изменить переменную среды PATH для использования JAVA_HOME или нового дома установки Java 6.

3
ответ дан Vineet Reynolds 21 August 2018 в 05:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: