Faisons une application de communication en LAN Partie 1 Nouvelle création de projet à l'aide de Maven et du point d'entrée Java

Eh bien, le développement a commencé comme ça.

Cette fois, une application de transmission / réception de texte utilisée dans le LAN.

Je voudrais dire design ... mais est-il correct d'utiliser simplement le cas d'utilisation cette fois?

La communication est une communication socket, et il existe de nombreux exemples. Ça va D'une certaine manière (positif)

Cette fois, le langage sera Java et la communication sera TCP / IP. J'utiliserai Eclipse Oxigen 4.7.3a comme environnement. Celui qui l'a laissé seul après l'avoir mis dans le PC. Le port de référence est ... eh bien, décidons en lançant les dés de manière appropriée.

Créer un nouveau projet Java

J'ai pensé, mais c'était la première fois que je développais des rayures pour les programmes Java. Eh bien, n'importe quelle langue a une habitude légèrement différente, et si vous savez quoi faire, cela fonctionnera.

Quand j'y ai pensé, j'ai immédiatement trouvé quelque chose à enquêter. D'une manière ou d'une autre, "lors de la création d'un programme Java, il est courant de créer un projet à l'aide de Maven". Eclipse est également inclus, vous. Maven, j'en ai entendu parler, n'est-ce pas?

C'est pourquoi j'ai enquêté rapidement

Qu'est-ce que Maven

Référence: Wikipedia -Maven

Maven semble être un outil de gestion de projet pour Java. J'ai entendu dire qu'il a certainement été nommé aux côtés de Red Mine en tant qu'outil de gestion de projet. Je ne savais pas que c'était le successeur d'Apache Ant. Je veux dire, Ant est juste l'image que j'ai utilisée pour la construction.

Apparemment, l'image n'est pas complètement différente, Outil de création, outil de gestion de bibliothèque, modèle de développement de projet Java, outil de test, etc. Cela ressemble à un outil de support de développement intégré rempli de diverses fonctions. (Spécialisé en Java)

Personnellement, je crains vraiment qu'il soit facile de travailler avec Jenkins. Je le chercherai plus tard.

Je comprends le contour, alors créez-en un nouveau ...

Maintenant que je le connais à peu près, vérifions-le à chaque fois. Tout d'abord, créez un nouveau projet à l'aide de Maven ...

Quand j'y ai pensé, j'ai décidé de choisir l'archétype. L'archtype de Maven ... Est-ce comme un modèle? Poursuivez l'enquête en réfléchissant.

Apparemment, l'idée elle-même n'est pas fausse. Hoho. Lequel devrais-je choisir cette fois? (Edo kid)

・ ・ ・

・ ・ ・

・ ・ ・ ・ ・ ・

cette? Je ne trouve pas d'explication sur l'architype en japonais.

Je l'ai donc vu dans Apache, le développeur de maven. Ce qui suit est une traduction japonaise qui sent l'humour. Pour ceux qui veulent se référer au texte, here (English)

Group ID Artifact ID La description
org.apache.maven.archtypes maven-archetype-archetype archetype Génère un exemple d'archétype
org.apache.maven.archtypes maven-archetype-j2ee-simple Générer un exemple d'archétype J2EE (entreprise) simplifié
org.apache.maven.archtypes maven-archetype-mojo Générer un archétype pour l'exemple de plug-in Maven
org.apache.maven.archtypes maven-archetype-plugin Générer un archétype pour le plug Maven
org.apache.maven.archtypes maven-archetype-plugin-site Générer un archétype pour le site du plug-in Maven
org.apache.maven.archtypes maven-archetype-portlet JSR-Générer un archétype pour l'exemple de portlet standard 268
org.apache.maven.archtypes maven-archetype-quickstart Générer un archétype pour l'exemple de projet Maven
org.apache.maven.archtypes maven-archetype-simple Générer un archétype de projet Maven simple
org.apache.maven.archtypes maven-archetype-site Prend en charge les formats tels que APT, XDoc, FML, i18n sur votre site(Multilingue)Je vais générer un archétype qui montre comment le faire
org.apache.maven.archtypes maven-archetype-site-simple Générer un archétype pour l'exemple de site Maven
org.apache.maven.archtypes maven-archetype-webapp Générer un archétype pour l'exemple Maven Web App

