{"id":72012,"date":"2020-02-29T21:04:04","date_gmt":"2020-02-29T18:04:04","guid":{"rendered":"https:\/\/prohoster.info\/blog\/reliz-jpype-0-7-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python"},"modified":"2020-03-03T16:10:24","modified_gmt":"2020-03-03T13:10:24","slug":"reliz-jpype-0-7-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/news\/reliz-jpype-0-7-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","title":{"rendered":"A JPype 0.7.2 kiad\u00e1sa, amely lehet\u0151v\u00e9 teszi a Java-oszt\u00e1lyok el\u00e9r\u00e9s\u00e9t Pythonb\u00f3l","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/releases\/tag\/v0.7.2\">El\u00e9rhet\u0151<\/a><\/noindex> r\u00e9tegkiad\u00e1s <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/\">JPype 0.7.2<\/a><\/noindex>, amely teljes hozz\u00e1f\u00e9r\u00e9st biztos\u00edt a Python-alkalmaz\u00e1sok sz\u00e1m\u00e1ra a Java nyelv\u0171 oszt\u00e1lyk\u00f6nyvt\u00e1rakhoz. A JPype seg\u00edts\u00e9g\u00e9vel a Pythonb\u00f3l haszn\u00e1lhat\u00f3k a Java-specifikus k\u00f6nyvt\u00e1rak, hibrid alkalmaz\u00e1sok l\u00e9trehozva, amelyek kombin\u00e1lj\u00e1k a Java \u00e9s a Python k\u00f3dot. A Jythont\u00f3l elt\u00e9r\u0151en a Java integr\u00e1ci\u00f3 nem a JVM-hez k\u00e9sz\u00fclt Python verzi\u00f3 l\u00e9trehoz\u00e1s\u00e1val \u00e9rhet\u0151 el, hanem a k\u00e9t virtu\u00e1lis g\u00e9p k\u00f6z\u00f6tti interakci\u00f3 r\u00e9v\u00e9n, megosztott mem\u00f3ri\u00e1t haszn\u00e1lva. Ez a megk\u00f6zel\u00edt\u00e9s nemcsak j\u00f3 teljes\u00edtm\u00e9nyt ny\u00fajt, hanem hozz\u00e1f\u00e9r\u00e9st biztos\u00edt az \u00f6sszes CPython \u00e9s Java k\u00f6nyvt\u00e1rhoz is. A projekt k\u00f3dja <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/\">terjeszt\u00e9sre ker\u00fcl<\/a><\/noindex> Apache 2.0 licenc alatt.<\/p>\n<p>F\u0151bb v\u00e1ltoz\u00e1sok:<\/p>\n<ul>\n<li class=\"l\"> A C++ \u00e9s Java k\u00f3dban dobott kiv\u00e9telek mostant\u00f3l rendelkez\u00e9sre bocs\u00e1tj\u00e1k a kiv\u00e9teli verem inform\u00e1ci\u00f3t, ha kiv\u00e9tel l\u00e9p fel a Python k\u00f3dban. \u00cdgy mostant\u00f3l nem sz\u00fcks\u00e9ges a stacktrace() h\u00edv\u00e1sa a kiv\u00e9teli verem inform\u00e1ci\u00f3 megszerz\u00e9s\u00e9hez.\n<li class=\"l\"> A h\u00edv\u00e1sok visszat\u00e9r\u00e9si sebess\u00e9ge h\u00e1romszoros\u00e1ra n\u0151tt.\n<li class=\"l\"> Jelent\u0151sen (rendk\u00edv\u00fcli m\u00e9rt\u00e9kben) megn\u00f6velt\u00e9k a gyorsas\u00e1got a<br \/>\nnumpy t\u00f6bbsz\u00f6r\u00f6s t\u00f6mbjeinek \u00e1tvitel\u00e9ben. A t\u00f6bbsz\u00f6r\u00f6s primit\u00edvek csak olvashat\u00f3 m\u00e1solatokat adnak \u00e1t, amelyek a JVM-en bel\u00fcl k\u00e9sz\u00fclnek, folyamatos C elrendez\u00e9ssel.<\/p>\n<li class=\"l\"> Minden kiadott bels\u0151 komponens CPython implement\u00e1ci\u00f3kra lett cser\u00e9lve, \u00e9s az __javaclass__, __javavalue__ \u00e9s __javaproxy__<br \/>\nszimb\u00f3lumok elt\u00e1vol\u00edt\u00e1sra ker\u00fcltek. Minden CPython-b\u00f3l sz\u00e1rmaz\u00f3 oszt\u00e1ly t\u00edpushoz egy dedik\u00e1lt Java-helyet adtak hozz\u00e1. Minden priv\u00e1t t\u00e1bla \u00e1tker\u00fclt a CPythonba. A Java-t\u00edpusoknak most a JClass metaklaszt\u00f3l kell sz\u00e1rmazniuk, amely t\u00edpus helyeket haszn\u00e1l. A Python alap\u00fa oszt\u00e1lyok kever\u00e9kei nem enged\u00e9lyezettek. Az Object, Proxy, Exception, Number \u00e9s Array t\u00edpusok k\u00f6zvetlen\u00fcl a CPython bels\u0151 implement\u00e1ci\u00f3ib\u00f3l sz\u00e1rmaznak.<\/p>\n<li class=\"l\"> Jav\u00edtott\u00e1k a nyomk\u00f6vet\u00e9st \u00e9s a kiv\u00e9telek kezel\u00e9s\u00e9t.\n<li class=\"l\"> A t\u00f6mbszeletek most m\u00e1r n\u00e9zetek form\u00e1j\u00e1ban kezeltek, amelyek t\u00e1mogatj\u00e1k az eredetihez val\u00f3 vissza\u00edr\u00e1st, p\u00e9ld\u00e1ul numpy t\u00f6mb\u00f6ket. A t\u00f6mbszeletekhez biztos\u00edtott\u00e1k a l\u00e9p\u00e9senk\u00e9nti \u00e9rt\u00e9kbe\u00e1ll\u00edt\u00e1s \u00e9s -lek\u00e9r\u00e9s t\u00e1mogat\u00e1s\u00e1t (slice(start, stop, step)).\n<li class=\"l\"> A t\u00f6mb\u00f6kben megval\u00f3s\u00edt\u00e1sra ker\u00fclt a &#171;__reversed__&#187; t\u00e1mogat\u00e1sa.\n<li class=\"l\"> A Java-t\u00f6mb\u00f6k t\u00e1mogatj\u00e1k a memoryview API-t, \u00e9s elt\u00e1vol\u00edtott\u00e1k a numpy f\u00fcgg\u0151s\u00e9get a puffer tartalm\u00e1nak \u00e1tad\u00e1s\u00e1hoz.\n<li class=\"l\"> A Numpy most m\u00e1r nem f\u00fcgg\u0151s\u00e9g (extra), \u00e9s a mem\u00f3ria \u00e1tad\u00e1sa a numpy sz\u00e1m\u00e1ra el\u00e9rhet\u0151 an\u00e9lk\u00fcl, hogy a numpy-t t\u00e1mogat\u00f3 ford\u00edt\u00e1sra lenne sz\u00fcks\u00e9g.\n<li class=\"l\"> A JInterface meta-oszt\u00e1lyk\u00e9nt van form\u00e1lva. Haszn\u00e1lja az isinstance(cls, JInterface) kifejez\u00e9st az interf\u00e9szek ellen\u0151rz\u00e9s\u00e9re.\n<li class=\"l\"> Az alap\u00e9rtelmezett importokba hozz\u00e1 lettek adva a hi\u00e1nyz\u00f3 TLD-k: &#171;mil&#187;, &#171;net&#187; \u00e9s &#171;edu&#187;.\n<li class=\"l\"> A rendszerind\u00edt\u00e1s sor\u00e1n jav\u00edtott\u00e1k a UnsupportedClassVersion-ra vonatkoz\u00f3 hibajelz\u00e9seket.\n<li class=\"l\">    A java.util.Map most KeyError-t ad vissza, ha egy elem nem tal\u00e1lhat\u00f3. A null \u00e9rt\u00e9kek tov\u00e1bbra is None-t adnak vissza, ahogyan v\u00e1rhat\u00f3. Haszn\u00e1lja a get() met\u00f3dust, ha a \u00fcres kulcsokat None-k\u00e9nt kell kezelni.\n<li class=\"l\"> A java.util.Collection elt\u00e1vol\u00edt\u00e1sra ker\u00fclt, mivel furcsa m\u00f3don terhel\u0151dik a remove(Object) \u00e9s remove(int) k\u00f6z\u00f6tt List\u00e1kon. Haszn\u00e1lja a Java remove() met\u00f3dus\u00e1t az eredeti Java viselked\u00e9s el\u00e9r\u00e9s\u00e9hez, de a t\u00edpus\u00e1talak\u00edt\u00e1s szigor\u00faan aj\u00e1nlott a terhel\u00e9s kezel\u00e9s\u00e9hez.\n<li class=\"l\"> A java.lang.IndexOutOfBoundsException mostant\u00f3l elkaphat\u00f3 az IndexError oszt\u00e1ly seg\u00edts\u00e9g\u00e9vel a java.util.List elemeinek el\u00e9r\u00e9si k\u00eds\u00e9rletekor.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Forr\u00e1s: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52456\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0438 JPype 0.7.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 \u043d\u0430 [&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-72012","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0438 JPype.\" \/>\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\/hu\/blog\/news\/reliz-jpype-0-7-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\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\u0420\u0435\u043b\u0438\u0437 JPype 0.7.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 \u0440\u0435\u043b\u0438\u0437 \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0438 JPype.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/news\/reliz-jpype-0-7-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-02-29T18:04:04+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-03T13:10:24+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\udd47JPype 0.7.2 kiad\u00e1sa, k\u00f6nyvt\u00e1r Java oszt\u00e1lyok el\u00e9r\u00e9s\u00e9hez Pythonb\u00f3l | ProHoster","description":"El\u00e9rhet\u0151 a JPype r\u00e9teg kiad\u00e1sa.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/news\/reliz-jpype-0-7-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","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\u0420\u0435\u043b\u0438\u0437 JPype 0.7.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 \u0440\u0435\u043b\u0438\u0437 \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0438 JPype.","og:url":"https:\/\/prohoster.info\/hu\/blog\/news\/reliz-jpype-0-7-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-02-29T18:04:04+00:00","article:modified_time":"2020-03-03T13:10:24+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"72012","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 18:52:25","updated":"2022-10-01 19:59:41","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/72012","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=72012"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/72012\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=72012"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=72012"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=72012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}