Mac free compilers

M

Michael Borgwardt

Does anyone know of any free Mac OS 10.2 compatible Java compilers.? (free)

AFAIK all Java SDKs are free and include a compiler. Doesn't MacOS actually
come with an SDK preinstalled?
 
M

matt

Michael said:
AFAIK all Java SDKs are free and include a compiler. Doesn't MacOS actually
come with an SDK preinstalled?

Yup, it comes with 1.3, but there's an update to 1.4.

M@
 
A

Andrew Thompson

| Michael Borgwardt wrote:
|
| > (e-mail address removed) wrote:
| >
| >> Does anyone know of any free Mac OS 10.2 compatible Java
compilers.?
...
| Yup, it comes with 1.3, but there's an update to 1.4.

Is Mac OS 10.2 the same as Mac OS X?

I heard that Mac OS 'X' (which, could mean '10'
...if we are Roman) came _standard_ with 1.4, and
that previous systems were stuck with 1.3..

Did I get that wrong?
 
M

matt

Typically when someone refers to OSX, it's 10.1. Jaguar was the next
incarnation, designated 10.2. Panther, the latest is 10.3.

I think the original OSX release 10.0 had 1.3, and the upgraded to java
1.4 in a patch to 10.2.something.

M@
 
S

Scott Ellsworth

Andrew Thompson said:
| Michael Borgwardt wrote:
|
| > (e-mail address removed) wrote:
| >
| >> Does anyone know of any free Mac OS 10.2 compatible Java
compilers.?
..
| Yup, it comes with 1.3, but there's an update to 1.4.

Is Mac OS 10.2 the same as Mac OS X?

Yes and no. Different people mean different things by MacOS X.
Programs compiled for 10.0 will work on 10.3, so developers may mean
"any version of MacOS 10" when they say their software requires MacOS X.
Few test on machines prior to 10.1, and I am starting to see people not
testing on 10.1.

For users, in my experience, they seem to mean "the version of MacOS X
on my computer", which is more often 10.1 or 10.2, with fairly
aggressive updates to 10.3 happening. I am a bit surprised, actually -
when I look around at friends and family, everyone I know is on 10.3 now.

At user group meetings, classes, and people I see in MicroCenter,
CompUSA, and the Apple store, MacOS X seems to mean 10.2 or 10.3 about
equally. I have not seen anyone mean 10.1 since Panther shipped.

10.0 had a 1.2 JVM, which went to 1.3 in 10.1. The 1.3 VM is the
default in Jaguar (10.2) with 1.4 as an optional download, while the 1.4
VM is the default in Panther (10.3) with 1.3 as an available VM, but not
the default.

Pre OS X (of any flavor) machines are limited to 1.1.8.

Scott
 
R

rbs

Andrew Thompson said:
Is Mac OS 10.2 the same as Mac OS X?

10.2 is an update/version of OS X. Ditto 10.1 and 10.3.
I heard that Mac OS 'X' (which, could mean '10'
..if we are Roman) came _standard_ with 1.4, and
that previous systems were stuck with 1.3..

It's pronounced "Ten" except by those who haven't been
paying attention.

Mac OS X did not include Java 1.4.1 until late this past year,
and I believe has been included standard with all releases of
OS X 10.3 (Panther) since Panther was released last autumn.

If the machine instead has some version of OS X 10.2 (Jaguar)
then you can easily get Java 1.4.1 on board by using Software
Update, if you haven't already done so. I certainly was running
Java 1.4.1 on my Jaguar machines prior to the release of Panther.

Back to the original question about free compilers, I have
been doing all my Java development for the past 20 months
using the development tools included in Mac OS X for free.
The IDE is currently known as XCode, but was previously
called Project Builder.
 
A

Andrew Thompson

| In article <[email protected]>,
.....
| > I heard that Mac OS 'X' (which, could mean '10'
| > ..if we are Roman) came _standard_ with 1.4, and
| > that previous systems were stuck with 1.3..
|
| It's pronounced "Ten" except by those who haven't been
| paying attention.