HM. Je pense qu'il y a beaucoup de choses pour le Web. Cela semble intéressant, donc j'y penserai plus tard, cette fois j'ai choisi maven-arche type-simple Quand j'y ai pensé, ce n'était pas initialement enregistré dans Eclipse. Il n'y a pas d'autre choix que de sélectionner maven-quick start. C'est une application qui s'exécute sur une machine. Le serveur est dans la maison, vous pouvez donc y penser.

Une fois fait, cette fois

Alors je l'ai fait Soudain, il y a une erreur.

2018y06m11d_232932824.jpg Project configuration is not up-to-date with pom.xml. Select: Maven->Update Project... from the project context menu or use Quick Fix.

Dépannage de l'erreur Maven: la configuration du projet n'est pas à jour

Quand je l'ai recherché, il a dit: "Il sortira lorsque les changements de paramètres, etc. ne seront pas reflétés." Où voulez-vous dire lorsque vous dites "Sélectionnez: Maven-> Mettre à jour le projet ... dans le menu contextuel du projet ou utilisez Quick Fix".

La configuration de l'ensemble du projet est-elle la racine du projet? Lorsque j'ouvre le menu contextuel, je vois un élément comme celui-là. Sélectionnez [Menu contextuel de la racine du projet (clic droit)] - [Maven] - [Mettre à jour le projet] pour afficher cet écran. (Puisque la touche de raccourci a été définie sur Alt + F5, impatient est GO avec la touche de raccourci!)

2018y06m11d_233748877.jpg

Si vous appuyez sur OK ici, la mise à jour a réussi.

L'avertissement vient à \ Connichiwa / sans le temps de respirer. D'une manière ou d'une autre, le chemin de construction ne passe pas.

2018y06m11d_233946076.jpg Build path specifies execution environment J2SE-1.5. There are no JREs installed in the workspace that are strictly compatible with this environment.

Dépannage de l'avertissement Maven: le chemin de construction spécifie l'environnement d'exécution

Apparemment, le problème est que jre1.5 est spécifié. Le paramètre par défaut pour Maven est jre1.5. Au fait, j'ai utilisé jre1.8

[Menu contextuel de la bibliothèque système JRE (clic droit)] - [Propriétés] - Paramètres de la [bibliothèque système] J'ai pu supprimer l'avertissement en toute sécurité en définissant "Workspace default JRE (jre1.8.0_171)".

2018y06m11d_235447310.jpg

Bien que j'aie pu supprimer l'avertissement, dans l'état actuel, l'avertissement s'affiche à nouveau lorsque je peux écrire une mise à jour de projet. C'est un peu désagréable, j'ai donc décidé d'étudier d'autres méthodes.

Le fait est que vous devez écrire la version Java à utiliser dans le fichier de configuration: pom.xml.

Après enquête, il semble que les deux descriptions suivantes devraient être ajoutées à l'élément de propriétés de pom.xml avec la version JRE. Officiel ici

Element La description
maven.compiler.source La valeur définie dans l'argument source du compilateur Java. Type de chaîne
maven.compiler.target La valeur définie dans l'argument cible du compilateur Java. Type de chaîne

Probablement l'équivalent des options -source et -target de javac. (Je pensais que javac était spécifié dans le compilerId officiel.) À propos, bien qu'il soit écrit dans la valeur officielle de l'élément, la valeur par défaut est 1,5.

C'est pourquoi la procédure de changement

Comment changer d'Eclipse OverView

  1. Double-cliquez sur pom.xml dans l'Explorateur de projets pour afficher OverView. 2018y06m12d_012406231.jpg

  2. Cliquez sur [Propriétés] - [Créer] pour appeler la boîte de dialogue de saisie. 2018y06m12d_012758918.jpg

  3. Définissez le nom de l'élément (correspondant à maven.compiler.source) dans le champ Nom et la valeur dans le champ Valeur.

  4. Confirmez qu'il a été reflété. 2018y06m12d_015329080.jpg

Au fait, avec Eclipse Oxigen 4.7.3a que j'utilise, il a été fait à la main sans aucune fonction d'auto-complétion.

Comment modifier directement le fichier xml

  1. Double-cliquez sur pom.xml dans l'Explorateur de projets pour afficher OverView. 2018y06m12d_012406231.jpg

  2. Cliquez sur l'onglet [pom.xml] en bas de la fenêtre pour changer d'affichage. 2018y06m12d_010813521.jpg

  3. Recherchez le bloc de propriétés et ajoutez les éléments maven.compiler.source et maven.compiler.target. 2018y06m12d_015923512.jpg

