<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - Général Java</title>
		<link>https://www.developpez.net/forums/</link>
		<description><![CDATA[Forum d'entraide sur le langage Java, les problèmes d'installation, les API standards et tiers, la persistance des données, la manipulation de format (XML, JSON). Avant de poster -> Cours Java, FAQ Java et Sources Java.]]></description>
		<language>fr</language>
		<lastBuildDate>Sat, 30 May 2026 07:49:45 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.png</url>
			<title>Forum du club des développeurs et IT Pro - Général Java</title>
			<link>https://www.developpez.net/forums/</link>
		</image>
		<item>
			<title>Extraire un fichier JKS</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2183502&amp;goto=newpost</link>
			<pubDate>Thu, 30 Apr 2026 09:24:38 GMT</pubDate>
			<description>Bonjour, 
 
Je cherche à...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Je cherche à exstraire un fichier JKS de mon package java afin de permettre d'avoir un certificat SSL qui s'installae automatiquement lorsque l'on démarre la première fois l'application.<br />
Si, par la suite, je dois remplacer le certificat, je mettrais à jour le fichier extrait.<br />
<br />
Mon code actuel est:<br />
<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #0000ff;">int</span> bRead = <span style="color: #cc66cc;">-1</span>;
<span style="color: #0000ff;">while</span> <span class="br0">&#40;</span><span class="br0">&#40;</span>bRead = in.read<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> != <span style="color: #cc66cc;">-1</span><span class="br0">&#41;</span> 
out.write<span class="br0">&#40;</span>bRead<span class="br0">&#41;</span>;</pre></td></tr></table></code><hr />
</div>Mistral AI (via duckduckgo) me propose ceci (selon lui, c'est plus rapide)  : <br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br /></div></td><td valign="top"><pre style="margin: 0"> <span style="color: #0000ff;">byte</span><span class="br0">&#91;</span><span class="br0">&#93;</span> buffer = <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">byte</span><span class="br0">&#91;</span><span style="color: #cc66cc;">8192</span><span class="br0">&#93;</span>; <span style="color: #808080;">// 8KB buffer (optimal for most cases)</span>
    <span style="color: #0000ff;">int</span> bytesRead;
    <span style="color: #0000ff;">while</span> <span class="br0">&#40;</span><span class="br0">&#40;</span>bytesRead = in.read<span class="br0">&#40;</span>buffer<span class="br0">&#41;</span><span class="br0">&#41;</span> != <span style="color: #cc66cc;">-1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
        out.write<span class="br0">&#40;</span>buffer, <span style="color: #cc66cc;">0</span>, bytesRead<span class="br0">&#41;</span>; <span style="color: #808080;">// Write only the read bytes</span>
    <span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div>Note : le fichier jks sous windows faire 3ko.<br />
Bref, je suis perplexe.<br />
<br />
Est-ce que la propostion de l'IA est réellement efficiente ?</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f22/java/general-java/">Général Java</category>
			<dc:creator>cormnsa</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2183502/java/general-java/extraire-fichier-jks/</guid>
		</item>
		<item>
			<title>Reader et writer avif</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182904&amp;goto=newpost</link>
			<pubDate>Fri, 27 Mar 2026 18:24:56 GMT</pubDate>
			<description><![CDATA[Bonjour, 
 
Je n'arrive pas a...]]></description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Je n'arrive pas a trouver de reader et writer pour le format d'image avif en pure Java en gratuit.<br />
<br />
Une idée ?<br />
<br />
Merci d'avance.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f22/java/general-java/">Général Java</category>
			<dc:creator>genamiga</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182904/java/general-java/reader-writer-avif/</guid>
		</item>
		<item>
			<title>envoyer json via https</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182879&amp;goto=newpost</link>
			<pubDate>Thu, 26 Mar 2026 12:37:31 GMT</pubDate>
			<description><![CDATA[Bonjour, 
 
J'ai une simple...]]></description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
J'ai une simple question :roll:<br />
<br />
Le code ci-dessous envoi du json via http, mais j'aimerais bien que cela fonctionne en utilisant https afin que l'envoit se passe avec plus de sécurité.<br />
J'ai cherché, certains sites parle qu'il faut faire du code pour traiter le certificat et d'autres semble m'indiquer qu'il suffit de mettre l'url de http --&gt; https.<br />
<br />
Donc, je ne sais plus quoi faire !<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">int</span> sendJSON<span class="br0">&#40;</span>String task, JSONObject jo<span class="br0">&#41;</span> <span style="color: #0000ff;">throws</span> IOException
		<span class="br0">&#123;</span>
		<span style="color: #0000ff;">int</span> status = <span style="color: #cc66cc;">0</span>;
&nbsp;
		HttpEntity stringEntity = <span style="color: #0000ff;">new</span> StringEntity<span class="br0">&#40;</span>jo.toString<span class="br0">&#40;</span><span class="br0">&#41;</span>, ContentType.APPLICATION_JSON<span class="br0">&#41;</span>;
&nbsp;
		CloseableHttpClient httpclient = HttpClients.createDefault<span class="br0">&#40;</span><span class="br0">&#41;</span>;
&nbsp;
		logger.info<span class="br0">&#40;</span>task + <span style="color: #FF0000;">&quot;-&gt; Create the POST to &quot;</span> + dest_server_url<span class="br0">&#41;</span>;
		ClassicHttpRequest httpPost = ClassicRequestBuilder.post<span class="br0">&#40;</span>dest_server_url<span class="br0">&#41;</span>.setEntity<span class="br0">&#40;</span>stringEntity<span class="br0">&#41;</span>.build<span class="br0">&#40;</span><span class="br0">&#41;</span>;
&nbsp;
		logger.info<span class="br0">&#40;</span>task + <span style="color: #FF0000;">&quot; -&gt; Execute the POST&quot;</span><span class="br0">&#41;</span>;
		status = httpclient.execute<span class="br0">&#40;</span>httpPost, response -&gt; <span class="br0">&#123;</span>
		logger.info<span class="br0">&#40;</span>task + <span style="color: #FF0000;">&quot; : &quot;</span> + response.getCode<span class="br0">&#40;</span><span class="br0">&#41;</span> + <span style="color: #FF0000;">&quot; &quot;</span> + response.getReasonPhrase<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
		<span style="color: #0000ff;">final</span> HttpEntity entity2 = response.getEntity<span class="br0">&#40;</span><span class="br0">&#41;</span>;
		<span style="color: #808080;">// do something useful with the response body</span>
		<span style="color: #808080;">// and ensure it is fully consumed</span>
		EntityUtils.consume<span class="br0">&#40;</span>entity2<span class="br0">&#41;</span>;
		<span style="color: #0000ff;">return</span> response.getCode<span class="br0">&#40;</span><span class="br0">&#41;</span>;
		<span class="br0">&#125;</span><span class="br0">&#41;</span>;
		httpclient.close<span class="br0">&#40;</span><span class="br0">&#41;</span>;
&nbsp;
		<span style="color: #0000ff;">return</span> status;
		<span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div></div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f22/java/general-java/">Général Java</category>
			<dc:creator>cormnsa</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182879/java/general-java/envoyer-json-via-https/</guid>
		</item>
		<item>
			<title><![CDATA[Oracle lance Java 26, avec dix propositions d'amélioration du JDK (JEP) axées sur l'intégration de l'IA]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182713&amp;goto=newpost</link>
			<pubDate>Wed, 18 Mar 2026 06:58:42 GMT</pubDate>
			<description>*Oracle lance Java 26, la...</description>
			<content:encoded><![CDATA[<div><b><font size="4">Oracle lance Java 26, la dernière version du langage de programmation et de la plateforme de développement, avec des améliorations axées sur l'intégration de l'IA, le chiffrement et la productivité</font></b><br />
<br />
<b>Oracle a annoncé la disponibilité de Java 26, la dernière version du langage de programmation et de la plateforme de développement numéro un au monde. Java 26 (Oracle JDK 26) apporte des milliers d'améliorations qui boostent la productivité des développeurs, simplifient le langage et aident les développeurs à intégrer des fonctionnalités d'IA et de chiffrement dans leurs applications.</b><br />
<br />
Java est un ensemble de logiciels et de spécifications qui fournit une plateforme logicielle permettant de développer des applications et de les déployer dans un environnement informatique multiplateforme. Java est utilisé sur une grande variété de plateformes informatiques, allant des appareils embarqués et des téléphones mobiles aux serveurs d'entreprise et aux supercalculateurs. Les applets Java, moins courantes que les applications Java autonomes, étaient généralement exécutées dans des environnements sécurisés et isolés (sandbox) afin d'offrir de nombreuses fonctionnalités des applications natives tout en étant intégrées dans des pages HTML.<br />
<br />
L'écriture en langage de programmation Java est le principal moyen de produire du code qui sera déployé sous forme de bytecode dans une machine virtuelle Java (JVM) ; des compilateurs de bytecode sont également disponibles pour d'autres langages, notamment Ada, JavaScript, Kotlin (le langage Android préféré de Google), Python et Ruby. De plus, plusieurs langages ont été conçus pour s'exécuter en mode natif sur la JVM, notamment Clojure, Groovy et Scala. La syntaxe de Java s'inspire largement du C et du C++, mais ses fonctionnalités orientées objet s'inspirent de Smalltalk et d'Objective-C.<br />
<br />
Java évite certaines constructions de bas niveau telles que les pointeurs et dispose d'un modèle de mémoire très simple où les objets sont alloués sur le tas (bien que certaines implémentations, par exemple toutes celles actuellement prises en charge par Oracle, puissent utiliser l'optimisation par analyse d'échappement pour allouer sur la pile à la place) et où toutes les variables de type objet sont des références. La gestion de la mémoire est assurée par un ramasse-miettes automatique intégré, géré par la JVM. <br />
<br />
Récemment, Oracle a annoncé la disponibilité de Java 26, la dernière version du langage de programmation et de la plateforme de développement numéro un au monde. Java 26 (Oracle JDK 26) apporte des milliers d'améliorations qui boostent la productivité des développeurs, simplifient le langage et aident les développeurs à intégrer des fonctionnalités d'IA et de chiffrement dans leurs applications.<br />
<br />
Afin d'aider les développeurs à rationaliser et à améliorer davantage leurs initiatives de développement, Oracle annonce également le nouveau Java Verified Portfolio (JVP), qui fournit aux développeurs un ensemble sélectionné d'outils, de frameworks, de bibliothèques et de services pris en charge par Oracle, y compris une assistance commerciale pour JavaFX, un framework d'interface utilisateur basé sur Java, et Helidon, un framework Java pour les microservices. De plus, Oracle a l'intention d'aligner le rythme de publication d'Helidon sur celui des versions Java et de proposer Helidon en tant que projet OpenJDK. <br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p675043d1773819772/java/general-java/oracle-lance-java-26-dix-propositions-d-amelioration-jdk-jep-axees-l-integration-l-ia/1.jpg/" border="0" alt="Nom : 1.jpg
Affichages : 8639
Taille : 28,5 Ko"  style="float: CONFIG" /></div><br />
« <i>Depuis plus de 30 ans, les entreprises s'appuient sur la plateforme et le langage Java pour alimenter leurs systèmes critiques et soutenir le développement rapide d'applications et de services</i> », a déclaré Arnal Dayaratna, vice-président de la recherche en développement logiciel chez IDC. « <i>L'évolution continue de la plateforme permet aux entreprises d'intégrer des capacités transformatrices dans leurs applications, tout en préservant la fiabilité et la sécurité qui caractérisent les logiciels critiques. En étendant les fonctionnalités de Java avec de nouvelles fonctionnalités et de nouveaux services, tels que des capacités avancées en matière d'IA et de sécurité, Java 26 offre aux entreprises une voie plus rapide vers l'innovation.</i> »<br />
<br />
« <i>Java joue un rôle essentiel en tant que technologie d’entreprise fondamentale depuis plus de 30 ans, servant de pilier aux piles d’applications des entreprises et les aidant à créer des applications et des services puissants, fiables et sécurisés</i> », a déclaré Georges Saab, vice-président senior d’Oracle Java Platform et président du conseil d’administration d’OpenJDK. « <i>Les nouvelles fonctionnalités de Java 26 reflètent l’engagement d’Oracle à aider ses clients à exploiter l’IA et la cryptographie pour créer des applications qui accélèrent la croissance de leur activité. Avec l’introduction de JVP, les développeurs peuvent rationaliser leurs projets de développement à l’aide d’une suite d’outils fiables pris en charge par Oracle, notamment Helidon, un framework Java rapide et léger permettant de créer des microservices hautement performants et des applications basées sur l’IA.</i> »<br />
 <br />
<b><font size="3">Principales propositions d'amélioration du JDK (JEP)</font></b><br />
<br />
<b>Fonctionnalités du langage</b><br />
<br />
- <b>JEP 530 : Types primitifs dans les motifs, instanceof et switch (quatrième aperçu)</b> : aide les développeurs à accroître leur productivité et à rationaliser le développement d'applications intégrant l'inférence IA en rendant Java plus uniforme et plus expressif. Elle élimine plusieurs restrictions relatives aux types primitifs qui créent des frictions lors de l'utilisation de la correspondance de motifs, de instanceof et de switch. Pour aider les développeurs à améliorer encore leur productivité, elle renforce également la définition de l’exactitude inconditionnelle et applique des contrôles de dominance plus stricts dans les constructions switch, permettant ainsi au compilateur d’identifier et de réduire un plus large éventail d’erreurs de codage.<br />
 <br />
<b>Mises à jour de performances</b><br />
<br />
- <b>JEP 522 : G1 GC : Amélioration du débit par la réduction de la synchronisation</b> : aide les développeurs à traiter plus de travail en moins de temps en améliorant l’efficacité de la mémoire. Elle réduit la synchronisation entre les threads de l'application et ceux du ramasse-miettes, augmentant ainsi le débit avec le ramasse-miettes G1. En s'exécutant plus rapidement et en prenant en charge davantage d'utilisateurs sans matériel supplémentaire, Java améliore l'efficacité, réduit les coûts d'infrastructure et offre une expérience utilisateur plus fluide.<br />
 <br />
<b>Fonctionnalités du projet Leyden</b><br />
<br />
- <b>JEP 516 : Mise en cache d'objets à l'avance avec n'importe quel ramasse-miettes</b> : Améliore la productivité des développeurs et l'efficacité des ressources en accélérant le temps de démarrage des applications Java avec n'importe quel ramasse-miettes (GC). Il permet le chargement séquentiel en mémoire d'objets Java pré-initialisés et mis en cache à partir d'un format neutre, indépendant du ramasse-miettes. Il améliore également le cache « ahead-of-time », permettant à la machine virtuelle Java HotSpot d'améliorer les temps de démarrage et de préchauffage et d'être utilisée avec n'importe quel ramasse-miettes, y compris le ZGC à faible latence. Cela aide les développeurs à réduire les délais de démarrage des applications, à faire évoluer leurs applications plus rapidement et à offrir une meilleure expérience utilisateur.<br />
 <br />
<b>Bibliothèques</b><br />
<br />
- <b>JEP 500 : Prépare à ce que la décision finale soit définitive</b> : aide les développeurs à améliorer la sécurité et la fiabilité des applications en empêchant les modifications involontaires, les altérations ou les erreurs accidentelles dans les systèmes métier critiques. Elle émet des avertissements concernant l'utilisation de la réflexion profonde pour modifier des champs final et permet aux développeurs de modifier ces champs lorsque cela est indispensable, afin d'éviter à la fois les avertissements actuels et les restrictions futures. Ce changement crucial renforce le principe de « l'intégrité par défaut » de Java, qui vise à protéger les données sensibles et la logique métier, à réduire les risques cachés et à diminuer le risque de bogues ou de failles de sécurité.<br />
<br />
- <b>JEP 517 : HTTP/3 pour l'API client HTTP</b> : aide les développeurs à gagner en productivité en facilitant l'écriture de code interagissant avec les serveurs HTTP. Elle met à jour l'API client HTTP pour prendre en charge le protocole HTTP/3, permettant ainsi aux bibliothèques et aux applications d'interagir avec les serveurs HTTP/3 avec un minimum de modifications du code. En éliminant ces goulots d'étranglement courants et en permettant une récupération plus rapide des données avec une latence réduite, elle aide les microservices et les applications Java pilotées par des API à bénéficier de performances accrues et de connexions réseau plus fiables.<br />
<br />
- <b>JEP 526 : Constantes paresseuses (deuxième aperçu)</b> : aide les développeurs à gagner en productivité et à optimiser l'utilisation des ressources en offrant une plus grande flexibilité dans le moment de leur initialisation, ce qui est particulièrement utile pour les applications basées sur l'IA et les données. Grâce à une nouvelle API pour les constantes paresseuses, qui sont des objets contenant des données non modifiables, la JVM traite ces constantes comme de véritables constantes afin d'offrir les mêmes performances que la déclaration d'un champ final. De plus, en permettant aux applications Java et à leurs services cloud natifs et basés sur l'IA de se lancer plus rapidement et d'utiliser les ressources informatiques plus efficacement, cela aide les développeurs à réaliser des déploiements agiles et évolutifs qui se traduisent par des économies de coûts et une meilleure expérience pour les utilisateurs finaux.<br />
<br />
- <b>JEP 525 : Concurrence structurée (sixième aperçu)</b> : Aide les développeurs à améliorer la maintenabilité, la fiabilité et l'observabilité du code multithread, ce qui est particulièrement bénéfique pour améliorer l'évolutivité et la résilience des charges de travail IA et cloud natives. Elle simplifie la programmation concurrente via une API de concurrence structurée, qui traite les groupes de tâches liées s'exécutant dans différents threads comme une seule unité de travail et aide à réduire les risques courants liés à l'annulation et à l'arrêt, tels que les fuites de threads et les retards d'annulation.<br />
<br />
- <b>JEP 529 : API vectorielle (11e version d'incubation)</b> : Aide les développeurs à améliorer les performances et la rentabilité de leurs applications Java en leur permettant d'offrir davantage d'informations et de valeur ajoutée avec moins de matériel. L'API vectorielle exprime des calculs vectoriels qui se compilent de manière fiable lors de l'exécution en instructions vectorielles optimales sur les architectures CPU prises en charge, ce qui se traduit par un traitement plus rapide pour l'analyse de données, l'inférence IA et les charges de travail de calcul scientifique. Cela permet aux développeurs d'obtenir des performances supérieures à celles des calculs scalaires équivalents souvent utilisés dans les scénarios d'inférence IA et de calcul.<br />
 <br />
<b>Bibliothèques de sécurité</b><br />
<br />
- <b>JEP 524 : Codages PEM d'objets cryptographiques (deuxième aperçu)</b> : aide les développeurs à améliorer la productivité et à renforcer la sécurité des applications Java pour les formats de sécurité largement utilisés grâce à une nouvelle API de codage. L'API encode les objets représentant des clés cryptographiques, des certificats et des listes de révocation de certificats dans le format de transport de courrier électronique à confidentialité renforcée (PEM), largement utilisé, puis les décode à nouveau en objets. Cela réduit le risque d'erreurs, simplifie la conformité et améliore la portabilité et l'interopérabilité des applications Java sécurisées en rationalisant la configuration et l'intégration de la cryptographie pour répondre aux besoins des entreprises, du cloud et des réglementations.<br />
 <br />
<b>Fonctionnalités de rationalisation</b><br />
<br />
- <b>JEP 504 : Suppression de l'API Applet</b> : permet aux développeurs de réduire l'encombrement lié à l'installation et au code source, et d'améliorer les performances, la stabilité et la sécurité des applications en supprimant l'API Applet, qui avait été marquée comme obsolète dans le JDK 17 et ne fait plus partie de la plateforme.<br />
 <br />
<div style="text-align: center;">
<div class="video-container"><iframe class="restrain" title="YouTube video player" width="560" height="315" allowfullscreen src="//www.youtube.com/embed/1ERvyBqPihs?wmode=transparent&amp;fs=1" frameborder="0"></iframe></div>
</div><br />
<b>Améliorations supplémentaires en matière de sécurité, de fiabilité et de performances</b><br />
<br />
Outre les 10 JEP, Java 26 propose des dizaines de mises à jour qui aident les organisations à renforcer la sécurité, la fiabilité et les performances de leurs applications. Avec Java 26, les organisations peuvent désormais rationaliser le chiffrement sécurisé grâce au chiffrement hybride à clé publique (HPKE) conforme aux normes de l'industrie, pérenniser leurs chaînes d'approvisionnement avec la signature de fichiers JAR prête pour l'ère post-quantique, et bénéficier d'une prise en charge améliorée des normes mondiales grâce aux mises à jour vers Unicode 17.0 et CLDR v48. De plus, des contrôles renforcés pour les algorithmes cryptographiques et les keystores hérités renforcent encore davantage la sécurité et la conformité, ce qui aide les organisations à se moderniser en toute confiance.<br />
<br />
Les performances et la fiabilité des applications sont améliorées grâce à des dizaines de mises à jour supplémentaires qui permettent un démarrage plus rapide de la JVM, un ramasse-miettes plus efficace, une compilation C2 JIT étendue et une gestion plus intelligente du tas. De plus, les développeurs et les administrateurs peuvent gagner en productivité grâce à de nouvelles fonctionnalités, notamment le téléchargement de fichiers par région dans HttpClient, une création d'images d'exécution plus stricte, une API de métriques JVM améliorée et un nouveau mode sombre pour JavaDoc.<br />
<br />
Les fonctionnalités de la version Java 26 sont le fruit d'une collaboration continue entre Oracle et les membres de la communauté mondiale des développeurs Java via OpenJDK et le Java Community Process (JCP).<br />
<br />
<b>Source</b> : <a rel="nofollow" href="https://www.oracle.com/news/announcement/oracle-releases-java-26-2026-03-17/" target="_blank">Annonce de Java 26</a><br />
<br />
<b>Et vous ?</b><br />
<br />
:fleche: Pensez-vous que cette annonce est crédible ou pertinente ?<br />
:fleche: Quel est votre avis sur le sujet ?<br />
<br />
<b>Voir aussi :</b><br />
<br />
:fleche: <a href="https://java.developpez.com/actu/375914/Oracle-annonce-la-publication-de-Java-25-apportant-des-ameliorations-qui-optimisent-le-langage-Java-etendent-ses-capacites-d-IA-et-aident-les-developpeurs-a-accroitre-leur-productivite/" target="_blank">Oracle annonce la publication de Java 25 apportant des améliorations qui optimisent le langage Java, étendent ses capacités d'IA et aident les développeurs à accroître leur productivité</a><br />
<br />
:fleche: <a href="https://java.developpez.com/actu/373953/Pres-de-75-pourcent-des-utilisateurs-d-Oracle-Java-ont-fait-l-objet-d-un-audit-de-conformite-logicielle-au-cours-des-trois-dernieres-annees-les-couts-eleves-de-licence-les-poussent-vers-les-alternatives-open-source/" target="_blank">Près de 75 % des utilisateurs d'Oracle Java ont fait l'objet d'un audit de conformité logicielle au cours des trois dernières années, les coûts élevés de licence les poussent vers les alternatives open source</a><br />
<br />
:fleche: <a href="https://java.developpez.com/actu/372432/Java-fete-ses-30-ans-retour-sur-l-evolution-d-un-langage-qui-a-su-rester-pertinent-a-l-ere-du-cloud-du-DevOps-et-de-l-IA-Ce-veteran-du-developpement-peut-il-encore-seduire-les-nouvelles-generations/" target="_blank">Java fête ses 30 ans : retour sur l'évolution d'un langage qui a su rester pertinent à l'ère du cloud, du DevOps et de l'IA. Ce vétéran du développement peut-il encore séduire les nouvelles générations ?</a></div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p675043d1773819772/java/general-java/oracle-lance-java-26-dix-propositions-d-amelioration-jdk-jep-axees-l-integration-l-ia/1.jpg/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f22/java/general-java/">Général Java</category>
			<dc:creator>Alex</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182713/java/general-java/oracle-lance-java-26-dix-propositions-d-amelioration-jdk-jep-axees-l-integration-l-ia/</guid>
		</item>
		<item>
			<title><![CDATA[Jbuilder entreprise => xml]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2181989&amp;goto=newpost</link>
			<pubDate>Sun, 08 Feb 2026 00:06:30 GMT</pubDate>
			<description>Salut salut 
Comment generer...</description>
			<content:encoded><![CDATA[<div>Salut salut<br />
Comment generer un fichier xml en l'occurrence <br />
Une facture dans jbuilder entreprise <br />
Bye &amp; merci</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f22/java/general-java/">Général Java</category>
			<dc:creator>slimmix</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2181989/java/general-java/jbuilder-entreprise-xml/</guid>
		</item>
		<item>
			<title><![CDATA[Migration en JDK 25 & utilisation class reccord]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2181942&amp;goto=newpost</link>
			<pubDate>Thu, 05 Feb 2026 14:01:07 GMT</pubDate>
			<description><![CDATA[Bonjour, 
 
Pour l'instant,...]]></description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Pour l'instant, je suis en JDK11, mais je me pose la question de migré en JDK25 (si LTS).<br />
Mais, je me dis qu'il serait bien d'utiliser les nouvelles fonctionnalité des JDK, en outre la class reccord.<br />
<br />
Mais, migré pour juste avoir une version plus récente, je ne suis pas certains que cela soit très un bon choix.<br />
Donc, je brainstorm...<br />
<br />
Pour ce qui est de la class de type reccord, je peux par exemple convertir celle-ci : <br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> def_formula
	<span class="br0">&#123;</span>
	<span style="color: #0000ff;">int</span> action = <span style="color: #cc66cc;">0</span>;
  <span style="color: #0000ff;">int</span> type = <span style="color: #cc66cc;">0</span>;
  String operande = <span style="color: #FF0000;">&quot;&quot;</span>;
  String operation = <span style="color: #FF0000;">&quot;&quot;</span>;
&nbsp;
  <span style="color: #808080; font-weight: bold;">/**</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp;* Constructor</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp;* </span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp;* <span style="color: #0000ff;">@param</span><span style="color: #800000;"> iAction</span></span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp;* <span style="color: #0000ff;">@param</span><span style="color: #800000;"> iType</span></span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp;* <span style="color: #0000ff;">@param</span><span style="color: #800000;"> sOperande</span></span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp;* <span style="color: #0000ff;">@param</span><span style="color: #800000;"> sOperation</span></span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp;*/</span>
  <span style="color: #0000ff;">public</span> def_formula<span class="br0">&#40;</span><span style="color: #0000ff;">int</span> iAction, <span style="color: #0000ff;">int</span> iType, String sOperande, String sOperation<span class="br0">&#41;</span>
    <span class="br0">&#123;</span>
    action = iAction;
    type = iType;
    operande = sOperande;
    operation = sOperation;
    <span class="br0">&#125;</span>
&nbsp;
	<span style="color: #808080; font-weight: bold;">/**</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* <span style="color: #0000ff;">@return</span> the action</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/</span>
	<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> getAction<span class="br0">&#40;</span><span class="br0">&#41;</span>
		<span class="br0">&#123;</span>
		<span style="color: #0000ff;">return</span> action;
		<span class="br0">&#125;</span>
&nbsp;
	<span style="color: #808080; font-weight: bold;">/**</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* <span style="color: #0000ff;">@return</span> the type</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/</span>
	<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> getType<span class="br0">&#40;</span><span class="br0">&#41;</span>
		<span class="br0">&#123;</span>
		<span style="color: #0000ff;">return</span> type;
		<span class="br0">&#125;</span>
&nbsp;
	<span style="color: #808080; font-weight: bold;">/**</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* <span style="color: #0000ff;">@return</span> the operande</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/</span>
	<span style="color: #0000ff;">public</span> String getOperande<span class="br0">&#40;</span><span class="br0">&#41;</span>
		<span class="br0">&#123;</span>
		<span style="color: #0000ff;">return</span> operande;
		<span class="br0">&#125;</span>
&nbsp;
	<span style="color: #808080; font-weight: bold;">/**</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* <span style="color: #0000ff;">@return</span> the operation</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/</span>
	<span style="color: #0000ff;">public</span> String getOperation<span class="br0">&#40;</span><span class="br0">&#41;</span>
		<span class="br0">&#123;</span>
		<span style="color: #0000ff;">return</span> operation;
		<span class="br0">&#125;</span>
	<span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div>en<br />
<br />
reccord def_formula(int action, int type, String operande, String operation) {}<br />
<br />
Mais, cela veut dire que je dois remplacer les appels :<br />
<br />
<ul><li style="">getAction() par action()</li><li style="">getType() par type()</li><li style="">getOperande() par operande()</li><li style="">getOperation() par operation()</li></ul><br />
<br />
D'ailleurs, question annexe : une class de type reccord peut-il être encapsulé dans une ArrayList ou un Vecteur ?<br />
<br />
Ce qui donnerait (en utilisant les class de type reccord) : <br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td valign="top"><pre style="margin: 0"> def_formula formula = <span style="color: #0000ff;">null</span>;
&nbsp;
  <span style="color: #0000ff;">for</span><span class="br0">&#40;</span><span style="color: #0000ff;">int</span> i = <span style="color: #cc66cc;">0</span>; i &lt; alFormula.size<span class="br0">&#40;</span><span class="br0">&#41;</span>; i++<span class="br0">&#41;</span>
       <span class="br0">&#123;</span>  
       formula = alFormula.get<span class="br0">&#40;</span>i<span class="br0">&#41;</span>;
     	 priorite = formula.getAction<span class="br0">&#40;</span><span class="br0">&#41;</span>;
     	 PLog.debug<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;executing line &quot;</span> + priorite<span class="br0">&#41;</span>;
&nbsp;
         <span style="color: #0000ff;">double</span> value1 = <span style="color: #cc66cc;">0</span>, value2 = <span style="color: #cc66cc;">0</span>;
&nbsp;
     	   <span style="color: #0000ff;">switch</span><span class="br0">&#40;</span>formula.type<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
....
st = <span style="color: #0000ff;">new</span> StringTokenizer<span class="br0">&#40;</span>formulaoperande<span class="br0">&#40;</span><span class="br0">&#41;</span>,<span style="color: #FF0000;">&quot;;&quot;</span><span class="br0">&#41;</span>;</pre></td></tr></table></code><hr />
</div>Est-ce que cela vaut la peine de  faire ce genre de modification ou vaut-il mieux laisser ainsi.<br />
<br />
Bref, il y a deux questions dans ce post : <br />
- Interet à migrer en JDK 25<br />
- Usage d'adapter certaines class en class de type reccord.<br />
<br />
Désolé si le post est un peu chao, mais en écrivant, je réfléchis et &quot;brainstorm&quot;</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f22/java/general-java/">Général Java</category>
			<dc:creator>cormnsa</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2181942/java/general-java/migration-jdk-25-utilisation-class-reccord/</guid>
		</item>
		<item>
			<title>Gestion de fichier de log</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2180119&amp;goto=newpost</link>
			<pubDate>Mon, 27 Oct 2025 16:33:58 GMT</pubDate>
			<description>Bonjour ou bonsoir... :) 
...</description>
			<content:encoded><![CDATA[<div>Bonjour ou bonsoir... :)<br />
<br />
J'ai une (des) application(s) qui font du logging.<br />
Un fichier pour reçevoir le stream standard (System.out) et un fichier pour recevoir le stream d'erreur (System.err).<br />
<br />
Une redirection des styreams out et err vers des fichiers.<br />
<br />
Mais, actuellement, ces deux fichiers sont stocker dans un répertoire du profile utilisateur.<br />
Si j'avais besoin de faire du support, je me connectais sur le serveur en mode administrateur et j'allais dans le répertoire adhoc consulter les fichiers logs.<br />
<br />
Sauf que la parano des admins ont décider de mettre en place une solution zero-trust avec une solution nommée cyber-ark.<br />
Donc, pour faire du support utilisateur, il faut que je me connecte sur la plate-formce cyber-ark, MFA, arriver sur le serveur, et faire le support...<br />
<br />
Dès lors, je me demande s'il serait pas plus simple que les fichiers logs soit mis ailleurs, dans le répertoire d'installation de l'application, ce serait plus facile.<br />
Sauf que plusieurs personnes peuvent utiliser l'application..<br />
<br />
La contrainte est que la méthode de redirection est avant la fenêtre qui demande le logging utilisateur.<br />
<br />
Alors, je me demande s'il serait pas possible de faire: <br />
<br />
création de deux fichier temporaire <br />
mise en place redirection vers les deux fichiers temporaire<br />
renommer les deux fichiers temporaire vers &lt;login&gt;.err.log &amp; &lt;login&gt;.out.log<br />
<br />
Mais, ma question est : Est-ce que cela est possible ?<br />
faut-il faire un genre de switch log (remise en place redirection par défaut après loggin, renommer les fichiers temporaire et puis refaire la redirection) ?</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f22/java/general-java/">Général Java</category>
			<dc:creator>cormnsa</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2180119/java/general-java/gestion-fichier-log/</guid>
		</item>
		<item>
			<title><![CDATA[Problème d'accents avec le JDK 25.]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2179857&amp;goto=newpost</link>
			<pubDate>Tue, 14 Oct 2025 17:48:08 GMT</pubDate>
			<description>Bonjour, 
 
Ci dessous une...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Ci dessous une classe qui marchait très bien en version 1.8 (et sous Eclipse 2025-9 avec le JDK 25) , mais pas lorsque je lance l'application. <br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
C:\Windows\System32&gt;java -version
openjdk version <span style="color: #FF0000;">&quot;25&quot;</span> <span style="color: #cc66cc;">2025</span>-<span style="color: #cc66cc;">09</span>-<span style="color: #cc66cc;">16</span> LTS
OpenJDK Runtime Environment <span class="br0">&#40;</span>build <span style="color: #cc66cc;">25</span>+<span style="color: #cc66cc;">37</span>-LTS<span class="br0">&#41;</span>
OpenJDK <span style="color: #cc66cc;">64</span>-Bit Server VM <span class="br0">&#40;</span>build <span style="color: #cc66cc;">25</span>+<span style="color: #cc66cc;">37</span>-LTS, mixed mode, sharing<span class="br0">&#41;</span></pre></td></tr></table></code><hr />
</div><font color="#FF0000">Commande lancée sous Windows 11.</font><br />
<b> java   -cp  c:\jars\gegeutil.jar gegeutil.TestAccents </b> <br />
<br />
Je suppose que c'est sans doute un problème de codepage mais sans en comprendre la raison puisque je n'ai pas le même souci sous Eclipse ou en version 1.8.  <br />
<br />
Merci d'avance si vous avez des idées.<br />
<br />
Gégé<br />
<br />
<font color="#FF0000">Voici le résultat  sous Eclipse . </font><br />
<img src="https://www.developpez.net/forums/attachments/p670989d1760506338/java/general-java/probleme-d-accents-jdk-25/resultat-18.jpg/" border="0" alt="Nom : résultat 18.jpg
Affichages : 231
Taille : 32,5 Ko"  style="float: CONFIG" /><br />
<br />
<font color="#FF0000">Voici le résultat  avec la commande. </font><br />
 <img src="https://www.developpez.net/forums/attachments/p670991d1760506682/java/general-java/probleme-d-accents-jdk-25/resultat-25.jpg/" border="0" alt="Nom : résultat  25.jpg
Affichages : 231
Taille : 33,4 Ko"  style="float: CONFIG" /><br />
<br />
<font color="#FF0000"><br />
Ci dessous le programme :</font><br />
<a href="https://www.developpez.net/forums/attachments/p670992d1760506866/java/general-java/probleme-d-accents-jdk-25/testaccents.java/"  title="Nom : TestAccents.java
Affichages : 60
Taille : 1,8 Ko">TestAccents.java</a><br />
<br />
 <br />
<br />
<font color="#FF0000">Le fichier texte :</font><br />
<a href="https://www.developpez.net/forums/attachments/p670993d1760506936/java/general-java/probleme-d-accents-jdk-25/fichiertest.txt/"  title="Nom : FichierTest.txt
Affichages : 57
Taille : 810 octets">FichierTest.txt</a></div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p670989d1760506338/java/general-java/probleme-d-accents-jdk-25/resultat-18.jpg/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p670991d1760506682/java/general-java/probleme-d-accents-jdk-25/resultat-25.jpg/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	
		<fieldset class="fieldset">
			<legend>Fichiers attachés</legend>
			<ul>
			<li>
	<img class="inlineimg" src="https://forum.developpez.be/images/attach/java.gif" alt="Type de fichier : java" />
	<a href="https://www.developpez.net/forums/attachments/p670992d1760506866/java/general-java/probleme-d-accents-jdk-25/testaccents.java/">TestAccents.java</a> 
(1,8 Ko)
</li><li>
	<img class="inlineimg" src="https://forum.developpez.be/images/attach/txt.gif" alt="Type de fichier : txt" />
	<a href="https://www.developpez.net/forums/attachments/p670993d1760506936/java/general-java/probleme-d-accents-jdk-25/fichiertest.txt/">FichierTest.txt</a> 
(810 octets)
</li>
			</ul>
		</fieldset>
	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f22/java/general-java/">Général Java</category>
			<dc:creator>GGMARTINELLI</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2179857/java/general-java/probleme-d-accents-jdk-25-a/</guid>
		</item>
		<item>
			<title>Où trouver le JRE 21 ?</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2179745&amp;goto=newpost</link>
			<pubDate>Thu, 09 Oct 2025 05:09:18 GMT</pubDate>
			<description>Bonjour 
 
Je ne sais pas où...</description>
			<content:encoded><![CDATA[<div>Bonjour<br />
<br />
Je ne sais pas où chercher pour trouver le JRE de la version JAVA 21. J'ai installé le JDK, mais pour le déploiement pour les utilisateurs j'ai besoin du JRE. <br />
J'ai essayé de regarder du côté de BellSoft et d'iBM  mais lorsque je regarde le  contenu de  ce que j'ai téléchargé  je ne trouve pas les classes de javax (par exemple javax.swing.*)<br />
<br />
Si vous avez des idées merci de m'aider.<br />
<br />
Gégé</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f22/java/general-java/">Général Java</category>
			<dc:creator>GGMARTINELLI</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2179745/java/general-java/trouver-jre-21-a/</guid>
		</item>
		<item>
			<title>JRE pour Java 25</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2179542&amp;goto=newpost</link>
			<pubDate>Mon, 29 Sep 2025 09:33:17 GMT</pubDate>
			<description>Bonjour, 
 
Je viens de...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Je viens de télécharger le JDK 25. Cela marche parfaitement, et j'ai remarqué qu'il n'y a plus de JRE.<br />
<br />
Ma question concerne les utilisateurs. Doivent-t-il  tous installer le JDK ? ou bien  où trouver l'équivalent du JRE ? <br />
Merci d'avance<br />
<br />
Gégé</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f22/java/general-java/">Général Java</category>
			<dc:creator>GGMARTINELLI</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2179542/java/general-java/jre-java-25-a/</guid>
		</item>
		<item>
			<title>Java et service windows</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2179537&amp;goto=newpost</link>
			<pubDate>Sun, 28 Sep 2025 22:37:35 GMT</pubDate>
			<description>Bonjour, 
dans un programme...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
dans un programme Java j'utilise le pilote de postgresql. Cela nécessite que le service postgresql soit démarré. Or il arrive (en particulier après une mise à jour) que ce service soit arrêté.<br />
J'ai deux questions <br />
1 Est-il possibe le java de vérifier si ce sevice est démarré ?<br />
2 Est-il possible en Java de démarrer le service windows Postgresql ?<br />
<br />
Merci.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f22/java/general-java/">Général Java</category>
			<dc:creator>Patrice Henrio</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2179537/java/general-java/java-service-windows/</guid>
		</item>
		<item>
			<title>Oracle annonce la publication de Java 25 apportant des améliorations qui optimisent le langage Java</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2179317&amp;goto=newpost</link>
			<pubDate>Wed, 17 Sep 2025 13:27:29 GMT</pubDate>
			<description>*Oracle annonce la...</description>
			<content:encoded><![CDATA[<div><b><font size="4">Oracle annonce la publication de Java 25 apportant des améliorations qui optimisent le langage Java, étendent ses capacités d’IA et aident les développeurs à accroître leur productivité</font></b><br />
<br />
<b>Oracle publie Java 25. La nouvelle version concrétise 18 propositions d’amélioration de JDK (JEP : JDK Enhancement Proposals), qui optimisent le langage Java, étendent ses capacités d’IA et aident les développeurs à accroître leur productivité. Les améliorations apportées aux performances, à la sécurité et à la stabilité de la plateforme aident les entreprises à stimuler la croissance de leur activité. L’offre de support à long terme permet aux clients de migrer à leur rythme.</b><br />
<br />
Oracle annonce la publication de Java 25, la nouvelle version du langage de programmation et de la plateforme de développement numéro un dans le monde. Java 25 (Oracle JDK 25) aidera les entreprises à stimuler la croissance de leurs activités en apportant des milliers d’améliorations qui dopent la productivité des développeurs et améliorent les performances, la stabilité et la sécurité de la plateforme. Par ailleurs, Oracle fournira une assistance à long terme pour Java 25 sur au moins huit ans. <br />
<br />
« <i>À l’aube de sa quatrième décennie existence, Java continue de fournir des fonctionnalités pour garantir que les applications, y compris celles optimisées et intégrées aux fonctionnalités d’IA, seront très efficaces et évolutives sur toutes les plateformes matérielles</i> », constate Arnal Dayaratna, research vice president, software development, IDC. « <i>La gestion de la technologie Java par Oracle continue de faire évoluer le langage et la plateforme de programmation Java, en particulier en ce qui concerne l’IA et la sécurité, et la cadence de publication cohérente de Java sur six mois est conçue pour accélérer davantage l’innovation. Par conséquent, Java est bien placé pour fournir un flux continu de fonctionnalités modernes qui traitent du développement d’applications de nouvelle génération alimenté par l’IA.</i> »<br />
<br />
«<i> Java a passé un cap important cette année avec son 30e anniversaire. La plateforme et le langage ne cessent d’évoluer pour aider les développeurs à créer rapidement et facilement des applications dotées de capacités d’IA et de sécurité innovantes</i> », se félicite Georges Saab, senior vice president, Oracle Java Platform, et chair, OpenJDK governing board. «<i> Java 25 souligne l’investissement continu d’Oracle dans les fonctionnalités qui alimentent les solutions d’IA et simplifient le langage, ce qui rend Java plus facile à apprendre pour les nouveaux développeurs et les équipes informatiques.</i> »<br />
<br />
Oracle prévoit d’offrir un support à long terme pour Java 25 pendant au moins huit ans, ce qui donne aux entreprises la flexibilité de conserver les applications en production plus longtemps avec une maintenance minimale et de migrer éventuellement à leurs propres conditions. Oracle JDK 25 devrait recevoir des mises à jour trimestrielles de sécurité et de performance jusqu’en septembre 2028 conformément aux conditions Oracle No-Fee Terms and Conditions (NFTC) et les mises à jour JDK 25 publiées après cette date seront offertes sous la licence OTN Java SE (OTN) prévue jusqu’en septembre 2033 au moins.<br />
<br />
<div style="text-align: center;">
<div class="video-container"><iframe class="restrain" title="YouTube video player" width="560" height="315" allowfullscreen src="//www.youtube.com/embed/duIceCXObrA?wmode=transparent&amp;fs=1" frameborder="0"></iframe></div>
</div><br />
Principales propositions d’améliorations de JDK (JDK Enhancement Proposals : JEP)<br />
<br />
<b><font size="3">Fonctionnalités du langage Oracle JDK 25</font></b><br />
<br />
<ul><li style=""><b>JEP 507: Types primitifs dans les patterns, instanceof et switch (troisième aperçu)</b> : aide les développeurs à augmenter leur productivité en rendant le langage Java plus uniforme et plus expressif. Par exemple, les développeurs peuvent améliorer la correspondance de modèles en supprimant les restrictions relatives aux types primitifs rencontrés lors de l’utilisation de la correspondance de modèles, d’instanceof et de switch. Il permet également les modèles de type primitif dans tous les contextes de modèle et étend instanceof et switch pour fonctionner avec tous les types primitifs. La prise en charge des types primitifs sera particulièrement bénéfique pour les développeurs qui créent des applications qui intègrent l’inférence d’IA.<br />
<br /></li><li style=""><b>JEP 511: Déclarations d’importation de modules</b> : permet aux développeurs d’améliorer leur productivité en leur permettant d’importer facilement tous les packages exportés par un module, sans nécessiter que le code d’importation se trouve dans un module lui-même. Cela simplifie la réutilisation des bibliothèques modulaires pour tous les développeurs et aide les débutants à utiliser des bibliothèques tierces et des classes Java fondamentales sans la nécessité de savoir où elles se trouvent dans une hiérarchie de packages. En outre, les développeurs peuvent éviter le bruit de plusieurs déclarations d’importation à la demande lors de l’utilisation de diverses parties de l’API exportées par un module, ce qui est bénéfique pour les applications simples qui assemblent les inférences d’IA et les workflows des bibliothèques populaires.<br />
<br /></li><li style=""><b>JEP 512: Fichiers source et méthodes principales d’instance compactes</b> : aide à rendre le langage Java plus accessible aux débutants, aux administrateurs système et informatiques en offrant une prise en main plus aisée de la programmation Java. Les novices peuvent écrire leurs premiers programmes de manière concise sans avoir à comprendre les fonctionnalités linguistiques conçues pour les grands programmes et peuvent développer leur code avec élégance au fur et à mesure que leurs compétences se développent. En outre, les administrateurs système et informatiques qui ne sont peut-être pas des experts Java peuvent réduire la cérémonie d’écriture de petits programmes tels que des scripts et des utilitaires de ligne de commande.<br />
<br /></li><li style=""><b>JEP 513 : Corps de constructeur flexibles</b> : permet aux développeurs d’améliorer la sécurité et la fiabilité du code en autorisant la validation des entrées et les calculs sécurisés avant d’appeler explicitement un constructeur. Cela améliore la sécurité du code en autorisant davantage d’expressions de constructeur naturelles et en activant l’initialisation de champ avant qu’elles ne soient visibles par d’autres codes de classe, tels que les méthodes appelées à partir d’un constructeur de superclasse. Cela améliore également la fiabilité en préservant la protection qui empêche les constructeurs de sous-classe d’interférer avec l’instanciation de la superclasse.</li></ul><br />
<b><font size="3">Bibliothèques Oracle JDK 25</font></b><br />
<br />
<ul><li style=""><b>JEP 505: Accès simultané structuré (cinquième aperçu)</b> : aide les développeurs à améliorer la maintenabilité, la fiabilité et l’observabilité du code multithread en simplifiant la programmation simultanée. En traitant les groupes de tâches connexes exécutées dans différents threads comme une seule unité de travail, la simultanéité structurée aide à éliminer les risques courants liés aux annulations et arrêts, tels que les fuites de threads et les retards d’annulation. C’est particulièrement bénéfique pour le développement de l’IA, qui implique souvent l’exécution de plusieurs tâches en parallèle.<br />
<br /></li><li style=""><b>JEP 506: Valeurs ciblées</b> : améliore l’ergonomie, la compréhensibilité, les performances et la robustesse des projets en permettant le partage de données immuables au sein des threads et entre eux. Cela profite particulièrement aux applications utilisant des plateformes d’IA, des cadres Web et des microservices. En outre, les valeurs avec un scope sont plus faciles à gérer que les variables locales à un thread et ont des coûts d’espace et de temps plus faibles, en particulier lorsqu’elles sont utilisées avec des threads virtuels et une simultanéité structurée.<br />
<br /></li><li style=""><b>JEP 502 : Valeurs stables (aperçu)</b> : aide les développeurs à augmenter la flexibilité en introduisant une API pour les valeurs stables, qui sont des objets qui contiennent des données immuables. Étant donné que les valeurs stables sont traitées en tant que constantes par la Java Virtual Machine, elles permettent les mêmes optimisations de performances que la déclaration d’un champ final, tout en offrant une plus grande flexibilité dans le calendrier de leur initialisation.<br />
<br /></li><li style=""><b>JEP 508 : API vectorielle (10e incubateur)</b> : aide les développeurs à améliorer leur productivité via une API qui exprime des calculs vectoriels qui sont compilés de manière fiable lors de l’exécution pour obtenir des instructions vectorielles optimales sur les architectures CPU prises en charge. Les développeurs peuvent ainsi obtenir des performances supérieures aux calculs scalaires équivalents, qui sont souvent utilisés dans les scénarios d’inférence et de calcul de l’IA.</li></ul><br />
<b><font size="3">Bibliothèques de sécurité Oracle JDK 25</font></b><br />
<br />
<ul><li style=""><b>JEP 470 : Encodages PEM d’objets cryptographiques (aperçu)</b> : aide les développeurs à augmenter leur productivité via une nouvelle API pour le codage d’objets. L’API encode les objets représentant les clés cryptographiques, les certificats et les listes de révocation de certificats dans le format de transport de courrier largement utilisé et optimisé pour la confidentialité, et décode à partir de ce format en objets. Cela facilite l’intégration des applications Java aux systèmes d’authentification de sécurité et aux périphériques tels que Yubikeys.<br />
<br /></li><li style=""><b>JEP 510: API de fonction de dérivation de clé</b> : aide les développeurs à se préparer aux environnements de calcul quantique émergents en offrant une API pour les fonctions de dérivation de clé, qui sont des algorithmes cryptographiques pour la dérivation de clés supplémentaires à partir d’une clé secrète et d’autres données. Cela fournit un bloc de construction nécessaire pour la prise en charge du chiffrement hybride de clé publique, ce qui permet une transition en douceur vers le chiffrement quantique sécurisé.</li></ul><br />
<b><font size="3">Mises à jour de performances pour Oracle JDK 25</font></b><br />
<br />
<ul><li style=""><b>JEP 519: En-têtes d’objet compact</b> : aide les développeurs à augmenter leur productivité en réduisant la taille des en-têtes d’objet à 64 bits sur les architectures 64 bits. Cela améliore la densité de déploiement et augmente la localisation des données, tout en réduisant la taille des objets et l’empreinte mémoire sur les workloads réalistes.<br />
<br /></li><li style=""><b>JEP 514: Ergonomie en ligne de commande anticipée</b> : aide les développeurs à accélérer la productivité en facilitant la création de caches à l’avance sans perte d’expressivité. Cela accélère le démarrage des applications Java en simplifiant les commandes requises pour les cas d’utilisation courants.<br />
<br /></li><li style=""><b>JEP 515: Profilage anticipé des méthodes</b> : aide les développeurs à augmenter leur productivité en accélérant les performances des applications. Le temps d’échauffement est amélioré en déplaçant la collection de profils d’exécution de méthode initiale des cycles de production vers les cycles d’entraînement, en transmettant les profils via le cache à l’avance. Cela permet au compilateur JIT de générer du code natif immédiatement au démarrage de l’application plutôt que d’attendre que les profils soient collectés. Cela élimine également le besoin de modifier le code des applications, des bibliothèques ou des structures et supprime toute contrainte sur l’exécution des applications.</li></ul><br />
<b><font size="3">Mises à jour de surveillance d’Oracle JDK 25</font></b><br />
<br />
<ul><li style=""><b>JEP 509: Profilage du temps de CPU JFR (expérimental)</b> : aide les développeurs à améliorer la productivité et l’efficacité de leurs programmes en améliorant le JDK Flight Recorder (JFR) pour capturer des informations de profilage du temps CPU plus précises sur Linux et en aidant à identifier les éléments de programme à optimiser.<br />
<br /></li><li style=""><b>JEP 518: Échantillonnage coopératif JFR</b> : aide les développeurs à augmenter la fiabilité du code en améliorant la stabilité du JFR lorsqu’il échantillonne de manière asynchrone les piles de threads Java. Cela permet au JFR de limiter les biais de point de sécurité dans les échantillonneurs d’événements tout en évitant les heuristiques risquées pour générer des traces de pile en dehors des points de sécurité. Cela permet également la création de demandes d’échantillons en réponse à un événement matériel ou à l’intérieur d’un gestionnaire de signaux et réduit la quantité de travail que le thread échantillonneur doit exécuter.<br />
<br /></li><li style=""><b>JEP 520 : JFR Method Timing &amp; Tracing</b> : aide les développeurs à améliorer leur productivité en leur permettant d’identifier les goulets d’étranglement des performances des applications, d’optimiser le code et de trouver les causes profondes des bugs. Ceci est réalisé en étendant le JFR avec des facilités de synchronisation et de traçage de méthode via l’instrumentation de code exécutable.</li></ul><br />
Les fonctionnalités de Java 25 sont le fruit de la collaboration continue entre les ingénieurs d’Oracle et le reste de la communauté mondiale des développeurs Java via OpenJDK et le Java Community Process (JCP). <br />
<br />
« <i><a href="https://java.developpez.com/actu/372432/Java-fete-ses-30-ans-retour-sur-l-evolution-d-un-langage-qui-a-su-rester-pertinent-a-l-ere-du-cloud-du-DevOps-et-de-l-IA-Ce-veteran-du-developpement-peut-il-encore-seduire-les-nouvelles-generations/" target="_blank">Depuis son lancement il y a 30 ans, Java est resté un langage fiable et sécurisé pour la création d'applications d'entreprise à grande échelle</a></i> », a déclaré Adam Resnick, responsable de recherche, Développement logiciel moderne et tendances développeurs chez IDC. « <i>Comme souligné lors de la conférence JavaOne de cette année, Java est sur le point d'élargir sa portée auprès des développeurs débutants et des étudiants en programmation. De nouvelles fonctionnalités simplifiant la complexité et offrant un retour d'information immédiat facilitent la création de programmes de niveau débutant. L'évolution continue de Java reflète un équilibre judicieux, élargissant son accessibilité aux développeurs moins expérimentés tout en préservant la robustesse requise pour les solutions d'entreprise.</i> »<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p670388d1758120538/java/general-java/oracle-annonce-publication-java-25-apportant-ameliorations-optimisent-langage-java/1.jpg/" border="0" alt="Nom : 1.jpg
Affichages : 32670
Taille : 27,6 Ko"  style="float: CONFIG" /></div><br />
<b><font size="3">Prise en charge de toute la communauté mondiale Java et innovation dans le cloud</font></b><br />
<br />
Java offre une innovation, des performances, une efficacité et des économies de coûts accrues lorsqu’il est déployé sur Oracle Cloud Infrastructure (OCI), le premier cloud à très grande échelle à prendre en charge Oracle JDK 25. En offrant Oracle Java SE et des fonctionnalités avancées, telles que le pack Java SE Subscription Enterprise Performance Pack sans coût supplémentaire sur OCI, Java 25 aide les développeurs à créer et déployer des applications qui s’exécutent plus rapidement et avec un rapport coût-performance optimal.<br />
<br />
Oracle Java SE Universal Subscription fournit aux clients un support de pointe. Il inclut le Java SE Subscription Enterprise Performance Pack, la prise en charge du triage de l’ensemble du portefeuille Java, le service Java Management Service et la flexibilité nécessaire pour la mise à niveau au rythme des activités des clients. Les équipes informatiques peuvent ainsi gérer la complexité, limiter les coûts et atténuer les risques de sécurité. <br />
<br />
Outre les avantages de Java sur OCI et de l’abonnement Oracle Java Universal SE Subscription, Java 25 offre des performances d’application améliorées et un large éventail de fonctionnalités d’IA et de sécurité, y compris la prise en charge du chiffrement post-quantique (PQC), afin d’améliorer les performances, la stabilité et la sécurité des implémentations de la plateforme Java SE et du JDK.<br />
<br />
<b><font size="3">Les leaders de la communauté Java mondiale accueillent favorablement Oracle JDK 25</font></b><br />
<br />
« <i>Lorsque Java est passé à une version tous les six mois, il semblait impossible que de nouvelles fonctionnalités intéressantes puissent être divisées en suffisamment de petites pièces pour être livrées de cette façon — et il semblait possible que certaines versions n’en comportent même pas beaucoup</i> », déclare Trisha Gee, head of advocacy, Gradle, Inc. « <i>Or, nous avions tort ! Chaque nouvelle version de Java a des fonctionnalités intéressantes et utiles. Il est extrêmement enrichissant de diviser les grands livrables en petits composants indépendants. Par exemple, les différentes fonctionnalités de correspondance de modèles sont autonomes et peuvent être fournies indépendamment, mais toutes s’ajoutent à un ensemble fantastique de nouvelles fonctionnalités pour Java et à une nouvelle façon pour les développeurs Java de réfléchir à la façon de résoudre leurs problèmes. La force de Java ne faiblit pas.</i> »<br />
<br />
« <i>JEP 512 introduit &quot;Compact Source Files and Instance Main Methods&quot; qui simplifie considérablement Java pour les débutants en leur permettant d’écrire des programmes sans le code passe-partout traditionnel public static void main (String[] args)</i> », explique Rémi Forax, maître de conférences à l’Université Gustave Eiffel. «<i> Les étudiants peuvent maintenant commencer par des programmes simples et développer progressivement leur compréhension à des concepts plus avancés au fur et à mesure qu’ils grandissent, créant un parcours d’apprentissage fluide, des concepts de programmation de base à la programmation orientée objet complète.</i> »<br />
<br />
« <i>Mes parties préférées de Java 25 sont les fichiers source compacts (Compact Source Files), les méthodes principales d’instance (Instance Main Methods) et les déclarations d’importation de modules, car ces fonctionnalités facilitent l’adoption de Java par les programmeurs débutants</i> », détaille Cay Horstmann, professeur émérite à l’Université d’Etat de San José. « <i>Les programmeurs expérimentés profitent aussi de ces avancées, élargissant la portée de Java à de petites tâches quotidiennes. Je trouve très satisfaisant de réécrire des scripts bricolés en shell ou Python avec Java, un langage industriel et fortement typé avec un excellent support d’outils.</i> »<br />
<br />
« <i>Lorsque la cadence de sortie des fonctionnalités de six mois a été annoncée avec Java 9, j’étais l’un des plus grands sceptiques, et je l’ai même dit publiquement. Oracle pourrait-il s’en sortir ? J’avais mes doutes, car nous avions l’habitude d’une nouvelle sortie tous les trois ans</i> », se souvient Dr Heinz M. Kabutz, auteur de la newsletter The Java Specialists. « <i>Mais en effet, Oracle s’en tire avec panache et avec enthousiasme. Sous la direction d’Oracle et avec une énorme communauté qui fait avancer les choses, <a href="https://java.developpez.com/actu/355056/-Java-n-est-pas-pres-de-disparaitre-le-langage-de-programmation-est-toujours-sur-la-liste-des-priorites-des-entreprises-en-2024-selon-le-rapport-Java-Developer-Productivity-de-Perforce/" target="_blank">Java se démarque des autres langages de programmation</a>. Les enregistrements, les fichiers source compacts et les importations de modules facilitent grandement l’adoption de Java et les threads virtuels, l’API de mémoire étrangère, l’API vectorielle et ZGC rendent Java adapté à la création de systèmes évolutifs techniquement avancés.</i> »<br />
<br />
« <i>La plus grande force de Java est sa communauté. Chez JUG Oberpfalz, nous relançons nos discussions &quot;(Re)Start with Java&quot; en 2025, et les développeurs sont toujours impressionnés par l’évolution du langage</i> », explique Richard Fichtner, CEO, XDEV Software GmbH. « <i>Dans sa version moderne, Java est plus productif, plus sûr et plus innovant que jamais : une preuve de ce que la communauté et la collaboration peuvent réaliser. </i>»<br />
<br />
<b>Sources</b> : <a rel="nofollow" href="https://jdk.java.net/25/release-notes" target="_blank">Release Notes</a>, <a rel="nofollow" href="https://jdk.java.net/25/" target="_blank">OpenJDK JDK 25</a>, <a rel="nofollow" href="https://mail.openjdk.org/pipermail/announce/2025-September/000360.html" target="_blank">Annonce de Java 25</a> <br />
<br />
<b>Et vous ?</b><br />
<br />
:fleche: Pensez-vous que cette annonce est crédible ou pertinente ?<br />
:fleche: Quel est votre avis sur le sujet ?<br />
<br />
<b>Voir aussi :</b><br />
<br />
:fleche: <a href="https://java.developpez.com/actu/370217/Oracle-annonce-la-disponibilite-de-Java-24-apportant-des-ameliorations-en-matiere-de-performance-de-stabilite-et-de-securite-a-la-plateforme-pour-permettre-aux-entreprises-d-accelerer-leur-croissance/" target="_blank">Oracle annonce la disponibilité de Java 24, apportant des améliorations en matière de performance, de stabilité et de sécurité à la plateforme pour permettre aux entreprises d'accélérer leur croissance</a><br />
<br />
:fleche: <a href="https://java.developpez.com/actu/373953/Pres-de-75-pourcent-des-utilisateurs-d-Oracle-Java-ont-fait-l-objet-d-un-audit-de-conformite-logicielle-au-cours-des-trois-dernieres-annees-les-couts-eleves-de-licence-les-poussent-vers-les-alternatives-open-source/" target="_blank">Près de 75 % des utilisateurs d'Oracle Java ont fait l'objet d'un audit de conformité logicielle au cours des trois dernières années, les coûts élevés de licence les poussent vers les alternatives open source</a><br />
<br />
:fleche: <a href="https://java.developpez.com/actu/357065/90-pourcent-des-services-Java-presentent-un-risque-de-vulnerabilite-les-images-de-conteneurs-legers-entrainent-moins-de-vulnerabilites-et-l-adoption-de-l-IaC-est-elevee-selon-le-rapport-DevSecOps-de-Datadog/" target="_blank">90% des services Java présentent un risque de vulnérabilité, les images de conteneurs légers entraînent moins de vulnérabilités et l'adoption de l'IaC est élevée, selon le rapport DevSecOps de Datadog</a></div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p670388d1758120538/java/general-java/oracle-annonce-publication-java-25-apportant-ameliorations-optimisent-langage-java/1.jpg/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f22/java/general-java/">Général Java</category>
			<dc:creator>Jade Emy</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2179317/java/general-java/oracle-annonce-publication-java-25-apportant-ameliorations-optimisent-langage-java/</guid>
		</item>
		<item>
			<title><![CDATA[Un soft ne reconnait pas Java qu'il demande]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2178648&amp;goto=newpost</link>
			<pubDate>Sun, 17 Aug 2025 10:42:33 GMT</pubDate>
			<description>Bonjour 
W 11 pro 
Le soft...</description>
			<content:encoded><![CDATA[<div>Bonjour<br />
W 11 pro<br />
Le soft DBGL, qui est un frontend de Dosbox ( qu'importe qu'il ne fonctionne pas vu que j'en ai 2 autres mais je tiens a comprendre) exige Java 17. Ah bon. <br />
<a rel="nofollow" href="https://ibb.co/MyXNVnV0" target="_blank">https://ibb.co/MyXNVnV0</a><br />
Bon. J'installe la toute dernier version de Java, activee<br />
<br />
<br />
<a rel="nofollow" href="https://ibb.co/JWcSRbb1" target="_blank">https://ibb.co/JWcSRbb1</a><br />
Mais DBGL demande toujours Java 17<br />
Quelque chose a faire afin qu'il reconnaisse que Java est bien installe dans Windows ?<br />
Merci et bon weekend</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f22/java/general-java/">Général Java</category>
			<dc:creator>bigbernie</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2178648/java/general-java/soft-ne-reconnait-java-qu-demande/</guid>
		</item>
		<item>
			<title><![CDATA[Intégration d'une classe qui permet le tri des noms de dossier par date de création]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2178349&amp;goto=newpost</link>
			<pubDate>Thu, 31 Jul 2025 06:59:00 GMT</pubDate>
			<description>Bonjour, 
 
Dans mon code...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Dans mon code principal, utilisé pour un appareillage, je liste le contenu d'un répertoire. Je souhaiterais adapter le code ci-dessous à mon script plus bas.<br />
Je n'arrive pas à mes fins tout seul.<br />
<br />
Le code est sous Java ETK1.4.5 (il ne m'est pas possible de changer cette version)<br />
<br />
Voici le code qui me permettrais de lister par date de création:<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td valign="top"><pre style="margin: 0">File directory = <span style="color: #0000ff;">new</span> File<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;c:<span style="color: #800000;">\\</span>books<span style="color: #800000;">\\</span>&quot;</span><span class="br0">&#41;</span>;
   File<span class="br0">&#91;</span><span class="br0">&#93;</span> files = directory.listFiles<span class="br0">&#40;</span><span class="br0">&#41;</span>;
   Arrays.sort<span class="br0">&#40;</span>files, <span style="color: #0000ff;">new</span> Comparator<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> compare<span class="br0">&#40;</span>Object o1, Object o2<span class="br0">&#41;</span> <span class="br0">&#123;</span>
       File a1=<span class="br0">&#40;</span>File<span class="br0">&#41;</span>o1;
       File a2=<span class="br0">&#40;</span>File<span class="br0">&#41;</span>o2;
       <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>a1.lastModified<span class="br0">&#40;</span><span class="br0">&#41;</span> &lt; a2.lastModified<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
          <span style="color: #0000ff;">return</span> <span style="color: #cc66cc;">-1</span>;
       <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>a1.lastModified<span class="br0">&#40;</span><span class="br0">&#41;</span> &gt; a2.lastModified<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
         <span style="color: #0000ff;">return</span> <span style="color: #cc66cc;">1</span>;
       <span style="color: #0000ff;">else</span>
         <span style="color: #0000ff;">return</span> <span style="color: #cc66cc;">0</span>;
       <span class="br0">&#125;</span>
    <span class="br0">&#125;</span><span class="br0">&#41;</span>;</pre></td></tr></table></code><hr />
</div><br />
Voici mon code actuel fonctionnel qui me permet de lister le contenu d'un repertoire<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">import</span> com.ewon.ewonitf.EvtWebFormListener;
<span style="color: #0000ff;">import</span> java.io.PrintStream;
<span style="color: #0000ff;">import</span> java.util.Date;
<span style="color: #0000ff;">import</span> java.util.Enumeration;
<span style="color: #0000ff;">import</span> javax.microedition.io.Connector;
<span style="color: #0000ff;">import</span> javax.microedition.io.file.FileConnection;
&nbsp;
&nbsp;
&nbsp;
<span style="color: #808080;">/*</span>
<span style="color: #808080;">&nbsp;* To change this template, choose Tools | Templates</span>
<span style="color: #808080;">&nbsp;* and open the template in the editor.</span>
<span style="color: #808080;">&nbsp;*/</span>
&nbsp;
<span style="color: #808080; font-weight: bold;">/**</span>
<span style="color: #808080; font-weight: bold;">&nbsp;* https://stackoverflow.com/questions/72185256/java-1-4-sort-files-recent-latest</span>
<span style="color: #808080; font-weight: bold;">&nbsp;* <span style="color: #0000ff;">@author</span> eWonSupport_Adm</span>
<span style="color: #808080; font-weight: bold;">&nbsp;*/</span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> MyWebFormListener <span style="color: #0000ff;">extends</span> EvtWebFormListener 
<span class="br0">&#123;</span>
&nbsp;
    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> callForm<span class="br0">&#40;</span>String FormName<span class="br0">&#41;</span> 
    <span class="br0">&#123;</span>      
         PrintStream ps = <span style="color: #0000ff;">new</span> PrintStream<span class="br0">&#40;</span><span style="color: #0000ff;">this</span><span class="br0">&#41;</span>;
&nbsp;
         setWebHeader<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;text/plain&quot;</span><span class="br0">&#41;</span>;
&nbsp;
        <span style="color: #808080;">//  List File</span>
         <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #FF0000;">&quot;list&quot;</span>.equals<span class="br0">&#40;</span>FormName<span class="br0">&#41;</span><span class="br0">&#41;</span> 
         <span class="br0">&#123;</span>             
            <span style="color: #0000ff;">try</span>
            <span class="br0">&#123;</span>
               String FileConnStr = <span style="color: #FF0000;">&quot;file:///&quot;</span> + getWebVar<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;directory&quot;</span>,<span style="color: #FF0000;">&quot;/&quot;</span><span class="br0">&#41;</span>;
&nbsp;
               String directoryStr=getWebVar<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;directory&quot;</span>,<span style="color: #FF0000;">&quot;&quot;</span><span class="br0">&#41;</span>;
               ps.println<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;directoryStr: &quot;</span>+directoryStr<span class="br0">&#41;</span>;
&nbsp;
               FileConnection fc =  <span class="br0">&#40;</span>FileConnection<span class="br0">&#41;</span> Connector.<span style="color: #0000ff;">open</span><span class="br0">&#40;</span>FileConnStr<span class="br0">&#41;</span>;
               <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>fc.exists<span class="br0">&#40;</span><span class="br0">&#41;</span> &amp;&amp; fc.isDirectory<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
               <span class="br0">&#123;</span>
                   Enumeration x = fc.list<span class="br0">&#40;</span><span class="br0">&#41;</span>;
                   FileConnection fc1 = <span style="color: #0000ff;">null</span>;
                   String sz_list = <span style="color: #FF0000;">&quot;&quot;</span>;
&nbsp;
                   String orderStr = getWebVar<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;order&quot;</span>,<span style="color: #FF0000;">&quot;&quot;</span><span class="br0">&#41;</span>;
                   String typeStr = getWebVar<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;type&quot;</span>,<span style="color: #FF0000;">&quot;&quot;</span><span class="br0">&#41;</span>;
                   String lineBreakStr = getWebVar<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;lineBreak&quot;</span>,<span style="color: #FF0000;">&quot;&quot;</span><span class="br0">&#41;</span>;
&nbsp;
                   <span style="color: #0000ff;">while</span><span class="br0">&#40;</span>x.hasMoreElements<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
                   <span class="br0">&#123;</span>
                       String item =  x.nextElement<span class="br0">&#40;</span><span class="br0">&#41;</span>.toString<span class="br0">&#40;</span><span class="br0">&#41;</span>;
                       fc1 =  <span class="br0">&#40;</span>FileConnection<span class="br0">&#41;</span> Connector.<span style="color: #0000ff;">open</span><span class="br0">&#40;</span>FileConnStr+ <span style="color: #FF0000;">&quot;/&quot;</span> + item<span class="br0">&#41;</span>;
                       <span style="color: #808080;">// http://192.168.0.10/rcgi.bin/jvmForm?formName=list&amp;type=file&amp;lineBreak=yes&amp;order=ascending&amp;directory=/usr</span>
&nbsp;
                       <span style="color: #808080;">// list file</span>
                       <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #FF0000;">&quot;file&quot;</span>.equals<span class="br0">&#40;</span>typeStr<span class="br0">&#41;</span><span class="br0">&#41;</span>
                       <span class="br0">&#123;</span>
                    	   <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>!fc1.isDirectory<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>  
                    	   <span class="br0">&#123;</span>
                    		   <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #FF0000;">&quot;yes&quot;</span>.equals<span class="br0">&#40;</span>lineBreakStr<span class="br0">&#41;</span><span class="br0">&#41;</span>
                    		   <span class="br0">&#123;</span>
                    			   sz_list += <span style="color: #FF0000;">&quot;/&quot;</span> + item+ <span style="color: #FF0000;">&quot;<span style="color: #800000;">\n</span>&quot;</span>;
                    		   <span class="br0">&#125;</span>
                    		   <span style="color: #0000ff;">else</span>
                    			   sz_list += <span style="color: #FF0000;">&quot;/&quot;</span> + item + <span style="color: #FF0000;">&quot;;&quot;</span>;
                    	   <span class="br0">&#125;</span>
                       <span class="br0">&#125;</span>
&nbsp;
                       <span style="color: #808080;">// http://192.168.0.10/rcgi.bin/jvmForm?formName=list&amp;type=dir&amp;lineBreak=yes&amp;order=ascending&amp;directory=/usr</span>
&nbsp;
                       <span style="color: #808080;">// list dir</span>
                       <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #FF0000;">&quot;dir&quot;</span>.equals<span class="br0">&#40;</span>typeStr<span class="br0">&#41;</span><span class="br0">&#41;</span>
                       <span class="br0">&#123;</span>
                    	   <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>fc1.isDirectory<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>  
                    	   <span class="br0">&#123;</span>
                    		   <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #FF0000;">&quot;yes&quot;</span>.equals<span class="br0">&#40;</span>lineBreakStr<span class="br0">&#41;</span><span class="br0">&#41;</span>
                    		   <span class="br0">&#123;</span>
                    			   sz_list += <span style="color: #FF0000;">&quot;/&quot;</span> + item+ <span style="color: #FF0000;">&quot;<span style="color: #800000;">\n</span>&quot;</span>;
                    		   <span class="br0">&#125;</span>
                    		   <span style="color: #0000ff;">else</span>
                    			   sz_list += <span style="color: #FF0000;">&quot;/&quot;</span> + item + <span style="color: #FF0000;">&quot;;&quot;</span>;
                    	   <span class="br0">&#125;</span>
                   <span class="br0">&#125;</span>
                   ps.print<span class="br0">&#40;</span><span class="br0">&#40;</span>sz_list<span class="br0">&#41;</span><span class="br0">&#41;</span>;
               <span class="br0">&#125;</span>
               <span style="color: #0000ff;">else</span>
                   ps.print<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;DIRECTORY DOES NOT EXIST&quot;</span><span class="br0">&#41;</span>;
          <span class="br0">&#125;</span>
          <span style="color: #0000ff;">catch</span><span class="br0">&#40;</span>Exception ex<span class="br0">&#41;</span>
          <span class="br0">&#123;</span>
              System.out.println<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;size Command Error: &quot;</span> + ex.getMessage<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
              ps.print<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;list Command Error&quot;</span><span class="br0">&#41;</span>;
          <span class="br0">&#125;</span>  
        <span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div></div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f22/java/general-java/">Général Java</category>
			<dc:creator>dudux2</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2178349/java/general-java/integration-d-classe-permet-tri-noms-dossier-date-creation/</guid>
		</item>
	</channel>
</rss>
