{"id":204,"date":"2024-02-12T23:49:46","date_gmt":"2024-02-12T22:49:46","guid":{"rendered":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=204"},"modified":"2024-02-19T23:52:28","modified_gmt":"2024-02-19T22:52:28","slug":"das-erstellen-und-ausfuehren-von-scripts-mit-jbang","status":"publish","type":"post","link":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=204","title":{"rendered":"Das Erstellen und Ausf\u00fchren von Scripts mit jBang"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Einf\u00fchrung<\/h2>\n\n\n\n<p>Die Welt der Softwareentwicklung entwickelt sich st\u00e4ndig weiter, und neue Tools und Frameworks erleichtern Entwicklern die Arbeit. In diesem Artikel werden wir uns mit jBang befassen, einem innovativen Werkzeug, das das Erstellen und Ausf\u00fchren von Scripts in Java erleichtert. jBang erm\u00f6glicht es Entwicklern, Java-Code in einer einfachen und flexiblen Umgebung zu schreiben und auszuf\u00fchren, ohne ein komplexes Projekt erstellen zu m\u00fcssen. In diesem Artikel werden wir uns mit den Grundlagen von jBang vertraut machen, den Installationsprozess durchgehen und einige Beispiele f\u00fcr die Verwendung von jBang-Scripts geben.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Was ist jBang?<\/h2>\n\n\n\n<p>jBang ist ein Open-Source-Tool, das von den Entwicklern Edvin Syse und Max Andersen erstellt wurde. Es erm\u00f6glicht das Schreiben von Java-Scripts, die unabh\u00e4ngig von komplexen Projekten ausgef\u00fchrt werden k\u00f6nnen. Im Wesentlichen bietet jBang eine einfache und schnelle M\u00f6glichkeit, Java-Code zu schreiben und auszuf\u00fchren, \u00e4hnlich wie es bei Skriptsprachen wie Python oder JavaScript der Fall ist. Die Idee ist, dass Entwickler Java-Code ohne den Overhead von Projektkonfigurationen und Build-Tools schreiben k\u00f6nnen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Installation von jBang<\/h2>\n\n\n\n<p>Bevor wir uns in die Welt von jBang st\u00fcrzen k\u00f6nnen, m\u00fcssen wir es zuerst installieren. Die Installation ist einfach und unkompliziert. Hier sind die Schritte:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Java-Installation:<\/strong> Stellen Sie sicher, dass Java auf Ihrem System installiert ist. jBang ben\u00f6tigt eine Java-Laufzeitumgebung (JRE) oder eine Java-Entwicklungsumgebung (JDK) in Version 8 oder h\u00f6her.<\/li>\n\n\n\n<li><strong>jBang-Installation:<\/strong> \u00d6ffnen Sie ein Terminal oder eine Befehlszeile und geben Sie den folgenden Befehl ein, um jBang zu installieren:<\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">   curl -sL https:<span class=\"hljs-comment\">\/\/sh.jbang.dev | bash<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Dieser Befehl l\u00e4dt das jBang-Installations-Skript herunter und f\u00fchrt es aus.<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li><strong>\u00dcberpr\u00fcfung der Installation:<\/strong> \u00dcberpr\u00fcfen Sie, ob jBang erfolgreich installiert wurde, indem Sie den Befehl <code>jbang --version<\/code> ausf\u00fchren. Sie sollten die installierte Version von jBang angezeigt bekommen.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Erstellen eines einfachen jBang-Scripts<\/h2>\n\n\n\n<p>Nach erfolgreicher Installation k\u00f6nnen wir ein einfaches jBang-Script erstellen. \u00d6ffnen Sie dazu Ihren bevorzugten Texteditor und erstellen Sie eine Datei mit der Erweiterung <code>.java<\/code>. Zum Beispiel:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-comment\">\/\/ HelloWorld.java<\/span>\npublic <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">HelloWorld<\/span> <\/span>{\n    public <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> main(<span class=\"hljs-built_in\">String<\/span>&#91;] args) {\n        System.out.println(<span class=\"hljs-string\">\"Hello, jBang!\"<\/span>);\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Dieses einfache Java-Programm gibt die Nachricht &#8222;Hello, jBang!&#8220; aus. Um es mit jBang auszuf\u00fchren, speichern Sie die Datei und f\u00fchren Sie den folgenden Befehl aus:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">jbang<\/span> <span class=\"hljs-selector-tag\">HelloWorld<\/span><span class=\"hljs-selector-class\">.java<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>jBang kompiliert und f\u00fchrt das Programm aus. Beachten Sie, dass Sie sich nicht um die Erstellung von Klassen oder das Setzen des Klassenpfads k\u00fcmmern m\u00fcssen &#8211; jBang \u00fcbernimmt das f\u00fcr Sie.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Verwendung von Dependencies in jBang-Scripts<\/h2>\n\n\n\n<p>Ein leistungsstarker Aspekt von jBang ist die F\u00e4higkeit, externe Abh\u00e4ngigkeiten in Ihren Scripts zu verwalten. Dies wird durch sogenannte &#8222;Catalogs&#8220; erm\u00f6glicht. Ein Catalog ist eine Sammlung von vordefinierten jBang-Scripts, die als Abh\u00e4ngigkeiten in Ihrem eigenen Script verwendet werden k\u00f6nnen.<\/p>\n\n\n\n<p>Hier ist ein Beispiel, wie Sie eine externe Abh\u00e4ngigkeit in Ihrem jBang-Script verwenden k\u00f6nnen:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\">\/\/ UsingLibrary.java<\/span>\n<span class=\"hljs-comment\">\/\/DEPS info.picocli:picocli:4.6.1<\/span>\n\nimport picocli.CommandLine;\n\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">UsingLibrary<\/span> <span class=\"hljs-keyword\">implements<\/span> <span class=\"hljs-title\">Runnable<\/span> <\/span>{\n\n    @CommandLine.Option(names = {<span class=\"hljs-string\">\"-n\"<\/span>, <span class=\"hljs-string\">\"--name\"<\/span>}, description = <span class=\"hljs-string\">\"Your name\"<\/span>)\n    <span class=\"hljs-keyword\">private<\/span> String name;\n\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> void main(String... args) {\n        CommandLine.run(<span class=\"hljs-keyword\">new<\/span> UsingLibrary(), args);\n    }\n\n    @Override\n    <span class=\"hljs-keyword\">public<\/span> void run() {\n        System.out.println(<span class=\"hljs-string\">\"Hello, \"<\/span> + (name != <span class=\"hljs-keyword\">null<\/span> ? name : <span class=\"hljs-string\">\"jBang!\"<\/span>));\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In diesem Beispiel wird das <a href=\"https:\/\/picocli.info\/\">Picocli<\/a> Framework als Abh\u00e4ngigkeit verwendet. Das <code>\/\/DEPS<\/code> Kommentar am Anfang des Scripts gibt jBang an, welche Bibliothek heruntergeladen und in das Script eingef\u00fcgt werden soll. Dann kann die Bibliothek im Code verwendet werden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Verwendung von jBang-Scripts als Utility-Tools<\/h2>\n\n\n\n<p>Ein interessanter Anwendungsfall von jBang ist die Verwendung von Scripts als Utility-Tools. Angenommen, Sie haben eine Aufgabe, die Sie h\u00e4ufig ausf\u00fchren m\u00fcssen, wie zum Beispiel das Herunterladen von Dateien aus dem Internet oder das Konvertieren von Datenformaten. Sie k\u00f6nnen ein jBang-Script erstellen, um diese Aufgabe zu automatisieren und es als ein praktisches Dienstprogramm verwenden.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-comment\">\/\/ DownloadFile.java<\/span>\n<span class=\"hljs-comment\">\/\/DEPS com.google.guava:guava:30.1-jre<\/span>\n\n<span class=\"hljs-keyword\">import<\/span> com.google.common.io.Resources;\n\n<span class=\"hljs-keyword\">import<\/span> java.io.IOException;\n<span class=\"hljs-keyword\">import<\/span> java.net.URL;\n<span class=\"hljs-keyword\">import<\/span> java.nio.file.Files;\n<span class=\"hljs-keyword\">import<\/span> java.nio.file.Path;\n\npublic <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">DownloadFile<\/span> <\/span>{\n\n    public <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> main(<span class=\"hljs-built_in\">String<\/span>&#91;] args) {\n        <span class=\"hljs-keyword\">if<\/span> (args.length != <span class=\"hljs-number\">2<\/span>) {\n            System.out.println(<span class=\"hljs-string\">\"Usage: jbang DownloadFile &lt;url&gt; &lt;destination&gt;\"<\/span>);\n            System.exit(<span class=\"hljs-number\">1<\/span>);\n        }\n\n        <span class=\"hljs-built_in\">String<\/span> url = args&#91;<span class=\"hljs-number\">0<\/span>];\n        <span class=\"hljs-built_in\">String<\/span> destination = args&#91;<span class=\"hljs-number\">1<\/span>];\n\n        <span class=\"hljs-keyword\">try<\/span> {\n            downloadFile(url, destination);\n            System.out.println(<span class=\"hljs-string\">\"Download successful!\"<\/span>);\n        } <span class=\"hljs-keyword\">catch<\/span> (IOException e) {\n            System.err.println(<span class=\"hljs-string\">\"Error downloading file: \"<\/span> + e.getMessage());\n        }\n    }\n\n    private <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> downloadFile(<span class=\"hljs-built_in\">String<\/span> url, <span class=\"hljs-built_in\">String<\/span> destination) throws IOException {\n        URL fileUrl = <span class=\"hljs-keyword\">new<\/span> URL(url);\n        byte&#91;] fileContents = Resources.toByteArray(fileUrl);\n        Path destinationPath = Path.of(destination);\n        Files.write(destinationPath, fileContents);\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In diesem Beispiel wird die Guava-Bibliothek verwendet, um das Herunterladen von Dateien zu erleichtern. Das <code>\/\/DEPS<\/code> Kommentar sorgt daf\u00fcr, dass die Guava-Bibliothek automatisch heruntergeladen und im Script verwendet wird.<\/p>\n\n\n\n<p>Um dieses Script zu verwenden, f\u00fchren Sie den folgenden Befehl aus:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">jbang DownloadFile.java <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">URL<\/span>&gt;<\/span> <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">ZIELDATEI<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Ersetzen Sie <code>&lt;URL&gt;<\/code> durch die URL der zu ladenden Datei und <code>&lt;ZIELDATEI&gt;<\/code> durch den gew\u00fcnschten Speicherort.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n\n\n<p>jBang bietet eine einfache und flexible M\u00f6glichkeit, Java-Code in Form von Skripten zu schreiben und auszuf\u00fchren. Mit der F\u00e4higkeit, externe Abh\u00e4ngigkeiten zu verwalten und Scripts als Utility-Tools zu verwenden, er\u00f6ffnet jBang neue M\u00f6glichkeiten f\u00fcr Entwickler. Die Installation ist unkompliziert, und die Integration von Bibliotheken erfolgt nahtlos. Wenn Sie nach einer effizienten und unkomplizierten M\u00f6glichkeit suchen, Java-Scripts zu erstellen und auszuf\u00fchren, k\u00f6nnte jBang die L\u00f6sung sein, die Sie suchen. Experimentieren Sie mit verschiedenen Anwendungen und entdecken Sie, wie jBang Ihre Entwicklungsarbeit vereinfachen kann.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Einf\u00fchrung Die Welt der Softwareentwicklung entwickelt sich st\u00e4ndig weiter, und neue Tools und Frameworks erleichtern Entwicklern die Arbeit. In diesem Artikel werden wir uns mit jBang befassen, einem innovativen Werkzeug, das das Erstellen und Ausf\u00fchren von Scripts in Java erleichtert. jBang erm\u00f6glicht es Entwicklern, Java-Code in einer einfachen und flexiblen Umgebung zu schreiben und auszuf\u00fchren, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-204","post","type-post","status-publish","format-standard","hentry","category-plain_java"],"_links":{"self":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/204","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=204"}],"version-history":[{"count":1,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/204\/revisions"}],"predecessor-version":[{"id":205,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/204\/revisions\/205"}],"wp:attachment":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=204"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=204"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}