{"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\/da\/blog\/news\/obnovlenie-jpype-1-0-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","title":{"rendered":"Opdatering af JPype 1.0.2, et bibliotek til adgang til Java-klasser fra Python","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\">Tilg\u00e6ngelig<\/a><\/noindex> ny udgave af lag <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/\">JPype 1.0.2<\/a><\/noindex>, som muligg\u00f8r fuld adgang for Python-applikationer til klassebiblioteker skrevet i Java. Med JPype kan man fra Python bruge Java-specifikke biblioteker og skabe hybride applikationer, der kombinerer kode skrevet i Java og Python. I mods\u00e6tning til Jython opn\u00e5s integration med Java ikke ved at skabe en variant af Python til JVM, men gennem interaktion p\u00e5 niveauet for begge virtuelle maskiner ved hj\u00e6lp af delt hukommelse. Den foresl\u00e5ede tilgang muligg\u00f8r ikke kun god ydeevne, men giver ogs\u00e5 adgang til alle CPython- og Java-biblioteker. Projektkoden <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/\">distribueres<\/a><\/noindex> er under Apache 2.0-licensen.<\/p>\n<p>Vigtige \u00e6ndringer:<\/p>\n<ul>\n<li class=\"l\"> Metodeopkald har f\u00e5et en cache, der g\u00f8r det muligt at undg\u00e5 at l\u00f8se overbelastninger, hvilket markant reducerer indflydelsen p\u00e5 ydeevnen ved metodeoprettelse, is\u00e6r hvis den samme overbelastning kaldes mange gange, som under udf\u00f8relse af sl\u00f8jfer.\n<li class=\"l\"> Overf\u00f8re lister, tupler og buffere til Java primitive arrays er blevet accelereret fra 4 til 100 gange, afh\u00e6ngigt af datatypen. Konverteringen bruger optimeret bufferbehandling i hukommelsen, i stedet for Sequence API. N\u00e5r Python-bufferen m\u00f8des, kontrolleres kun det f\u00f8rste element for konvertering, da datatr\u00e6kkene er homogene.\n<li class=\"l\"> H\u00e5ndteringen af shutdown-operationer (implementeret allerede i JPype 1.0.0, men blev overset under forberedelsen af \u00e6ndringslisten). JPype kalder nu JVM's shutdown-procedure, som fors\u00f8ger at afslutte i 'gracefully' tilstand. Dette medf\u00f8rer flere \u00e6ndringer i adf\u00e6rden. Ikke-baggrundstr\u00e5de (proxy-opkald) kan nu holde JVM \u00e5ben, indtil de er afsluttet. Proxy-opkald vil h\u00e5ndtere shutdown, indtil opkaldet er fuldf\u00f8rt, men vil modtage en afbrydelsesmeddelelse. Filer lukkes nu korrekt og data skrives til disk (flush), hvis tr\u00e5dene h\u00e5ndterer undtagelsen korrekt. Rydningshooks og finalizers udf\u00f8res. Ved tr\u00e5doprettelse kaldes AtExit-hooks. Gennem daemonen er der implementeret automatisk tilslutning af tr\u00e5de ved brug af JVM fra Python. Fejlkoden, der ikke kan h\u00e5ndtere tr\u00e5dudrensningen korrekt, kan sandsynligvis fryse ved udf\u00f8relsen af shutdown. Yderligere dokumentation findes i brugervejledningen.\n<li class=\"l\"> Wrap for Throwable fik en wrap for Object i stedet for det forventede resultat, hvilket f\u00f8rte til m\u00e6rkelige konverteringer fra Python-klasser.\n<li class=\"l\"> Retter tastefejl i importsystemet, som resulterer i fejlmeddelelsen \u2019jname\u2019 not found.\n<li class=\"l\"> Sikret korrekt fremme af '^C' i KeyboardInterrupt.\n<li class=\"l\"> Problemet med tegn fra Python 3.5.3 er blevet rettet. PySlice_Unpack blev introduceret i den efterf\u00f8lgende patch-release (3.5.4) og skulle ikke have v\u00e6ret brugt.\n<li class=\"l\"> Fixet en fejl med numpy.linalg.inv, der f\u00f8rte til nedbrud. Problemet blev sporet til tr\u00e5dinteraktion mellem JVM og nogle varianter af numpy. Det foresl\u00e5ede l\u00f8sningen er at kalde numpy.linalg.inv inden starten af JVM.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Kilde: <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.3 - 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\/da\/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.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\udd47Opdatering af JPype 1.0.2, et bibliotek til adgang til Java-klasser fra Python | ProHoster","description":"En ny udgave af laget er tilg\u00e6ngelig","canonical_url":"https:\/\/prohoster.info\/da\/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":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/90484","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=90484"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/90484\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=90484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=90484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=90484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}