{"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\/sq\/blog\/novosti-interneta\/reliz-jpype-0-7-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","title":{"rendered":"L\u00ebshimi JPype 0.7.2, nj\u00eb bibliotek\u00eb p\u00ebr qasje n\u00eb klasa Java nga Python.","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\">I verf\u00fcsh\u00ebm<\/a><\/noindex> l\u00ebshimi i shtres\u00ebs <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/\">JPype 0.7.2<\/a><\/noindex>, q\u00eb mund\u00ebson nj\u00eb qasje t\u00eb plot\u00eb t\u00eb aplikacioneve Python n\u00eb librarit\u00eb e klasave n\u00eb gjuh\u00ebn Java. Me ndihm\u00ebn e JPype, nga Python mund t\u00eb p\u00ebrdoren librarit\u00eb specifike p\u00ebr Java, duke krijuar aplikacione hibride q\u00eb kombinojn\u00eb kodin n\u00eb Java dhe Python. Ndryshe nga Jython, integrimi me Java arrihet jo p\u00ebrmes krijimit t\u00eb nj\u00eb varianti Python p\u00ebr JVM, por p\u00ebrmes nd\u00ebrveprimit n\u00eb nivelin e t\u00eb dyja makinave virtuale, duke p\u00ebrdorur memorie t\u00eb p\u00ebrbashk\u00ebt. Qasja e propozuar nuk vet\u00ebm q\u00eb ofron nj\u00eb performanc\u00eb t\u00eb mir\u00eb, por gjithashtu siguron qasje n\u00eb t\u00eb gjitha librarit\u00eb CPython dhe Java. Kodi i projektit <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/\">distribuohet<\/a><\/noindex> n\u00ebn licenc\u00ebn Apache 2.0.<\/p>\n<p>Ndryshimet kryesore:<\/p>\n<ul>\n<li class=\"l\"> P\u00ebrjashtimet q\u00eb hidhen n\u00eb kodin C++ dhe Java tani ofrojn\u00eb stack trace kur ndodh nj\u00eb p\u00ebrjashtim n\u00eb kodin Python. Pra, p\u00ebr t\u00eb marr\u00eb informacionin mbi stack trace, nuk \u00ebsht\u00eb m\u00eb e nevojshme t\u00eb th\u00ebrrisni stacktrace().\n<li class=\"l\"> Shpejt\u00ebsia e kthimit gjat\u00eb thirrjeve \u00ebsht\u00eb rritur tre her\u00eb.\n<li class=\"l\"> Shum\u00ebfish \u00ebsht\u00eb rritur shpejt\u00ebsia e transferimit n\u00eb<br \/>\nbufet numpy t\u00eb matricave shum\u00ebdimensionale. Primitivat shum\u00ebdimensionale d\u00ebrgojn\u00eb kopje vet\u00ebm p\u00ebr lexim t\u00eb krijuara brenda JVM me vendosje t\u00eb vazhdueshme C.<\/p>\n<li class=\"l\"> T\u00eb gjitha komponentet e brendshme q\u00eb paraqiten jan\u00eb z\u00ebvend\u00ebsuar me implementime nga CPython, nd\u00ebrsa simbolet __javaclass__, __javavalue__ dhe __javaproxy__ jan\u00eb hequr.<br \/>\nT\u00eb gjitha llojet CPython, t\u00eb trash\u00ebguara nga llojet e klasave jpype, iu shtua nj\u00eb hap\u00ebsir\u00eb e dedikuar Java. T\u00eb gjitha tabelat private jan\u00eb transferuar n\u00eb CPython. Tani, llojet Java duhet t\u00eb trash\u00ebgojn\u00eb nga metaklasa JClass, e cila p\u00ebrdor hap\u00ebsirat e tipeve. Miqt\u00eb p\u00ebr klasat baz\u00eb Python nuk lejohen. Llojet Object, Proxy, Exception, Number dhe Array trash\u00ebgohen drejtp\u00ebrdrejt nga implementimet e brendshme CPython.<\/p>\n<li class=\"l\"> P\u00ebrmir\u00ebsimi i gjurmimit dhe trajtimit t\u00eb p\u00ebrjashtimeve.\n<li class=\"l\"> Pjes\u00ebt e arrave (Array slices) tani trajtohen si p\u00ebrfaq\u00ebsime q\u00eb mb\u00ebshtesin rikthimin te origjinali, si\u00e7 \u00ebsht\u00eb arr\u00eb numpy. P\u00ebr k\u00ebto pjes\u00eb, \u00ebsht\u00eb siguruar mb\u00ebshtetje p\u00ebr vendosjen dhe marrjen e vlerave me hap (slice(start, stop, step)).\n<li class=\"l\"> N\u00eb masiv\u00eb \u00ebsht\u00eb implementuar mb\u00ebshtetje p\u00ebr &#171;__reversed__&#187;.\n<li class=\"l\"> N\u00eb arrat Java \u00ebsht\u00eb siguruar mb\u00ebshtetje p\u00ebr API memoryview dhe \u00ebsht\u00eb hequr var\u00ebsia nga numpy p\u00ebr transferimin e p\u00ebrmbajtjes s\u00eb buferit.\n<li class=\"l\"> Numpy tani nuk \u00ebsht\u00eb var\u00ebsi (extra) dhe transferimi i memories n\u00eb numpy \u00ebsht\u00eb i mundur pa kompilim me mb\u00ebshtetje p\u00ebr numpy.\n<li class=\"l\"> JInterface \u00ebsht\u00eb formuar si nj\u00eb metaklas\u00eb. P\u00ebrdorni isinstance(cls, JInterface) p\u00ebr t\u00eb kontroluar p\u00ebr interfaca.\n<li class=\"l\"> N\u00eb importet p\u00ebrmes default-it jan\u00eb shtuar TLD-t\u00eb e anashkalura &#171;mil&#187;, &#171;net&#187; dhe &#171;edu&#187;.\n<li class=\"l\"> Mesazhet e gabimeve p\u00ebr UnsupportedClassVersion jan\u00eb p\u00ebrmir\u00ebsuar gjat\u00eb nisjes.\n<li class=\"l\">    java.util.Map tani do t\u00eb jap\u00eb KeyError n\u00ebse elementi nuk gjendet. Vlerat q\u00eb jan\u00eb null, do t\u00eb vazhdojn\u00eb t\u00eb kthejn\u00eb None si\u00e7 pritej. P\u00ebrdorni get() n\u00ebse \u00e7el\u00ebsat bosh duhet t\u00eb trajtohen si None.\n<li class=\"l\"> java.util.Collection \u00ebsht\u00eb hequr, pasi ato jan\u00eb ngat\u00ebrruar \u00e7udit\u00ebrisht midis remove(Object) dhe remove(int) n\u00eb List-a. P\u00ebrdorni metod\u00ebn Java remove() p\u00ebr t\u00eb acessuar sjelljen origjinale t\u00eb Java-s, por p\u00ebrkthimi i tipit rekomandohet fort p\u00ebr t\u00eb menaxhuar ngat\u00ebrrimin.\n<li class=\"l\"> java.lang.IndexOutOfBoundsException tani mund t\u00eb kapet p\u00ebrmes klas\u00ebs p\u00ebr p\u00ebrjashtime IndexError kur aksesohet elementet e java.util.List.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Burimi: <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-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - 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\/sq\/blog\/novosti-interneta\/reliz-jpype-0-7-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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\/sq\/blog\/novosti-interneta\/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\udd47L\u00ebshimi i JPype 0.7.2, bibliotek\u00ebs p\u00ebr qasje n\u00eb klasat Java nga Python | ProHoster","description":"Doli nj\u00eb version i shtres\u00ebs JPype.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/novosti-interneta\/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":"sq_AL","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\/sq\/blog\/novosti-interneta\/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\/sq\/wp-json\/wp\/v2\/posts\/72012","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=72012"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/72012\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=72012"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=72012"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=72012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}