Pour être honnête, je pense qu'il est normal de réécrire directement dans l'état actuel.

Bien que la construction de l'environnement soit terminée, quel est le point d'entrée?

Il ne vous reste plus qu'à y arriver! ・ ・ ・ Mais j'étais curieux, alors j'ai fait un peu de recherche. Est-il acceptable d'utiliser main () comme point d'entrée pour les applications Java? En dehors de main (), comment configurer une classe?

J'ai pensé, alors j'ai fait une enquête supplémentaire.

Si vous le recherchez, il ne fait aucun doute que le point d'entrée est main (). Cependant, il n'y a pas de description sur la façon de spécifier la classe.

C'est principalement dans les propriétés du projet! Affichez les propriétés de la racine du projet avec Atari. Vous pouvez ouvrir l'écran de configuration de l'application en appuyant sur [Run / Debug Setting] - [Edit].

2018y06m12d_022410249.jpg Lorsque vous appuyez sur le bouton [Modifier] sur le côté droit de l'écran ...

2018y06m12d_022517590.jpg Passez à l'écran de réglage détaillé.

Ainsi, il semble que la classe Main spécifie ici la classe de maintien du point d'entrée. Alors créons une autre méthode principale et expérimentons.

2018y06m12d_023103090.jpg

Pour App, Ppa Puisque main () qui existait dans l'application était Hello World, j'ai changé le message. Adieu est solitaire alors faites une pause.

Alors, changez le réglage du sujet et exécutez

J'ai pu changer le point d'entrée en toute sécurité. 2018y06m12d_023344212.jpg

À l'origine, je ne m'attendais pas à écrire plusieurs méthodes principales Mis à part les paramètres Exécuter / Déboguer et Modifier, je suis curieux qu'il y ait un bouton Nouveau et un bouton Dupliquer. Si vous y réfléchissez, il semble que vous puissiez enregistrer plusieurs conditions de démarrage ici, je vais donc l'omettre.

Où est la substance du décor? J'ai beaucoup cherché, mais je n'ai pas pu le trouver. Quand j'ai pensé, il y avait une description dans ici. Apparemment, il existe un manifeste similaire à Android.

J'étais vraiment curieux, alors j'ai continué l'enquête. META-INF / MANIFEST.MF existe dans le fichier jar qui résume les fichiers .class compilés, et il doit y être défini dans l'élément Main-Class. Référence: Introduction au Java de Tohoho, * Élément pour créer un fichier jar *


Nous prévoyons de démarrer la production à partir de demain. Le temps de travail d'aujourd'hui est de 05:15:44.

Recommended Posts

Faisons une application de communication en LAN Partie 1 Nouvelle création de projet à l'aide de Maven et du point d'entrée Java
Faisons une application de communication dans LAN Partie 2 Afficher une fenêtre utilisant JavaFX / Attendre la réception du socket
Faisons une application de communication dans LAN Partie 4 Définir les informations dans le contrôle JavaFX / Appeler l'écran JavaFX à partir du thread
Installez java et maven sur un nouveau mac en utilisant brew
Faisons une application de calcul avec Java ~ Afficher la fenêtre de l'application
Communication socket avec un navigateur Web utilisant Java et JavaScript ②
Communication socket avec un navigateur Web utilisant Java et JavaScript ①
Faire un diamant en utilisant Java
Créons une application Web de gestion de livres avec Spring Boot part1
Créons une application Web de gestion de livres avec Spring Boot part3
Créons une application Web de gestion de livres avec Spring Boot part2
Créer un projet Java à l'aide d'Eclipse
Comment faire un projet Maven
Création d'un projet (et d'un référentiel GitHub) à l'aide de Java et Gradle avec IntelliJ IDEA
Un débutant Java a essayé de créer une application Web simple à l'aide de Spring Boot
J'ai essayé de créer une application de conversation en Java à l'aide de l'IA «A3RT»
Faisons une application de communication in-LAN Partie 3 Créer un gestionnaire d'événements JavaFX / Créer une fonction de transmission / réception de message par communication socket
Faisons une application TODO avec Java 2 Je veux créer un modèle avec Spring Initializr et créer Hello world
[Java] Créons une bibliothèque d'accès à la base de données!
Faisons une application de calculatrice avec Java ~ Créez une zone d'affichage dans la fenêtre