{"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\/news\/reliz-jpype-0-7-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","title":{"rendered":"Rilansimi i JPype 0.7.2, bibliotek\u00ebs p\u00ebr qasje n\u00eb klasat 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 disponuesh\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>, e cila mund\u00ebson qasje t\u00eb plot\u00eb t\u00eb aplikacioneve Python n\u00eb bibliotekat e klasave n\u00eb gjuh\u00ebn Java. Me ndihm\u00ebn e JPype, nga Python mund t\u00eb p\u00ebrdoren biblioteka specifike p\u00ebr Java, duke krijuar aplikacione hibride q\u00eb kombinojn\u00eb kodin n\u00eb Java dhe Python. Ndryshe nga Jython, integimi 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 makinerive virtuale, duke p\u00ebrdorur memorie t\u00eb ndar\u00eb. Qasja e propozuar lejon jo vet\u00ebm arritjen e performanc\u00ebs s\u00eb lart\u00eb, por gjithashtu ofron qasje n\u00eb t\u00eb gjitha bibliotekat CPython dhe Java. Kodi i projektit <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/\">shp\u00ebrndahet<\/a><\/noindex> n\u00ebn licenc\u00ebn Apache 2.0.<\/p>\n<p>Ndryshimet kryesore:<\/p>\n<ul>\n<li class=\"l\"> Ishujt e hedhura n\u00eb kodin C++ dhe Java tani ofrojn\u00eb nj\u00eb stek p\u00ebrjashtimesh kur ndodh nj\u00eb p\u00ebrjashtim n\u00eb kodin Python. Pra, p\u00ebr t\u00eb marr\u00eb informacionin mbi stek-in e p\u00ebrjashtimeve, nuk \u00ebsht\u00eb m\u00eb e nevojshme t\u00eb th\u00ebrrisni stacktrace().\n<li class=\"l\"> Shpejt\u00ebsia e kthimit \u00ebsht\u00eb rritur tre her\u00eb gjat\u00eb thirrjeve.\n<li class=\"l\"> Shpejt\u00ebsia e transferimit \u00ebsht\u00eb rritur ndjesh\u00ebm (n\u00eb rend t\u00eb magnitudave) n\u00eb<br \/>\nbuffers e shum\u00ebdimensionaleve numpy. Primitive shum\u00ebdimensionale transferojn\u00eb kopje vet\u00ebm p\u00ebr t\u00eb lexuar, t\u00eb krijuara brenda JVM me nj\u00eb shtrirje t\u00eb vazhdueshme C.<\/p>\n<li class=\"l\"> T\u00eb gjitha komponentet e brendshme t\u00eb ekspozuara jan\u00eb z\u00ebvend\u00ebsuar me realizime nga CPython, dhe simbolet __javaclass__, __javavalue__ dhe __javaproxy__<br \/>\njan\u00eb hequr. T\u00eb gjitha llojet CPython, t\u00eb trash\u00ebguara nga llojet e klas\u00ebs jpype, jan\u00eb shtuar me nj\u00eb slot t\u00eb dedikuar Java. T\u00eb gjitha tabelat private jan\u00eb transferuar n\u00eb CPython. T\u00eb gjitha llojet Java tani duhet t\u00eb trash\u00ebgojn\u00eb nga metaklasa JClass, e cila p\u00ebrdor slote t\u00eb llojeve. M\u00ebngesat p\u00ebr klasat baz\u00eb Python nuk lejohet. Llojet Object, Proxy, Exception, Number dhe Array trash\u00ebgohen drejtp\u00ebrdrejt nga realizimet e brendshme CPython.<\/p>\n<li class=\"l\"> \u00cbsht\u00eb p\u00ebrmir\u00ebsuar gjurmimi dhe trajtimi i p\u00ebrjashtimeve.\n<li class=\"l\"> Shtresat e array-ve tani p\u00ebrpunohen si pamje q\u00eb mb\u00ebshtesin shkrimin pas n\u00eb origjinal, si\u00e7 \u00ebsht\u00eb array numpy. P\u00ebr shtresat e array-ve \u00ebsht\u00eb siguruar mb\u00ebshtetje p\u00ebr vendosjen dhe marrjen e vler\u00ebs me hap (slice(start, stop, step)).\n<li class=\"l\"> N\u00eb masat \u00ebsht\u00eb implementuar mb\u00ebshtetje p\u00ebr \u00ab__reversed__\u00bb.\n<li class=\"l\"> N\u00eb array-t 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 buffer-it.\n<li class=\"l\"> Numpy tani nuk \u00ebsht\u00eb nj\u00eb var\u00ebsi (extra) dhe transferimi i memories n\u00eb numpy \u00ebsht\u00eb i disponuesh\u00ebm pa mb\u00ebshtetje p\u00ebr nd\u00ebrtimin me numpy.\n<li class=\"l\"> JInterface \u00ebsht\u00eb dizajnuar si nj\u00eb metaklas\u00eb. P\u00ebrdorni isinstance(cls, JInterface) p\u00ebr t\u00eb kontrolluar p\u00ebr interfesat.\n<li class=\"l\"> TLD-t\u00eb \u00abmil\u00bb, \u00abnet\u00bb dhe \u00abedu\u00bb jan\u00eb shtuar n\u00eb importet e paracaktuara.\n<li class=\"l\"> Gjat\u00eb nisjes, jan\u00eb p\u00ebrmir\u00ebsuar mesazhet e gabimeve p\u00ebr UnsupportedClassVersion.\n<li class=\"l\">    java.util.Map tani jep KeyError n\u00ebse elementi nuk gjendet. Vlerat q\u00eb jan\u00eb null, ende kthejn\u00eb None ashtu si\u00e7 pritej. P\u00ebrdorni get() n\u00ebse duhen trajtuar \u00e7el\u00ebsat bosh si None.\n<li class=\"l\"> java.util.Collection \u00ebsht\u00eb hequr, pasi \u00ebsht\u00eb ngat\u00ebrruar me mbivendosjen midis remove(Object) dhe remove(int) n\u00eb List. P\u00ebrdorni metod\u00ebn Java remove() p\u00ebr akses n\u00eb sjelljen origjinale Java, por konvertimi i tipit rekomandohet fort p\u00ebr t\u00eb menaxhuar mbivendosjen.\n<li class=\"l\"> java.lang.IndexOutOfBoundsException tani mund t\u00eb kapet me ndihm\u00ebn e klas\u00ebs p\u00ebr p\u00ebrjashtime IndexError kur aksesoni elementet 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-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - 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\/news\/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.2\" \/>\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\/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\udd47L\u00ebshimi i JPype 0.7.2, bibliotek\u00ebs p\u00ebr akses n\u00eb klasat Java nga Python | ProHoster","description":"L\u00ebshimi i shtres\u00ebs JPype \u00ebsht\u00eb n\u00eb dispozicion.","canonical_url":"https:\/\/prohoster.info\/sq\/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":"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\/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\/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}]}}