HttpListener (SelfHost) Веб-сервер Nancy - автоматизация регистрации URL-адреса сервера с правами администратора в C # [дубликат]

Как это исправить?

Эта ошибка означает, что JRE, который используется для выполнения вашего кода класса, не распознает используемую версию Java. Обычно, поскольку версия Java, которая сгенерировала ваш файл класса (т.е. скомпилировала его), является более новой.

Чтобы исправить это, вы можете либо

a) Скомпилировать ваши источники Java с тем же, или более старой версии компилятора Java, который будет использоваться для его запуска. т. е. установить соответствующий JDK.

b) Скомпилировать ваши источники Java с более новой версией компилятора Java, но в режиме совместимости. т.е. используйте параметр -target.

c) Запустите скомпилированные классы в JRE, которая является той же самой или новой версией, что и JDK, используемый для компиляции классов.

Вы может проверить версии, которые вы используете в настоящий момент с помощью javac -version для компилятора, и java -version для среды выполнения.

Должен ли я установить JDK и настроить свою переменную PATH на JDK вместо JRE?

Для компиляции, конечно же, установите и настройте конкретный JDK, который вы хотите.

Для среды исполнения вы можете использовать ту, которая поставляется с JDK или автономный JRE, но независимо от того, убедитесь, что вы установили правильные версии и что вы настроили свой PATH таким образом, чтобы не было сюрпризов.

В чем разница между переменной PATH в JRE или JDK?

Переменная среды PATH сообщает командной оболочке, где нужно искать введенную команду. Когда вы набираете java, интерпретатор командной оболочки будет просматривать все местоположения, указанные в переменной PATH слева направо, чтобы найти исполняемый файл исполняемого файла java для запуска. Если у вас есть несколько версий Java, то есть у вас есть исполняемый файл java в нескольких местах, указанных в переменной PATH, то первый, который встречается при движении слева направо, будет выполняться.

Команда компилятора javac и поставляется только с JDK. Команда runtime является java и поставляется с JDK и находится в JRE.

Вероятно, у вас установлена ​​одна версия (51.0 = Java 7) javac, и у вас также есть ту же версию java, но другая предыдущая версия java появляется раньше в PATH и поэтому вызывается вместо ожидаемого.

60
задан davmos 24 April 2015 в 14:31
поделиться

3 ответа

В VS2010, 2012, 2013 и 2015 годах вы можете добавить файл манифеста в свой проект. Щелкните правой кнопкой мыши файл project в Solution Explorer , выберите Add, затем New item. Там вы можете найти Application Manifest File.

Имя файла - app.manifest.

78
ответ дан Peter 22 August 2018 в 00:13
поделиться
  • 1
    Спасибо, но я не знаю, как правильно создать файл. – Cocoa Dev 19 May 2011 в 14:22
  • 2
    Инструкции Ибрама также применимы к Visual Studio 2012. – WorkSmarter 1 November 2013 в 00:28
  • 3
    и Visual Studio 2013. – buttercup 12 July 2014 в 19:20
  • 4
    Cocoa, он создает манифест по умолчанию. Вы можете изменить что-то в нем (например, «программа требует уровня выполнения администратора»), но вы можете сохранить ее по умолчанию – BlueWizard 23 May 2015 в 14:42
  • 5
    Возможно, стоит отметить, что использование манифеста по умолчанию, созданного этим методом и содержащего узел & quot; & lt; assemblyIdentity version = "1.0.0.0" Имя = & Quot; MyApplication & Quot; / & GT; как указано выше, по крайней мере, не имеет большого смысла и, по крайней мере, запутывает. Я не уверен, может ли это быть источником дальнейших проблем, поскольку имя и версия сборки в манифесте могут быть ложными и не взяты из «AssemblyInfo.cs»? Я использую только те части, которые имеют смысл этого шаблона. Особенно я добавляю ключи операционной системы, например. для Win 10, который даже VS 2013 еще не знает. – Philm 11 November 2015 в 01:16

Перейдите в папку obj в папке вашего приложения, затем отлаживайте. Там удалите файл манифеста и снова создайте его. Это сработало для меня.

0
ответ дан Isaac 22 August 2018 в 00:13
поделиться

Как указано ibram, добавьте манифест через explorer:

Это создает манифест по умолчанию. Теперь отредактируйте манифест.

  • Обновить имя assemblyIdentity в качестве приложения.
  • Попросите пользователей доверять вашему приложению

  • Добавить поддерживаемую ОС

11
ответ дан Jim Lahman 22 August 2018 в 00:13
поделиться
  • 1
    Узел <applicationRequestMinimum> не подходит по умолчанию? Это то, что вы добавили по причине? Я использую VS2015 – Horizon 11 August 2016 в 08:52
Другие вопросы по тегам:

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