Mając na uwadze eksperymentalny cel, jakim jest stworzenie całkowicie przenośnego urządzenia Play! aplikacji, nie martwiąc się o to, czy maszyna hosta ma Play! lub nawet Java, próbuję znaleźć sposób, aby powiedzieć Play! gdzie szukać Javy, zamiast patrzeć na zmienną środowiskową JAVA_HOME.
Spakowanie samego frameworka z aplikacją nie jest trudne, a nawet znalazłem sposób na „osadzenie” MySQL, ale nie znalazłem sposobu na spakowanie Javy i zrobienie Play! użyj środowiska JRE, które mam w tym samym katalogu. czy to możliwe?
2 odpowiedzi
Jak zaczynasz grać? Jeśli nie możesz po prostu dodać start.sh/start.bat, który ustawi JAVA_HOME na bieżący_folder/jdk?
Możesz również spakować aplikację Play jako plik WAR i używać jej z przenośnym serwerem Tomcat lub innym serwerem WWW.
Opis polecenia na Play:
~ Skrypt najpierw próbuje zlokalizować polecenie java za pomocą zmiennej środowiskowej $JAVA_HOME (z $JAVA_HOME/bin). ~ Jeśli zmienna $JAVA_HOME nie jest zdefiniowana, używane jest domyślne polecenie java dostępne w PATH.
Możesz więc spróbować dodać Java/bin do swojej ścieżki lub spróbować dodać "java" do katalogu roboczego, w którym zaczynasz grę.
Jako ostatnią opcję możesz zmodyfikować play\framework\pym\play\application.py
i dodać swoją ścieżkę bezpośrednio w nim, zmodyfikuj tę część:
def java_path(self):
if not os.environ.has_key('JAVA_HOME'):
return "java"
else:
return os.path.normpath("%s/bin/java" % os.environ['JAVA_HOME'])
W uzupełnieniu odpowiedzi @AlexanderPonomarenko i komentarza @Indigenuity (obaj mają rację), oto obejście, które działa dla mnie na Win7 x64 z Play 1.4.2:
Edytowałem plik play.bat
znajdujący się w katalogu głównym Play i ustawiłem jego zawartość na :
echo off
set "JAVA_HOME=C:\Program Files (x86)\Java\jre1.8.0_112"
"%~dp0python\python.exe" "%~dp0play" %*
Zauważ, że działa to w moim przypadku użycia z Javą 8u112 x86, musisz ustawić to, czego potrzebujesz.
Zwróć także uwagę na składnię deklarowania JAVA_HOME
ujętego w cudzysłów ze względu na spacje.
Cieszyć się :)
Podobne pytania
Nowe pytania
playframework
Play Framework to nowoczesna platforma internetowa typu open source dla języków Java i Scala.