<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to SystemProcess</title><link>https://sourceforge.net/p/java-utility-classes/wiki/SystemProcess/</link><description>Recent changes to SystemProcess</description><atom:link href="https://sourceforge.net/p/java-utility-classes/wiki/SystemProcess/feed" rel="self"/><language>en</language><lastBuildDate>Fri, 26 Jan 2024 18:51:52 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/java-utility-classes/wiki/SystemProcess/feed" rel="self" type="application/rss+xml"/><item><title>SystemProcess modified by ENGITEX</title><link>https://sourceforge.net/p/java-utility-classes/wiki/SystemProcess/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v6
+++ v7
@@ -28,7 +28,7 @@
 `boolean SystemProcess.setProcessAffinity(char[] aff)`
 returns `true` if the requested affinity has been set and `false` otherwise.
 For example, affinity **'0001'** will assign the process to the 4th CPU.
-Statics method `boolean setProcessAffinity(int pid, char[] aff)` does the same for a process with a known PID.
+Static method `boolean setProcessAffinity(int pid, char[] aff)` does the same for a process with a known PID.

 Other static methods are:
 `int getCPUnumber()` - to get the number of CPUs assuming hyperthreading,
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">ENGITEX</dc:creator><pubDate>Fri, 26 Jan 2024 18:51:52 -0000</pubDate><guid>https://sourceforge.net72663aafdb5a2d8cd49de1408b1e8bdc4829feaa</guid></item><item><title>SystemProcess modified by ENGITEX</title><link>https://sourceforge.net/p/java-utility-classes/wiki/SystemProcess/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v5
+++ v6
@@ -27,7 +27,7 @@

 `boolean SystemProcess.setProcessAffinity(char[] aff)`
 returns `true` if the requested affinity has been set and `false` otherwise.
-For example, affinity '0001' will assign the process to the 4th CPU.
+For example, affinity **'0001'** will assign the process to the 4th CPU.
 Statics method `boolean setProcessAffinity(int pid, char[] aff)` does the same for a process with a known PID.

 Other static methods are:
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">ENGITEX</dc:creator><pubDate>Fri, 26 Jan 2024 02:03:01 -0000</pubDate><guid>https://sourceforge.net6e89a618e85bc8a2765ba2e071835f2b212d3247</guid></item><item><title>SystemProcess modified by ENGITEX</title><link>https://sourceforge.net/p/java-utility-classes/wiki/SystemProcess/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -33,5 +33,5 @@
 Other static methods are:
 `int getCPUnumber()` - to get the number of CPUs assuming hyperthreading,
 `HashMap&amp;lt;integer, string=""&amp;gt; getProcesses()` - to get all processes on a machine,
-`ArrayList&amp;lt;integer&amp;gt; getProcessIDs(String pname, boolean printExceptionMsg`) - to get PIDs of all specific processes (e.g, "chrome.exe")
+`ArrayList&amp;lt;integer&amp;gt; getProcessIDs(String pname, boolean printExceptionMsg)` - to get PIDs of all specific processes (e.g, "chrome.exe")
 `void checkRMIregistry()` - checks whether RMI registry is running on a machine and tries to start it if not.
&amp;lt;/integer&amp;gt;&amp;lt;/integer&amp;gt;&amp;lt;/integer,&amp;gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">ENGITEX</dc:creator><pubDate>Fri, 26 Jan 2024 02:02:39 -0000</pubDate><guid>https://sourceforge.net37e473364e3fba77e89cab22bcfe2b16be5de2e5</guid></item><item><title>SystemProcess modified by ENGITEX</title><link>https://sourceforge.net/p/java-utility-classes/wiki/SystemProcess/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -28,3 +28,10 @@
 `boolean SystemProcess.setProcessAffinity(char[] aff)`
 returns `true` if the requested affinity has been set and `false` otherwise.
 For example, affinity '0001' will assign the process to the 4th CPU.
