<p>Does Java impose any extra restrictions of its own. Windows (upto Vista) does not allow names to include</p>

<pre><code>\ / &lt; &gt; ? * :
</code></pre>

<p>I know HOW to validate names (a regular expression).</p>

<p>I need to validate filenames entered by users.  </p>

<p>My application does not need to run on any other platform, though, of course, I would prefer to be platform independent!</p>

No, you can escape any character that Java doesn't allow in String literals but the filesystem allows.
Also, if trying to port an Windows app to Mac or Unix it is best to use:
```
```
File.separator
```
```
To determine the correct file separator to use on each platform.