And, just how would you pronounce '10'
...as a base 'ten' word?
Did _you_ pay attention in school when they
were doing that 'counting thing'? ;-)
 
S

Steve W. Jackson

Andrew Thompson said:
::| Michael Borgwardt wrote:
:|
:| > (e-mail address removed) wrote:
:| >
:| >> Does anyone know of any free Mac OS 10.2 compatible Java
:compilers.?
:..
:| Yup, it comes with 1.3, but there's an update to 1.4.
:
:Is Mac OS 10.2 the same as Mac OS X?
:
:I heard that Mac OS 'X' (which, could mean '10'
:..if we are Roman) came _standard_ with 1.4, and
:that previous systems were stuck with 1.3..
:
:Did I get that wrong?
:
:--
:Andrew Thompson

Sort of. Mac OS X is the operating system name. The version started
with 10.0, and so on. 10.2 refers to Mac OS X 10.2 (aka Jaguar), which
was updated all the way through 10.2.8. It shipped with 1.3.1
installed, and near the end there was a 1.4.1 update available. The
latest release is Mac OS X 10.3 (aka Panther), which is now updated to
10.3.2, and it shipped with 1.4.1 installed. That includes the SDK as
well. Apps that don't specifically say otherwise will run with 1.3.1
when launched. There's some file inside the bundle that must either
exist or have certain contents (not certain) in order to cause the app
to use 1.4.1.

= Steve =
 
R

rbs

Andrew Thompson said:
| In article <[email protected]>,
....
| > I heard that Mac OS 'X' (which, could mean '10'
| > ..if we are Roman) came _standard_ with 1.4, and
| > that previous systems were stuck with 1.3..
|
| It's pronounced "Ten" except by those who haven't been
| paying attention.

And, just how would you pronounce '10'
..as a base 'ten' word?

Oddly enough, I keep running into people who pronounce
it "eks".

They seem to be Windows people, though, so I try not to
be seen with them too much.
 
R

rbs

Steve W. Jackson said:
Apps that don't specifically say otherwise will run with 1.3.1
when launched. There's some file inside the bundle that must either
exist or have certain contents (not certain) in order to cause the app
to use 1.4.1.

It's the Info.plist file in the application package, assuming
you've neatly wrapped the app in a package.

There's a plist property called JMVersion which specifies this.
For example, a value of "1.3*" means to use the latest version
of Java 1.3.x available, but not Java 1.4. But a value of "1.3+"
means to use the latest Java available, as long as it's at
least Java 1.3. Values of "1.4*" or "1.4+" are also possible.

If you've not appropriate packaged the Java app for Mac OS X,
then doubleclicking on a .jar file will fire up Java 1.4.x
if you havd OS X 10.3.
 
A

Andrew Thompson

| In article
|
| > Apps that don't specifically say otherwise will run with
1.3.1
| > when launched. There's some file inside the bundle that must
either
| > exist or have certain contents (not certain) in order to
cause the app
| > to use 1.4.1.
|
| It's the Info.plist file in the application package, assuming
| you've neatly wrapped the app in a package.

Steve's response raised further questions,
but I was still mulling over whether to submit
them.. Then we get to your response.

What worries me is your reference to 'you'.
Do you mean, 'you' the _user_ has to do something
specific on the Mac before they can access 1.4?
Is that what you are saying?
 
R

rbs

Andrew Thompson said:
"rbs" <[email protected]> wrote in message
| It's the Info.plist file in the application package, assuming
| you've neatly wrapped the app in a package.

Steve's response raised further questions,
but I was still mulling over whether to submit
them.. Then we get to your response.

What worries me is your reference to 'you'.
Do you mean, 'you' the _user_ has to do something
specific on the Mac before they can access 1.4?
Is that what you are saying?

The "you" above in "assuming you've neatly wrapped" is you
the programmer.

If you (the programmer) are using Apple's free ProjectBuilder
or XCode as your IDE, then it will do the appropriate packaging
for you, although you will of course need to set some values in
the project's target settings.

