Thursday, February 26, 2004
Getting Started With the NetBeans Platform
The word platform is used in two ways when talking about the NetBeans platform.
What we often call the platform should rather be referred to as the application framework or the application runtime. This means the smallest part of NetBeans that is able to run and which creates an environment for modules to be plugged in. This platform contains the Open APIs and the Core. We also consider the AutoUpdate module to be part of the platform.
On the other hand the platform also designates all the code (all modules) available for NetBeans. People who want to start building an application on top of NetBeans can choose modules which are of some use for their application and include them into the app. This enables developers to focus on the new functionality in the application. (Editor is good example of a module which can be used in many apps.)
For examples of real-world applications build on the NetBeans platform, please visit the 3rd party page.
This page summarizes what you should do to be able to start developing your application using the NetBeans platform.
Requirements
A computer with JDK 1.3 or greater installed and at least 192Mb of RAM (assuming you will use the IDE for development of your application - the platform itself consumes much less memory than the IDE built on top of it).
Download the IDE
While it is not absolutely necessary to build applications on the NetBeans Platform using the NetBeans IDE, using the IDE does offer some significant advantages:
The Open APIs Support module, which includes API documentation and wizards and tools to make it easier and faster to develop your modules.
The CVS support built into the IDE makes it easier to access the sources for people who don't like the command line.
The IDE can act as a test deployment environment for your modules as you develop them.
If you download the Autoupdate module (see below) you get the complete documentation of NetBeans APIs and full code completion of the API in the NetBeans editor.
...
Download the Open APIs Support module
The Open APIs Support module provides documentation and tools for building and testing modules. It also installs all of the documentation of the NetBeans Open APIs - the toolset you will use to write code that integrates with the Platform. You can download from netbeans.org using the Update Center on the Tools menu in the IDE - detailed instructions are available here .
Download the IDE.
Code your Modules
Using these tools, you can write your modules and test-deploy them in the development environment. You can find more information on how to get started writing modules here.
Locate the Open APIs documentation
Once you have installed the Open APIs Support module on your system, you have the documentation for the NetBeans APIs - the toolset you will use to create your modules. You will find it installed on the Javadoc tab in Explorer. Your first step should be to read it.
Try the New Module Wizard
The new module wizard is probably not the tool you'll need to build complex modules, but it is a great place to start and get an idea of the structure of a module. Run it from the Tools menu - it will create a set of source files and a module .jar file you can run to test your module. Examine the resulting code - when you find a piece of code you don't understand, try pressing CTRL-F1 to bring up Javadoc documentation for that class.
Look for good examples
The source code to a huge number of modules is available from netbeans.org via CVS. If there is a module that does something similar what want to do, take a look at what its author did - or even reuse parts of it!
Select modules you want to reuse
It is good idea to look at existing NetBeans modules and explore functionality of the modules before you start coding your application. There are plenty of modules which can be reused. Feel free to choose your set of NetBeans modules and distribute them with your application
Editor and version control, HTML support etc. are modules which are good candidates in many applications.
Dive in
There's nothing like writing and modifying code to get to know an API set. Don't be afraid to experiment! When you're comfortable enough to have a basic idea of what you need to do, start coding. And if you have a question, try the dev@openide mailing list.
Build and Package Your Application
After a few experiments with adding modules into NetBeans, you should start thinking about creating a build and distribution of your application ...
Checkout the NetBeans sources and build
It's very likely that, sometime during your experiments with the platform, you'll need to check out the NetBeans sources. Definitely once you decide to start building your application, it is recommended that you do so.
There is an option to use the pre-built NetBeans platform binaries (see below).
For more info about checking out the sources and building the platform, please see the Build & Run document and it's recommended reading section.
Or optionally download the platform binary
If you don't want or can't access the NetBeans sources and build the platform, you can download the NetBeans platform binaries. These binaries contain a runnable build of the NetBeans platform. It should be enough to add your modules (and optionally any NetBeans modules your app requires), package, and distribute.
Look at the Build & Run document for a description of possible customizations of the platform.
Package and distribute your application
When you are ready to ship your application, package up the platform and your modules (using your installer software of your choice or a simple .zip archive) and ship it!
***
The word platform is used in two ways when talking about the NetBeans platform.
What we often call the platform should rather be referred to as the application framework or the application runtime. This means the smallest part of NetBeans that is able to run and which creates an environment for modules to be plugged in. This platform contains the Open APIs and the Core. We also consider the AutoUpdate module to be part of the platform.
On the other hand the platform also designates all the code (all modules) available for NetBeans. People who want to start building an application on top of NetBeans can choose modules which are of some use for their application and include them into the app. This enables developers to focus on the new functionality in the application. (Editor is good example of a module which can be used in many apps.)
For examples of real-world applications build on the NetBeans platform, please visit the 3rd party page.
This page summarizes what you should do to be able to start developing your application using the NetBeans platform.
Requirements
A computer with JDK 1.3 or greater installed and at least 192Mb of RAM (assuming you will use the IDE for development of your application - the platform itself consumes much less memory than the IDE built on top of it).
Download the IDE
While it is not absolutely necessary to build applications on the NetBeans Platform using the NetBeans IDE, using the IDE does offer some significant advantages:
The Open APIs Support module, which includes API documentation and wizards and tools to make it easier and faster to develop your modules.
The CVS support built into the IDE makes it easier to access the sources for people who don't like the command line.
The IDE can act as a test deployment environment for your modules as you develop them.
If you download the Autoupdate module (see below) you get the complete documentation of NetBeans APIs and full code completion of the API in the NetBeans editor.
...
Download the Open APIs Support module
The Open APIs Support module provides documentation and tools for building and testing modules. It also installs all of the documentation of the NetBeans Open APIs - the toolset you will use to write code that integrates with the Platform. You can download from netbeans.org using the Update Center on the Tools menu in the IDE - detailed instructions are available here .
Download the IDE.
Code your Modules
Using these tools, you can write your modules and test-deploy them in the development environment. You can find more information on how to get started writing modules here.
Locate the Open APIs documentation
Once you have installed the Open APIs Support module on your system, you have the documentation for the NetBeans APIs - the toolset you will use to create your modules. You will find it installed on the Javadoc tab in Explorer. Your first step should be to read it.
Try the New Module Wizard
The new module wizard is probably not the tool you'll need to build complex modules, but it is a great place to start and get an idea of the structure of a module. Run it from the Tools menu - it will create a set of source files and a module .jar file you can run to test your module. Examine the resulting code - when you find a piece of code you don't understand, try pressing CTRL-F1 to bring up Javadoc documentation for that class.
Look for good examples
The source code to a huge number of modules is available from netbeans.org via CVS. If there is a module that does something similar what want to do, take a look at what its author did - or even reuse parts of it!
Select modules you want to reuse
It is good idea to look at existing NetBeans modules and explore functionality of the modules before you start coding your application. There are plenty of modules which can be reused. Feel free to choose your set of NetBeans modules and distribute them with your application
Editor and version control, HTML support etc. are modules which are good candidates in many applications.
Dive in
There's nothing like writing and modifying code to get to know an API set. Don't be afraid to experiment! When you're comfortable enough to have a basic idea of what you need to do, start coding. And if you have a question, try the dev@openide mailing list.
Build and Package Your Application
After a few experiments with adding modules into NetBeans, you should start thinking about creating a build and distribution of your application ...
Checkout the NetBeans sources and build
It's very likely that, sometime during your experiments with the platform, you'll need to check out the NetBeans sources. Definitely once you decide to start building your application, it is recommended that you do so.
There is an option to use the pre-built NetBeans platform binaries (see below).
For more info about checking out the sources and building the platform, please see the Build & Run document and it's recommended reading section.
Or optionally download the platform binary
If you don't want or can't access the NetBeans sources and build the platform, you can download the NetBeans platform binaries. These binaries contain a runnable build of the NetBeans platform. It should be enough to add your modules (and optionally any NetBeans modules your app requires), package, and distribute.
Look at the Build & Run document for a description of possible customizations of the platform.
Package and distribute your application
When you are ready to ship your application, package up the platform and your modules (using your installer software of your choice or a simple .zip archive) and ship it!
***
Monday, January 19, 2004
*** Eclipse Extension/Plug-in: LOMBOZ (OpenSource)
URL: http://www.objectlearn.com/index.jsp
Description: Lomboz is a free eclipse plugin for the J2EE developers. It is a tool with a simple philosphy: "No magic tricks". Lomboz is integrated with many popular open source J2EE tools such as: Jasper, XDoclet, Axis and Ant. And naturally eclipse and the eclipse java development toolkit JDT. "Lomboz for Eclipse essentially enables Java developers to build, test and deploy using J2EE based 100% Java Application Servers. Lomboz integrates various J2EE component and web application development tasks with Eclipse and some of the most popular application servers:"
Main features are:
-Wizards for creating and assembling J2EE modules
-JSP syntax checking code assist with TLD and HTML support
-Supporting all Java application servers with flexible launching and debugging capability- -Supported servers include JBoss, WebLogic Server, Tomcat, JOnAS, JRun, and almost any J2EE compliant server
-EJB Wizards & Development with code generators based on XDoclet
-Web Services Wizards code generators based on Apache Axis
-Flexible and customziable deployment script that can handle even most awkward scenarios.
Feature List:
- Building Web applications with HTML pages, servlets, JavaServer™ Page (JSP) files.
- JSP editor with syntax highlighting and code assist .
- JSP syntax checking.
- Generation of Web and EJB containers using wizards.
- Generation of EJB test clients using wizards.
- J2EE Web application archives (EAR), web modules (WAR) files and Ejb archive (Jar) file deployment support.
- Integrated EJB 1.1 and 2.0 (Session, Entity and Message Driven Beans) development with XDoclet.
- Enabling end-to-end local and remote testing of application servers.
- Ability to support almost any Java application server by extendable server definitions.
- Ability to debug live server-side code (JSP & EJBs) using the integrated Java debugger.
- Increasing productivity by using wizards and code generators
- Generate Web Services clients form WSDL files (using Apache Axis)
Lomboz has been tested for: Apache Tomcat, JBOSS, Resin, Orion, JRun, Oracle IAS, BEA WebLogic Server andIBM WebSphere
*** Comments on MyEclipse versus Lomboz for J2EE Development ***
You know when you find something free that works it is really hard to let go. That's what happened when I ran across Lomboz a while back when I was beginning my J2EE development learning using Eclipse. At the time is was very functional and worked pretty well.
Tonight, I decided to download MyEclipse Enterprise Workbench and give it a shot. Originally I stayed away from it because they wanted $$. Man, am I sorry I waited this long. Although they do basically the same thing, you can really tell a difference with MyEclipse.
With Lomboz I had to download an XML plugin. I could not get the new JSTL version to code complete in the JSP files. And I couldn't get Lomboz to deploy correctly and start Tomcat 5.
MyEclipse has it's own XML support. The syntax highlighting is 10 times better than that of Lomboz in the JSP view. (I know, I could have customized it). MyEclipse also has an internal preview for your JSP/HTML pages. Super cool! The price can't be beat either. $29.95/year membership fee and you get all the updates all year long. As soon as payday rolls back around, they are getting my money.
For all you Lomboz lovers out there, it's still a nice plugin. And it's free. So you can't beat that. I don't think I'll ever go back to it though. -- Gregg's Weblog
------------------
URL: http://www.objectlearn.com/index.jsp
Description: Lomboz is a free eclipse plugin for the J2EE developers. It is a tool with a simple philosphy: "No magic tricks". Lomboz is integrated with many popular open source J2EE tools such as: Jasper, XDoclet, Axis and Ant. And naturally eclipse and the eclipse java development toolkit JDT. "Lomboz for Eclipse essentially enables Java developers to build, test and deploy using J2EE based 100% Java Application Servers. Lomboz integrates various J2EE component and web application development tasks with Eclipse and some of the most popular application servers:"
Main features are:
-Wizards for creating and assembling J2EE modules
-JSP syntax checking code assist with TLD and HTML support
-Supporting all Java application servers with flexible launching and debugging capability- -Supported servers include JBoss, WebLogic Server, Tomcat, JOnAS, JRun, and almost any J2EE compliant server
-EJB Wizards & Development with code generators based on XDoclet
-Web Services Wizards code generators based on Apache Axis
-Flexible and customziable deployment script that can handle even most awkward scenarios.
Feature List:
- Building Web applications with HTML pages, servlets, JavaServer™ Page (JSP) files.
- JSP editor with syntax highlighting and code assist .
- JSP syntax checking.
- Generation of Web and EJB containers using wizards.
- Generation of EJB test clients using wizards.
- J2EE Web application archives (EAR), web modules (WAR) files and Ejb archive (Jar) file deployment support.
- Integrated EJB 1.1 and 2.0 (Session, Entity and Message Driven Beans) development with XDoclet.
- Enabling end-to-end local and remote testing of application servers.
- Ability to support almost any Java application server by extendable server definitions.
- Ability to debug live server-side code (JSP & EJBs) using the integrated Java debugger.
- Increasing productivity by using wizards and code generators
- Generate Web Services clients form WSDL files (using Apache Axis)
Lomboz has been tested for: Apache Tomcat, JBOSS, Resin, Orion, JRun, Oracle IAS, BEA WebLogic Server andIBM WebSphere
*** Comments on MyEclipse versus Lomboz for J2EE Development ***
You know when you find something free that works it is really hard to let go. That's what happened when I ran across Lomboz a while back when I was beginning my J2EE development learning using Eclipse. At the time is was very functional and worked pretty well.
Tonight, I decided to download MyEclipse Enterprise Workbench and give it a shot. Originally I stayed away from it because they wanted $$. Man, am I sorry I waited this long. Although they do basically the same thing, you can really tell a difference with MyEclipse.
With Lomboz I had to download an XML plugin. I could not get the new JSTL version to code complete in the JSP files. And I couldn't get Lomboz to deploy correctly and start Tomcat 5.
MyEclipse has it's own XML support. The syntax highlighting is 10 times better than that of Lomboz in the JSP view. (I know, I could have customized it). MyEclipse also has an internal preview for your JSP/HTML pages. Super cool! The price can't be beat either. $29.95/year membership fee and you get all the updates all year long. As soon as payday rolls back around, they are getting my money.
For all you Lomboz lovers out there, it's still a nice plugin. And it's free. So you can't beat that. I don't think I'll ever go back to it though. -- Gregg's Weblog
------------------
*** MyEclipse Enterprise Workbench ***
URL: http://www.myeclipseide.com
Cost: $33/year
New Features in v 2.6
Mac OS/X Support
EJB Wizards
XDoclet Support
Step Through Debuging for Included JSP Files
JSP Rendering
Archive Based Deployment
Enhanced Preference Management
Improved Sync-On-Demand error reporting
JSP Editor support for JSP 2.0 expression language
Enhanced Preference Management
HTML and JSP configurable formatting
Bejy Tiger Server Connector
JRun Server Connertor
Jonas Server Connector
Resin Server Connector
Eclipse 2.1.2 and 3.0 M4 support
DESCRIPTION: First, Why Eclipse? Eclipse has the potential to be much more than an IDE. We recognize at least four dimensions to the Eclipse platform:
▪ An open extensible IDE (for anything and nothing in particular)
▪ A universal tool platform and tools integration architecture
▪ A portable Java Windowing toolkit
▪ A Desktop application platform for business applications
With so much to offer - Eclipse's flexible architecture, distributed development, and community effort can provide as much to business solutions as Linux did to operating systems. MyEclipse was established to tackle all of these dimensions in succession and to catalyze the Eclipse movement into full J2EE & .Net capabilities. MyEclipse mission will be focused on delivering business value and maximizing developes productivity by focusing on immediate objectives:
▪ Round out Eclipse J2EE development, debugging, and deployment capabilities.(Review MyEclipse Enterprise Workbench delivery roadmap for more details)
▪ Provide an aggressive release schedule to deliver monthly incremental releases and updates.
▪ Tap into the growing plug-in community by certifying and integrating promising features.
▪ Focus delivery priorities on features that transulate into direct productivity gains.
▪ Provide objective and impartial evaluation of emerging Eclipse products and plug-ins.
▪ Provide a much needed support to Eclipse users and developers. (Check outMyEclipse Support Services for more information)
▪ Follow closely MyEclipse members and the Eclipse community needs to deliver timely and usefull solutions
MyEclipse will provide an objective and impartial evaluation of emerging Eclipse products and plug-ins
Most developers would prefer to recieve MyEclipse solutions and services at no charge. So would we, but we need to keep the lights on. Therefore we will begin charging a $29.95 annual membership fee starting May 15, 2003. This is less than 10 cents per day, and is backed by our guarantee to improve your productivity or your money back. Think of of this token fee as a donation or support fee. Until then, future members can take advantage of our guest trial membership and put MyEclipse to the test - we promise to continually surprise you.
URL: http://www.myeclipseide.com
Cost: $33/year
New Features in v 2.6
Mac OS/X Support
EJB Wizards
XDoclet Support
Step Through Debuging for Included JSP Files
JSP Rendering
Archive Based Deployment
Enhanced Preference Management
Improved Sync-On-Demand error reporting
JSP Editor support for JSP 2.0 expression language
Enhanced Preference Management
HTML and JSP configurable formatting
Bejy Tiger Server Connector
JRun Server Connertor
Jonas Server Connector
Resin Server Connector
Eclipse 2.1.2 and 3.0 M4 support
DESCRIPTION: First, Why Eclipse? Eclipse has the potential to be much more than an IDE. We recognize at least four dimensions to the Eclipse platform:
▪ An open extensible IDE (for anything and nothing in particular)
▪ A universal tool platform and tools integration architecture
▪ A portable Java Windowing toolkit
▪ A Desktop application platform for business applications
With so much to offer - Eclipse's flexible architecture, distributed development, and community effort can provide as much to business solutions as Linux did to operating systems. MyEclipse was established to tackle all of these dimensions in succession and to catalyze the Eclipse movement into full J2EE & .Net capabilities. MyEclipse mission will be focused on delivering business value and maximizing developes productivity by focusing on immediate objectives:
▪ Round out Eclipse J2EE development, debugging, and deployment capabilities.(Review MyEclipse Enterprise Workbench delivery roadmap for more details)
▪ Provide an aggressive release schedule to deliver monthly incremental releases and updates.
▪ Tap into the growing plug-in community by certifying and integrating promising features.
▪ Focus delivery priorities on features that transulate into direct productivity gains.
▪ Provide objective and impartial evaluation of emerging Eclipse products and plug-ins.
▪ Provide a much needed support to Eclipse users and developers. (Check outMyEclipse Support Services for more information)
▪ Follow closely MyEclipse members and the Eclipse community needs to deliver timely and usefull solutions
MyEclipse will provide an objective and impartial evaluation of emerging Eclipse products and plug-ins
Most developers would prefer to recieve MyEclipse solutions and services at no charge. So would we, but we need to keep the lights on. Therefore we will begin charging a $29.95 annual membership fee starting May 15, 2003. This is less than 10 cents per day, and is backed by our guarantee to improve your productivity or your money back. Think of of this token fee as a donation or support fee. Until then, future members can take advantage of our guest trial membership and put MyEclipse to the test - we promise to continually surprise you.
Saturday, January 17, 2004
*** Java Update for Mac OS X Panther
About to load Panther Disk 3 files for XCode and related development utilities.
Then re-test Eclipse, and consider whether to install or hang on to NetBeans as an alternative environment. Also whether to load BlueJ as a tutorial way to learn Java.
(But I really need a prompted hands-on method of learning the intricacies of Java..)
About to load Panther Disk 3 files for XCode and related development utilities.
Then re-test Eclipse, and consider whether to install or hang on to NetBeans as an alternative environment. Also whether to load BlueJ as a tutorial way to learn Java.
(But I really need a prompted hands-on method of learning the intricacies of Java..)
*** Wednesday, August 27, 2003
Apple Dev - Java - Core APIs: JNI
JNI libraries are named with the library name used in the System.loadLibrary method of your Java code prefixed by lib and suffixed with .jnilib. For example, System.loadLibrary('hello') loads the library named libhello.jnilib.
In building your JNI libraries, you have two options. You can either build them as bundles or as dynamic shared libraries (sometimes called dylibs). If you are concerned about maintaining backward compatibility with Mac OS X version 10.0, you should build them as a bundle; otherwise you probably want to build them as a dylib. Dylibs have the added value of being able to be prebound, which speeds up the launch time of your application. They are also easier to build if you have multiple libraries to link together.
To build as a dynamic shared library, use the -dynamiclib flag. Since your .h file produced by javah includes jni.h, you need to make sure you include its source directory. Putting all of that together looks something like this:
cc -c -I/System/Library/Frameworks/JavaVM.framework/Headers sourceFile.c
cc -dynamiclib -o libhello.jnilib sourceFile.o -framework JavaVM
To build a JNI library as a bundle use the -bundle flag:
cc -bundle -I/System/Library/Frameworks/JavaVM.framework/Headers -o libName.jnilib -framework JavaVM sourceFiles
For example, if the files hello.c and hola.c contain the implementations of the native methods to be built into a dynamic shared JNI library that will be called with System.loadLibrary(?hello?), you would build the resultant library, libhello.jnilib, with this code:
cc -c -I/System/Library/Frameworks/JavaVM.framework/Headers hola.ccc -c -I/System/Library/Frameworks/JavaVM.framework/Headers hello.ccc -dynami"
# posted by Andy @ 1:28 PM
¶ 1:29 PM
Apple Dev Tools Installation & Test
Apple Dev Tools
DevTools Dec 2002 Set Installed & GCC 3.3 (Dec2002) & Java 1.4.1 Updates Applied
Java Installation Note
may need to apply Java 1.4.1 Full again and then re-apply Java 1.4.1 Update
Test Java Compile with Project Builder
But 1 Compile Error: JNI Header Not Found
ADC: JNI Headers
Radar # 2797762: JNI headers may become outdated with changing JDK versions.
Description: With each JDK release, there is the possibility that JavaSoft will update the JNI (and related headers). Mac OS X uses the JavaVM framework to allow binary compatibility between JDK releases with no work required by the developer. However, it may sometimes be necessary to provide more than one version of JDK headers to support old versions of software.
Resolution: JDK headers have been moved to Header directories that are versioned by JDK version and not the framework version. The existing paths continue to work by virtue of symbolic links being added. Developers should update their native source code and projects to adapt to the new layout, where necessary.
Apple Dev - Java - Core APIs: JNI
JNI libraries are named with the library name used in the System.loadLibrary method of your Java code prefixed by lib and suffixed with .jnilib. For example, System.loadLibrary('hello') loads the library named libhello.jnilib.
In building your JNI libraries, you have two options. You can either build them as bundles or as dynamic shared libraries (sometimes called dylibs). If you are concerned about maintaining backward compatibility with Mac OS X version 10.0, you should build them as a bundle; otherwise you probably want to build them as a dylib. Dylibs have the added value of being able to be prebound, which speeds up the launch time of your application. They are also easier to build if you have multiple libraries to link together.
To build as a dynamic shared library, use the -dynamiclib flag. Since your .h file produced by javah includes jni.h, you need to make sure you include its source directory. Putting all of that together looks something like this:
cc -c -I/System/Library/Frameworks/JavaVM.framework/Headers sourceFile.c
cc -dynamiclib -o libhello.jnilib sourceFile.o -framework JavaVM
To build a JNI library as a bundle use the -bundle flag:
cc -bundle -I/System/Library/Frameworks/JavaVM.framework/Headers -o libName.jnilib -framework JavaVM sourceFiles
For example, if the files hello.c and hola.c contain the implementations of the native methods to be built into a dynamic shared JNI library that will be called with System.loadLibrary(?hello?), you would build the resultant library, libhello.jnilib, with this code:
cc -c -I/System/Library/Frameworks/JavaVM.framework/Headers hola.ccc -c -I/System/Library/Frameworks/JavaVM.framework/Headers hello.ccc -dynami"
# posted by Andy @ 1:28 PM
¶ 1:29 PM
Apple Dev Tools Installation & Test
Apple Dev Tools
DevTools Dec 2002 Set Installed & GCC 3.3 (Dec2002) & Java 1.4.1 Updates Applied
Java Installation Note
may need to apply Java 1.4.1 Full again and then re-apply Java 1.4.1 Update
Test Java Compile with Project Builder
But 1 Compile Error: JNI Header Not Found
ADC: JNI Headers
Radar # 2797762: JNI headers may become outdated with changing JDK versions.
Description: With each JDK release, there is the possibility that JavaSoft will update the JNI (and related headers). Mac OS X uses the JavaVM framework to allow binary compatibility between JDK releases with no work required by the developer. However, it may sometimes be necessary to provide more than one version of JDK headers to support old versions of software.
Resolution: JDK headers have been moved to Header directories that are versioned by JDK version and not the framework version. The existing paths continue to work by virtue of symbolic links being added. Developers should update their native source code and projects to adapt to the new layout, where necessary.
** Sunday, August 17, 2003
Java on Mac OSX
Just some initial thoughts on Java Dev
Requires Java 1.4.1 for Mac OSX - gotta download all 20 MB i think.
Then what?
Java on Mac OSX
Just some initial thoughts on Java Dev
Requires Java 1.4.1 for Mac OSX - gotta download all 20 MB i think.
Then what?