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?

4
Indigenuity 1 marzec 2012, 23:25

2 odpowiedzi

Najlepsza odpowiedź

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'])
7
Alexander Ponomarenko 1 marzec 2012, 23:33

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ę :)

0
Benj 30 listopad 2016, 17:35