If you don't wrap the app in neat Apple packaging but simply
distribute it as a Jar file, it will still run but the user
will get whatever version of Java the OS thinks it should run.
Which is probably 1.4.x if their machine is up to date. (There
was a period last year when 1.4.1 was available for OS X but
the system would default to using 1.3.1.)
 
S

Steve W. Jackson

rbs said:
:In article <[email protected]>,
:
:
:> | It's the Info.plist file in the application package, assuming
:> | you've neatly wrapped the app in a package.
:>
:> Steve's response raised further questions,
:> but I was still mulling over whether to submit
:> them.. Then we get to your response.
:>
:> What worries me is your reference to 'you'.
:> Do you mean, 'you' the _user_ has to do something
:> specific on the Mac before they can access 1.4?
:> Is that what you are saying?
:
:The "you" above in "assuming you've neatly wrapped" is you
:the programmer.
:
:If you (the programmer) are using Apple's free ProjectBuilder
:eek:r XCode as your IDE, then it will do the appropriate packaging
:for you, although you will of course need to set some values in
:the project's target settings.
:
:If you don't wrap the app in neat Apple packaging but simply
:distribute it as a Jar file, it will still run but the user
:will get whatever version of Java the OS thinks it should run.
:Which is probably 1.4.x if their machine is up to date. (There
:was a period last year when 1.4.1 was available for OS X but
:the system would default to using 1.3.1.)

I'm not familiar enough with XCode or other tools to in any way
disagree. But I can tell you that 10.3 still has the 1.3.1 JVM on
board. It's my understanding based on some material I read recently
that the default JVM used by a packaged app will be 1.3.1 unless the
entry described (and I'm assuming it's correct) says to use 1.4.1 or
newer (and 1.4.2 developer previews are available).

The bottom line, though, is that there are now enough variations in OS X
that you've got the same potential issues as if you were supporting
Windows or Linux systems: more than one JVM could be available. That
means having to take appropriate steps, or deciding which language
features to avoid, or insisting users have the latest JVM, etc. The
waters are becoming less clear than before. :)

= Steve =
 
A

Andrew Thompson

| (The) waters are becoming less clear than before. :)

Yeah , ..why is that a smiley?
 
R

rbs

Steve W. Jackson said:
But I can tell you that 10.3 still has the 1.3.1 JVM on
board.

Yes, 'tis true.
It's my understanding based on some material I read recently
that the default JVM used by a packaged app will be 1.3.1 unless the
entry described (and I'm assuming it's correct) says to use 1.4.1 or
newer (and 1.4.2 developer previews are available).

You seem to be right. I just ran a test and if a packaged app has
/no/ JVMVersion setting in its Info.plist file, then you'll get
Java 1.3.1 even though Java 1.4.1 is on board.
The bottom line, though, is that there are now enough variations in OS X
that you've got the same potential issues as if you were supporting
Windows or Linux systems: more than one JVM could be available. That
means having to take appropriate steps, or deciding which language
features to avoid, or insisting users have the latest JVM, etc. The
waters are becoming less clear than before. :)

In my case, appropriate steps means I am using nothing from the
Java 1.4.1 API and specifcally have XCode configured to target
Java 1.3 when it compiles. Sure I may be missing out on some
nice features introduced in 1.4.1, but I rarely notice it and
the potential audience (OS X, Windows, whatever) is bigger than it
otherwise would have been.
 
A

Andrew Thompson

| In article
| "Steve W. Jackson said:
....the default JVM used by a packaged app will be 1.3.1
unless the
| > entry described (and I'm assuming it's correct) says to use
1.4.1 or
| > newer (and 1.4.2 developer previews are available).
|
| You seem to be right. I just ran a test and if a packaged app
has
| /no/ JVMVersion setting in its Info.plist file, then you'll get
| Java 1.3.1 even though Java 1.4.1 is on board.

Where is the logic there? It is idiotic!
1.3.1 apps will work under 1.4.1, whereas
a 1.4 app is not gonna work on 1.3..

