{"id":233,"date":"2015-05-11T08:22:58","date_gmt":"2015-05-11T07:22:58","guid":{"rendered":"http:\/\/localhost:8080\/php\/blog\/?p=233"},"modified":"2015-06-03T12:53:14","modified_gmt":"2015-06-03T10:53:14","slug":"java-programmierung","status":"publish","type":"post","link":"https:\/\/lukas.kurth.rocks\/blog\/2015\/05\/11\/java-programmierung\/","title":{"rendered":"Java-Programmierung"},"content":{"rendered":"<p>Guten Morgen meine Freunde,<\/p>\n<p style=\"text-align: justify;\">durch mein Studium bin ich nun in den Kontakt mit Java gekommen und es hat mich wohl infiziert. Irgendwie mag ich die Sprache. Und mit Hilfe von <a href=\"https:\/\/www.jetbrains.com\/idea\/\" target=\"_blank\">JetBrains IntelliJ IDEA<\/a> habe ich auch Spa\u00df am Programmieren selbst, auch wenn ich mir manchmal einen Kollegen w\u00fcnschte, der sich das programmierte einmal anschauen k\u00f6nnte.<\/p>\n<p style=\"text-align: justify;\">Momentan programmiere ich an einer Art MoveCopy \/ FTP &#8211; Tool herum. Dateien sollen in der Regel von A nach B kopiert werden. Als solches erst einmal kein Problem. Allerdings gibt es hierbei ein paar kleine Schwierigkeiten:<\/p>\n<ul>\n<li style=\"text-align: justify;\">eine while-Schleife bringt es nicht wenn dauernd Daten kopiert werden sollen\n<ul>\n<li style=\"text-align: justify;\">Wie kann ich denn ohne Schleife erstellte Daten kopieren<\/li>\n<\/ul>\n<\/li>\n<li style=\"text-align: justify;\">(Was ist mit mehreren Zielen?)<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Daf\u00fcr gibt es aber auch L\u00f6sungen:<\/p>\n<p style=\"text-align: justify;\"><!--more--><\/p>\n<ul>\n<li style=\"text-align: justify;\">Mit einem TimerTask k\u00f6nnen bestimmte Threads zu angegebenen Zeiten ausgef\u00fchrt werden.\n<ul>\n<li style=\"text-align: justify;\">Und mit einem Dateisystem-Watcher lassen sich Pfade \u00fcberwachen um Dateien die erstellt werden zu verschieben. (WatchService und WatchKey)<\/li>\n<\/ul>\n<\/li>\n<li style=\"text-align: justify;\">Mehrere Ziele sind kein Problem, diese k\u00f6nnen durch eine Schleife laufen. Wenn nur ein Wert darin vorhanden ist l\u00e4uft diese auch nur einmal durch.<\/li>\n<\/ul>\n<div id=\"attachment_238\" style=\"width: 287px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-238\" class=\"wp-image-238 size-medium\" src=\"https:\/\/lukas.kurth.rocks\/blog\/wp-content\/uploads\/MeineToolbox.png\" alt=\"\" width=\"277\" height=\"300\" \/><p id=\"caption-attachment-238\" class=\"wp-caption-text\">Meine Toolbox UML<\/p><\/div>\n<p style=\"text-align: justify;\">Auch wenn sich das Programm vielleicht erst einmal klein anh\u00f6rt, ist es schon eine Menge Arbeit. Mein UML-Diagramm kann ich mir kaum anschauen. Aber bis das Programm mal zu 99,99% l\u00e4uft und das macht was es soll, ist es noch ein weiter weg. Ich habe gerade erst wieder einen Fehler gefunden: Wenn viele Dateien in einem Ordner erstellt werden und der Watcher nach der ersten Datei die Threads startet kann es sein, dass ein paar Dateien \u00fcbersprungen werden. Diese Vorgehensweise klappt so also nur bedingt.<\/p>\n<p style=\"text-align: justify;\">Es g\u00e4be nun also ein paar L\u00f6sungsm\u00f6glichkeiten.<\/p>\n<p style=\"text-align: justify;\">A: Ich kombiniere den Watcher mit einem DirectoryListing. Wenn der Watcher sich meldet wird der Ordner durchsucht und alle gefundenen Daten (eventuell auch nach Extension) werden zum Ziel kopiert \/ verschoben.<\/p>\n<p style=\"text-align: justify;\">B: Ich lasse den Watcher-Task, andere Tasks erstellen, damit der Watcher sich direkt wieder auf die Lauer legen kann.<\/p>\n<p style=\"text-align: justify;\">Eine schwierige Entscheidung, die ich leider selbst treffen muss. Wie gesagt, schade, dass ich da keinen Kollegen habe der mir unter die Arme greifen k\u00f6nnte. Vielleicht finde ich aber ja noch andere Optionen. Mal sehen.<\/p>\n<p style=\"text-align: justify;\">Ich programmiere dann mal weiter und suche meine Wege.<\/p>\n<p style=\"text-align: justify;\">Man schreibt sich<\/p>\n<p>PS.: Entschuldigt die sp\u00e4ter Meldung, hatte einiges um die Ohren \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Guten Morgen meine Freunde, durch mein Studium bin ich nun in den Kontakt mit Java gekommen und es hat mich wohl infiziert. Irgendwie mag ich die Sprache. Und mit Hilfe von JetBrains IntelliJ IDEA habe ich auch Spa\u00df am Programmieren selbst, auch wenn ich mir manchmal einen Kollegen w\u00fcnschte, der sich das programmierte einmal anschauen [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,17,9],"tags":[62,63,81,108,116,117,138,159,180,209,210,212,214,216,227,228],"class_list":["post-233","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-java","category-programmierung","tag-copy","tag-dateisystem","tag-ftp","tag-idea","tag-java","tag-jetbrains","tag-move","tag-programmierung","tag-schleife","tag-timer","tag-timertask","tag-toolbox","tag-uebersicht","tag-uml","tag-watcher","tag-watcherservice"],"_links":{"self":[{"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/posts\/233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/comments?post=233"}],"version-history":[{"count":1,"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/posts\/233\/revisions"}],"predecessor-version":[{"id":420,"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/posts\/233\/revisions\/420"}],"wp:attachment":[{"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/media?parent=233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/categories?post=233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/tags?post=233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}