{"id":90484,"date":"2020-08-01T13:42:39","date_gmt":"2020-08-01T11:42:39","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/obnovlenie-jpype-1-0-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python"},"modified":"2020-08-01T13:42:39","modified_gmt":"2020-08-01T11:42:39","slug":"obnovlenie-jpype-1-0-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/news\/obnovlenie-jpype-1-0-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","title":{"rendered":"Aktualiz\u00e1cia JPype 1.0.2, kni\u017enice na pr\u00edstup k Java triedam z Pythonu","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/releases\/tag\/1.0.2\">Dostupn\u00fd<\/a><\/noindex> nov\u00e9 vydanie vrstvy <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/\">JPype 1.0.2<\/a><\/noindex>, ktor\u00e9 umo\u017e\u0148uje pln\u00fd pr\u00edstup Python aplik\u00e1ci\u00ed k Java kni\u017eniciam. S JPype m\u00f4\u017eu Python aplik\u00e1cie vyu\u017e\u00edva\u0165 \u0161pecifick\u00e9 Java kni\u017enice a vytv\u00e1ra\u0165 hybridn\u00e9 aplik\u00e1cie kombinuj\u00face k\u00f3d v Jave a Pythone. Na rozdiel od Jythonu, integr\u00e1cia s Javou sa dosahuje nie cez vytvorenie verzie Pythonu pre JVM, ale cez interakciu na \u00farovni oboch virtu\u00e1lnych strojov, pri\u010dom sa vyu\u017e\u00edva zdie\u013ean\u00e1 pam\u00e4\u0165. Navrhovan\u00fd pr\u00edstup umo\u017e\u0148uje nielen dosiahnu\u0165 dobr\u00fd v\u00fdkon, ale aj poskytuje pr\u00edstup ku v\u0161etk\u00fdm kni\u017eniciam CPython a Javy. K\u00f3d projektu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/\">distribuovan\u00fd<\/a><\/noindex> pod licenciou Apache 2.0.<\/p>\n<p>Hlavn\u00e9 zmeny:<\/p>\n<ul>\n<li class=\"l\"> Do volan\u00ed met\u00f3d bol pridan\u00fd cache, ktor\u00fd zabra\u0148uje rozli\u0161ovaniu pre\u0165a\u017eenia, \u010do v\u00fdrazne zni\u017euje vplyv na v\u00fdkon pri rozli\u0161ovan\u00ed met\u00f3d, najm\u00e4 ak sa to ist\u00e9 pre\u0165a\u017eenie vol\u00e1 viackr\u00e1t, ako pri v\u00fdkone cyklov.\n<li class=\"l\"> Prenos zoznamov, n-t\u00edc a b\u00faferov do pol\u00ed Java primit\u00edvov bol zr\u00fdchlen\u00fd od 4 do 100-kr\u00e1t, v z\u00e1vislosti od typu \u00fadajov. Transform\u00e1cia vyu\u017e\u00edva optimalizovan\u00e9 spracovanie b\u00faferov v pam\u00e4ti, namiesto Sequence API. Pri stretnut\u00ed s b\u00faferom Pythonu sa kontroluje len prv\u00fd prvok na transform\u00e1ciu, preto\u017ee tieto d\u00e1ta s\u00fa homog\u00e9nne.\n<li class=\"l\"> Spracovanie oper\u00e1ci\u00ed shutdown (realizovan\u00e9 u\u017e vo verzii JPype 1.0.0, ale bolo vynechan\u00e9 pri pr\u00edprave zoznamu zmien). JPype teraz vol\u00e1 shutdown proced\u00faru JVM, ktor\u00e1 sa sna\u017e\u00ed ukon\u010di\u0165 proces v re\u017eime \u201egracefully\u201c. To vedie k nieko\u013ek\u00fdm zmen\u00e1m v spr\u00e1van\u00ed. Nebezpe\u010dn\u00e9 vl\u00e1kna (proxy volanie) teraz m\u00f4\u017eu udr\u017eiava\u0165 JVM otvoren\u00fd, k\u00fdm nie s\u00fa ukon\u010den\u00e9. Volania Proxy zvl\u00e1dnu shutdown, k\u00fdm sa volanie nedokon\u010d\u00ed, ale dostan\u00fa spr\u00e1vu o preru\u0161enia. S\u00fabory sa teraz spr\u00e1vne zatv\u00e1raj\u00fa a pres\u00favaj\u00fa \u00fadaje na disk (flush), ak vl\u00e1kna spracov\u00e1vaj\u00fa v\u00fdnimku po\u017eadovan\u00fdm sp\u00f4sobom. Sp\u00fa\u0161\u0165aj\u00fa sa h\u00e1ky na vy\u010distenie zdrojov a finaliz\u00e1tory. Pri generovan\u00ed vl\u00e1kien sa vyvol\u00e1vaj\u00fa AtExit h\u00e1ky. Skrze d\u00e9mon je implementovan\u00e9 automatick\u00e9 pripojenie vl\u00e1kien pri pou\u017eit\u00ed JVM z Pythonu. Chybov\u00fd k\u00f3d, ktor\u00fd nedok\u00e1\u017ee spr\u00e1vne spracova\u0165 vy\u010distenie vl\u00e1kna, pravdepodobne zamrzne pri vykon\u00e1van\u00ed shutdown. \u010eal\u0161ia dokument\u00e1cia sa nach\u00e1dza v pou\u017e\u00edvate\u013eskej pr\u00edru\u010dke.\n<li class=\"l\"> Zabalenie pre Throwable dostalo zabalenie pre Object namiesto o\u010dak\u00e1van\u00e9ho v\u00fdsledku, \u010do viedlo k divn\u00fdm transform\u00e1ci\u00e1m z Python tried.\n<li class=\"l\"> Opraven\u00e9 preklepy v syst\u00e9me importu, ktor\u00e9 ved\u00fa k zobrazeniu chyby \u2018\u201ejname\u201c not found\u2019.\n<li class=\"l\"> Zabezpe\u010den\u00e9 spr\u00e1vne propagovanie \u201e^C\u201c v KeyboardInterrupt.\n<li class=\"l\"> Odstr\u00e1nen\u00fd probl\u00e9m so znakmi v Pythone 3.5.3. PySlice_Unpack bol zaveden\u00fd v n\u00e1slednej opravnej verzii (3.5.4) a nemal sa pou\u017e\u00edva\u0165.\n<li class=\"l\"> Opraven\u00e1 chyba s numpy.linalg.inv, ktor\u00e1 vedie k p\u00e1du. Probl\u00e9m bol sledovan\u00fd a\u017e k interakcii vl\u00e1kien medzi JVM a niektor\u00fdmi variantmi numpy. Navrhovan\u00e9 rie\u0161enie \u2014 vyvola\u0165 numpy.linalg.inv pred spusten\u00edm JVM.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Zdroj: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53469\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u043e\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0438 JPype 1.0.2, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0439 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f Python-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Java. \u041f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 JPype \u0438\u0437 Python \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0435 \u0434\u043b\u044f Java \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0441\u043e\u0447\u0435\u0442\u0430\u044e\u0449\u0438\u0435 \u043a\u043e\u0434 \u043d\u0430 Java \u0438 Python. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 Jython, \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Java \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 Python \u0434\u043b\u044f JVM, \u0430 \u0447\u0435\u0440\u0435\u0437 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-90484","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u043e\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0438\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sk\/blog\/news\/obnovlenie-jpype-1-0-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 JPype 1.0.2, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a Java-\u043a\u043b\u0430\u0441\u0441\u0430\u043c \u0438\u0437 Python | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u043e\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0438\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/news\/obnovlenie-jpype-1-0-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-08-01T11:42:39+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-01T11:42:39+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Aktualiz\u00e1cia JPype 1.0.2, kni\u017enice pre pr\u00edstup k Java triedam z Pythona | ProHoster","description":"Dostupn\u00e9 nov\u00e9 vydanie vrstvy","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/news\/obnovlenie-jpype-1-0-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 JPype 1.0.2, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a Java-\u043a\u043b\u0430\u0441\u0441\u0430\u043c \u0438\u0437 Python | ProHoster","og:description":"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u043e\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0438","og:url":"https:\/\/prohoster.info\/sk\/blog\/news\/obnovlenie-jpype-1-0-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-08-01T11:42:39+00:00","article:modified_time":"2020-08-01T11:42:39+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"90484","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:49:32","updated":"2022-10-08 07:13:16","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/90484","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=90484"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/90484\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=90484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=90484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=90484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}