Sounds like echos of the MS/JVM trick,
but the interesting thing is that while that
would work for a company that has a
stranglehold on the market, it certainly
will not for Apple.

For those that would care to investigate Mac/1.4
comatibility further, I found this page at Sun..
http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3
/
 
S

Steve W. Jackson

Andrew Thompson said:
::| In article
:<[email protected]>,
:
: > ....the default JVM used by a packaged app will be 1.3.1
:unless the
:| > entry described (and I'm assuming it's correct) says to use
:1.4.1 or
:| > newer (and 1.4.2 developer previews are available).
:|
:| You seem to be right. I just ran a test and if a packaged app
:has
:| /no/ JVMVersion setting in its Info.plist file, then you'll get
:| Java 1.3.1 even though Java 1.4.1 is on board.
:
:Where is the logic there? It is idiotic!
:1.3.1 apps will work under 1.4.1, whereas
:a 1.4 app is not gonna work on 1.3..
:
:Sounds like echos of the MS/JVM trick,
:but the interesting thing is that while that
:would work for a company that has a
:stranglehold on the market, it certainly
:will not for Apple.
:
:For those that would care to investigate Mac/1.4
:comatibility further, I found this page at Sun..
:http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3
:/

What you call idiotic makes perfect sense to me.

Since the bulk of OS X users are going to be using 10.2, which is not
guaranteed to have anything beyond 1.3.1 installed, defaulting to that
JVM simply means less trouble for the deploying developer. In addition,
there were some problems (bugs) in 1.3 which were fixed in 1.4, and I
found that workarounds for those sometimes cause unusual behavior if run
under a 1.4.x JVM. So I don't understand why you consider that idiotic.

More importantly, however, the presence of both JVMs gives you the
ability to specifically target one over the other -- for whatever reason
you might have. Is choice bad?

It's really not relevant to compare anything about OS X to any product
from M$. OS X has a BSD-style kernel -- as different as night and day.
But I fail to see any comparison at all between the M$ trick of having
their own JVM vs a Sun JVM. Sun doesn't produce one for Apple.

= Steve =
 
S

Scott Ellsworth

Andrew Thompson said:
| In article

unless the
| > entry described (and I'm assuming it's correct) says to use
1.4.1 or
| > newer (and 1.4.2 developer previews are available).
|
| You seem to be right. I just ran a test and if a packaged app
has
| /no/ JVMVersion setting in its Info.plist file, then you'll get
| Java 1.3.1 even though Java 1.4.1 is on board.

Where is the logic there? It is idiotic!
1.3.1 apps will work under 1.4.1, whereas
a 1.4 app is not gonna work on 1.3..

Not all 1.3.1 apps will work under _Apples_ 1.4.1 implementation. There
are bugs - just ask Mickey Segal.

There are two possibilities - they might be delaying because they want
to release 1.4.2 first, or they might have just not gotten around to it.
Given that a Swing app, by default, has the 1.4 key set, I suspect that
they figure the problem is solved. To tell them otherwise, file a bug
at bugreport.apple.com.

(After all, if they usually use XCode, it will, by default, come up with
1.4.x on Panther. The java team might not have seen the alternative
behavior in quite a while.)
Sounds like echos of the MS/JVM trick,
but the interesting thing is that while that
would work for a company that has a
stranglehold on the market, it certainly
will not for Apple.

I do not see that connection. Given that XCode-built apps already use
1.4.1 by default, I have to assume they just did not change or have not
yet gotten around to changing the default. What MS did was release a VM
that would not work with all java code of its release number, and that
would allow improper constructions. Apple's 1.3.1 _is_ a valid 1.3
implementation, just not a 1.4 implementation.

Again, if it bugs you, file a bug to let them know you care. I have
bugs filed demanding later versions of cvs and Perl for much the same
reason - I can install my own, but I do not want to.

Scott
(e-mail address removed)
Java, Cocoa, WebObjects and database consulting
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,754
Messages
2,569,527
Members
45,000
Latest member
MurrayKeync

Latest Threads

Top