C:/something is a valid filename, indeed (since Java doesn't care about / or \).
However, a URI or URL needs a protocol. This could be http for the WWW, ftp, mailto for email addresses, or file for local files. This protocol is followed by a colon and some slashes, dependant on the protocol. http and ftp require two (for
http:// and
ftp://), mailto zero (e.g. mailto:you@yourdomain.com), and file usually takes two as well.
So, for a local file URL or URI, you get
file:// followed by the file path.
Now entries within a JAR file (and a ZIP file as well!) can be directly pointed to, using the special JAR protocol. This is inserted before the regular protocol. Then, at the end of the URI / URL that points to the JAR file, you add a !, followed by the absolute name of the entry.
So if your JAR file's URI is "file://C:/my.jar", the URI for the manifest file would be "jar:file://C:/my.jar!/META-INF/MANIFEST.MF". I haven't tried, but it should work for JARs on a webserver as well.