<?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 - API standards et tierces</title>
		<link>https://www.developpez.net/forums/</link>
		<description><![CDATA[Forum d'entraide sur les API fournies par Java (Entrée/Sortie, Collection, Stream, Concurrence et multi-thread) et fournies par des bibliothèques externes (Birt...). Avant de poster -> FAQ Java, Les meilleures API Java.]]></description>
		<language>fr</language>
		<lastBuildDate>Thu, 29 Oct 2026 20:18:13 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 - API standards et tierces</title>
			<link>https://www.developpez.net/forums/</link>
		</image>
		<item>
			<title><![CDATA[Récupérer une variable d'environnement sous MACOS]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2186039&amp;goto=newpost</link>
			<pubDate>Thu, 08 Oct 2026 10:08:06 GMT</pubDate>
			<description>Bonjour, 
 
Je travaille sous...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Je travaille sous MACOS, <br />
<br />
J'ai  créé le  script   &quot;<b>backup.sh</b>&quot;  suivant :<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 /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
#!/bin/bash                            
 <span style="color: #0000ff;">if</span> <span class="br0">&#91;</span>   -z $<span style="color: #cc66cc;">2</span> <span class="br0">&#93;</span>                        
    then echo <span style="color: #FF0000;">&quot;Il faut passer deux arguments</span>
<span style="color: #FF0000;">    exit 1;                            </span>
<span style="color: #FF0000;">fi                                                                        </span>
<span style="color: #FF0000;">base=$1                                </span>
<span style="color: #FF0000;">fichier=$2                             </span>
&nbsp;
<span style="color: #FF0000;"> /usr/local/mysql-9.2.0-macos15-x86_64/bin/mysqldump   -u gege   -B $base &gt; $fichier</span></pre></td></tr></table></code><hr />
</div>et voici la méthode java  qui invoque ce script (qui a son équivalent sous Windows &quot;backup.bat&quot;). . <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 /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
 <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">int</span> commandePourBase<span class="br0">&#40;</span>String commande, String fichier, String msg<span class="br0">&#41;</span>
    <span class="br0">&#123;</span>
    	 <span style="color: #0000ff;">try</span> 
 	    <span class="br0">&#123;</span>
    		 String appli = <span style="color: #FF0000;">&quot;&quot;</span>;
 	    	<span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>OS_MAC<span class="br0">&#41;</span> appli = commande+<span style="color: #FF0000;">&quot;.sh&quot;</span>; 
 	    	<span style="color: #0000ff;">else</span> appli = commande+<span style="color: #FF0000;">&quot;.bat&quot;</span>; 
 	    	String cmd   = userdir + File.separator + <span style="color: #FF0000;">&quot;Data&quot;</span>+ File.separator + appli;;
 			Path path  = Paths.get<span class="br0">&#40;</span>cmd<span class="br0">&#41;</span>; 
 			<span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>! Files.exists<span class="br0">&#40;</span>path<span class="br0">&#41;</span><span class="br0">&#41;</span>
 			<span class="br0">&#123;</span>
 				  String mes =  <span style="color: #FF0000;">&quot;&lt;html&gt;&lt;body&gt;&lt;font color=black&gt;Sauvegarde/Restauration.&lt;br&gt;&quot;</span>;
 				         mes += <span style="color: #FF0000;">&quot;Impossible de trouver le fichier d'ex&eacute;cution :&lt;/font&gt;&lt;br&gt;&lt;font color=red&gt;&quot;</span>  + cmd + <span style="color: #FF0000;">&quot;&lt;/  font&gt;&lt;/body&gt;&lt;/html&gt;&quot;</span>;
 				 JOption Pane.showMessageDialog<span class="br0">&#40;</span>ow,mes, <span style="color: #FF0000;">&quot;Erreur&quot;</span>  ,JOptionPane.INFORMATION_MESSAGE<span class="br0">&#41;</span>;
 				 <span style="color: #0000ff;">return</span> <span style="color: #cc66cc;">-1</span>;
 			<span class="br0">&#125;</span>
 			ProcessBuilder pb = <span style="color: #0000ff;">null</span>; 
 			<span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>commande.equalsIgnoreCase<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;backup&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
 	    	    pb = <span style="color: #0000ff;">new</span> ProcessBuilder<span class="br0">&#40;</span>cmd,mabase,fichier<span class="br0">&#41;</span>; 
 			<span style="color: #0000ff;">else</span>
 			   pb = <span style="color: #0000ff;">new</span> ProcessBuilder<span class="br0">&#40;</span>cmd,fichier<span class="br0">&#41;</span>; 
 	   	    Process proc  = pb.start<span class="br0">&#40;</span><span class="br0">&#41;</span>;
 	         proc.waitFor<span class="br0">&#40;</span><span class="br0">&#41;</span>; 
&nbsp;
 	        BufferedReader reader  = <span style="color: #0000ff;">new</span> BufferedReader<span class="br0">&#40;</span><span style="color: #0000ff;">new</span> InputStreamReader<span class="br0">&#40;</span>proc.getErrorStream<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
&nbsp;
 	        System.out.println<span class="br0">&#40;</span><span class="br0">&#41;</span>;
                 String line  =<span style="color: #0000ff;">null</span>;
 	        <span style="color: #0000ff;">int</span> rc = <span style="color: #cc66cc;">0</span>;
 	        <span style="color: #0000ff;">while</span><span class="br0">&#40;</span><span class="br0">&#40;</span>line  = reader.readLine<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>!=<span style="color: #0000ff;">null</span><span class="br0">&#41;</span>
                <span class="br0">&#123;</span> 
        	   System.out.println<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;Erreur : &quot;</span>+line <span class="br0">&#41;</span>;
        	   rc=<span style="color: #cc66cc;">-1</span>;
                <span class="br0">&#125;</span>
 	        <span style="color: #0000ff;">return</span> rc;
 	    <span class="br0">&#125;</span> 
 	    <span style="color: #0000ff;">catch</span> <span class="br0">&#40;</span>Exception e<span class="br0">&#41;</span> 
 	    <span class="br0">&#123;</span>
 	    	e.printStackTrace<span class="br0">&#40;</span><span class="br0">&#41;</span>;
 	    	JOptionPane.showMessageDialog<span class="br0">&#40;</span><span style="color: #0000ff;">null</span>,msg + <span style="color: #FF0000;">&quot; de la base impossible&quot;</span>,<span style="color: #FF0000;">&quot;&quot;</span>,JOptionPane.INFORMATION_MESSAGE<span class="br0">&#41;</span>;
 	    	<span style="color: #0000ff;">return</span> <span style="color: #cc66cc;">-1</span>;
 	    <span class="br0">&#125;</span>
    <span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div>jusque là tout marche bien,  ma base est correctement sauvegardée. . <br />
<br />
Pour éviter de hard-coder le chemin du programme <b>mysqldump</b> dans mon script, j'ai à pensé à le remplacer par une variable d'environnement. Pour cela dans le fichier   .zshenv  j'ai ajouté la variable MYSQL_HOME. En mode terminal, cela marche très bien, mais pas sous java, j'obtiens un message d'erreur et je note que la variable d'environnement est remplacée par un blanc.  <br />
<br />
J'ai alors modifié mon code java pour voir si je peux récupérer la valeur de cette variable et la passer en paramètre. J'ai donc utilisé :<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 /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
String env = System.getenv<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;MYSQL_HOME&quot;</span><span class="br0">&#41;</span>  <span style="color: #808080;">// J'ai aussi essay&eacute; avec System.getenv(&quot;$MYSQL_HOME&quot;);</span></pre></td></tr></table></code><hr />
</div>Cela me renvoie <b>env= null</b>.  <br />
<br />
Est-ce normal? Si oui, y-a-t-il une solution ?<br />
<br />
Merci d'avance.<br />
<br />
Gégé</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f193/java/general-java/api-standards-tierces/">API standards et tierces</category>
			<dc:creator>GGMARTINELLI</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2186039/java/general-java/api-standards-tierces/recuperer-variable-d-environnement-sous-macos/</guid>
		</item>
	</channel>
</rss>