+Statics method `boolean setProcessAffinity(int pid, char[] aff)` does the same for a process with a known PID.
+
+Other static methods are:
+`int getCPUnumber()` - to get the number of CPUs assuming hyperthreading,
+`HashMap&amp;lt;integer, string=""&amp;gt; getProcesses()` - to get all processes on a machine,
+`ArrayList&amp;lt;integer&amp;gt; getProcessIDs(String pname, boolean printExceptionMsg`) - to get PIDs of all specific processes (e.g, "chrome.exe")
+`void checkRMIregistry()` - checks whether RMI registry is running on a machine and tries to start it if not.
&amp;lt;/integer&amp;gt;&amp;lt;/integer,&amp;gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">ENGITEX</dc:creator><pubDate>Fri, 26 Jan 2024 02:02:19 -0000</pubDate><guid>https://sourceforge.net53a40ae2c44a596429b52dd2a8165de721313cfd</guid></item><item><title>SystemProcess modified by ENGITEX</title><link>https://sourceforge.net/p/java-utility-classes/wiki/SystemProcess/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -1,3 +1,30 @@
 The library SystemProcess has several object methods as well as some static methods
 to start a system process, to attribute settings (e.g. CPU affinity), get its PID, destroy, check its current status, to get a list of all running processes.
 The attached source code file** SystemProcessExample.java** seems to be self-explanatory. It shows a few expected use cases of the library.
+
+
+`SystemProcess(List&amp;lt;string&amp;gt; commandArgs)`
+creates an object without actually starting the process.
+0th String in `commandArgs` is the executable name.
+
+`int pid = SystemProcess.start(String pname, boolean destroyIfUnknownPID)`
+starts the process with trying to get its PID.
+`destroyIfUnknownPID` defines whether to destroy a process whose PID could not be retrieved.
+`SystemProcessException` with "process id cannot be defined" message will be thrown in any case, no matter what `destroyIfUnknownPID` was.
+This method is a workaround for earlier Java versions (before 9.0) which have no built-in method to get the PID.
+
+An easier way to start a process without getting its PID is
+`void SystemProcess.start() `
+
+`void SystemProcess.waitForSeconds(int seconds)`
+and similar methods wait either for the process to finish or for the timeout to expire.
+The calling thread is blocked.
+
+`String SystemProcess.readLine()` and similar methods all wait for the process to start (if needed) blocking the calling thread and then return a line or an integer from the process output stream.
+
+`boolean SystemProcess.setProcessPriority(int priority)`
+is not implemented yet.
+
+`boolean SystemProcess.setProcessAffinity(char[] aff)`
+returns `true` if the requested affinity has been set and `false` otherwise.
+For example, affinity '0001' will assign the process to the 4th CPU.
&amp;lt;/string&amp;gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">ENGITEX</dc:creator><pubDate>Fri, 26 Jan 2024 01:56:03 -0000</pubDate><guid>https://sourceforge.net7e90434143e3ccb0e54fd309c92fa7251ac32734</guid></item><item><title>SystemProcess modified by ENGITEX</title><link>https://sourceforge.net/p/java-utility-classes/wiki/SystemProcess/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -0,0 +1,3 @@
+The library SystemProcess has several object methods as well as some static methods
+to start a system process, to attribute settings (e.g. CPU affinity), get its PID, destroy, check its current status, to get a list of all running processes.
+The attached source code file** SystemProcessExample.java** seems to be self-explanatory. It shows a few expected use cases of the library.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">ENGITEX</dc:creator><pubDate>Fri, 26 Jan 2024 01:01:28 -0000</pubDate><guid>https://sourceforge.net2169eb2779df5220b5a59393c0d277d9861b19fb</guid></item><item><title>SystemProcess modified by ENGITEX</title><link>https://sourceforge.net/p/java-utility-classes/wiki/SystemProcess/</link><description/><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">ENGITEX</dc:creator><pubDate>Fri, 26 Jan 2024 00:59:38 -0000</pubDate><guid>https://sourceforge.net6395279a0c88a13603d18141afd16c48233a2162</guid></item></channel></rss>