Jeśli napisałem program Scala, czy mogę skompilować go w taki sposób, aby mógł go uruchomić każdy ze standardową maszyną JVM Sun Java? Zgaduję, że kompilator Scali musiałby zawierać kod API specyficzny dla Scala w skompilowanym projekcie? Jestem zainteresowany tym, że nasze projekty klasowe mogą być zwykle dostarczane w dowolnym języku, który preferują, ale TA sortuje dostawy z reguły chcąc uruchomić kod na własnej maszynie lub na maszynach laboratoryjnych.Czy program Scala może zostać skompilowany do uruchamiania na dowolnej maszynie JVM bez zainstalowanego Scala na danym komputerze?
Odpowiedz
Nie musisz robić nic specjalnego, aby uruchomić skompilowany program Scala na maszynie JVM. Jest to po prostu kod bajtowy JVM. Jedyne, czego potrzebujesz, to upewnić się, że standardowa biblioteka Scala (scala-library.jar) jest zawarta w ścieżce klasy w czasie wykonywania. To jest tylko dodatkowa zależność (a może również potrzebujesz scala-swing.jar, jeśli używasz wrapperów Swing dla swojego GUI).
Jeśli martwisz się wygodą użytkownika, możesz nawet spakować aplikację do pojedynczego słoika, aby zawierał zawartość scala-library.jar oraz własne klasy i zasoby. Ale osobiście zrobiłbym to tylko wtedy, gdyby ten plik był wykonywalny (można go uruchomić jako java -jar yourApplication.jar).
Uwagi o Scala biblioteki:
- Zapewnia tylko, że - biblioteka. Brak interpretera, żadnego kompilatora lub specjalnego środowiska wykonawczego; więc nie powinieneś się martwić o problemy z ładowaniem klas.
- Powinna pasować do wersji Scala, której używasz podczas kompilacji programu (biblioteka Scala dla wersji 2.7 i dla wersji 2.8 nie jest wymienna).
- Można go znaleźć w swojej dystrybucji Scala: lib/scala-library.jar
Tak. Jeśli umieścisz odpowiedni plik jar biblioteki scala w ścieżce klasy, program scala może zostać uruchomiony przy użyciu java, ponieważ skompilowany kod scala jest taki sam, jak skompilowany kod Java.
Jeśli kiedykolwiek korzystał z żadnych bibliotek Java, tylko leczyć Scala jak oni. Pobierz słoik Scala (plik biblioteczny) i spakuj go razem ze swoim słoikiem za pomocą jednego z dostępnych programów lub rozprowadź je razem.
- 1. Dołącz replikę clojure/scala do działającego JVM
- 2. Czy cały kod bajtowy skompilowany ze źródeł java może zostać zdekompilowany do źródeł java?
- 3. Zezwolono na wiązanie portu podczas uruchamiania aplikacji Scala przez SBT
- 4. Czy "ekstraktor" Scala może używać generycznych na Unapply?
- 5. Czy skrypt Scala może odwoływać się do innego nieskompilowanego kodu scala w tym samym katalogu?
- 6. Czy można zmienić program Scala REPL programowo?
- 7. Scala na pulpicie
- 8. Makra Scala i limit rozmiaru metody JVM
- 9. Dowolna licencja na mój skompilowany program gcc?
- 10. Scala na .NET HelloWorld
- 11. MVC na Lift/Scala
- 12. Utwórz skrót do dowolnej aplikacji na komputerze stacjonarnym
- 13. Czy klasa Scala może rozszerzać wiele klas?
- 14. Czy Android JVM może działać również na PC?
- 15. Zobacz "Program Files" na 64-bitowej maszynie
- 16. Czy scala kompilator Scala jest ponownie?
- 17. Scala: Czy mogę przekonwertować opcję na varargs?
- 18. Zwiększ wielkość sterty JVM dla Scala?
- 19. Czy oczekiwanie na Scala Future blokuje wątek?
- 20. Dlaczego skompilowany program linux nie działa na Windows
- 21. Szablon dyrektywy AngularJs z ng-transclude nie może zostać skompilowany
- 22. Scala looping na określony czas
- 23. Revised generics in Scala 2.10
- 24. Zobacz aktywne połączenie pulpitu zdalnego na danym komputerze
- 25. Scala - czy parametr lambda może pasować do krotki?
- 26. Dobre odniesienie do tego, jak scala jest mapowana na kod Jvm
- 27. W jaki sposób Scala Slick tłumaczy kod Scala na JDBC?
- 28. Scala: Spróbuj do pierwszego sukcesu na liście
- 29. programowanie aplikacji scala na iPhone?
- 30. Jak "kosztowne" jest wykonanie jstack na działającej maszynie JVM?