A while back I released an application in Java. While I targetted it for Java 6, I realized that there was a significant Macintosh user base. At the time, Apple had not gotten around to creating a JRE 6 for their users, so I had to make the application compatible with both Java 5 and 6.
Now I've returned to that project and realize that I can't support those users any more; Sun won't let me download the JDK 5 anymore because it's end of life. So I'm caught at a crossroads; as far as I can tell, PPC Mac users still don't have a JRE 6 to use.
So I ask this question: How do I resolve this predicament? I still want to support those users, but I simply don't have a JDK with which to build. Has Apple released a JRE 6 for their PPC users? Is there an alternate way to get JDK 5 (other than becoming a business member of Sun)? Is there some alternative recommendation to supporting these users?
Regards,
-- Shirik
EDIT: Some additional info, if Apple has released Java 6 for PPC, how easy is it to get? I ask this because I'm still constantly seeing logs from my users which indicate PPC architecture with a Java 5 VM.
You could use -target 1.5 -source 1.5 with your Java 6 JDK, to generate 1.5-compatible class files.
You can download Java 5 from Sun. You just have to look in the right place.
http://java.sun.com/javase/downloads/previous.jsp - J2SE 5.0, 1.4.2, 1.3.1
http://java.sun.com/products/archive/ - all releases going back to JDK 1.1
Note that these are all existing public releases. The material you got from Sun would have said there would be no new public releases of Java 5.0. They were pointing out that if you needed patches for recently discovered security issues and other bug fixes for Java 5.0 etc, you would have to pay for them.
Obviously, JDKs for Apple platforms are not available from Sun, but this is nothing to do with the fact that Sun have "end-of-lifed" Java 5.0. The fact is that they have never been available from Sun ...
Having said that, in the long term you need to be able to migrate your application to Java 6.0, 7.0 (due out later this year) and so on. At some point you are going to have to draw the line and say "sorry ... no more updates" for the shrinking number of users with old PPC and 32-bit Intel Macs.
As far as I know, Apple has only released Java 6 for x86-64, and I'd be willing to bet my hat that they will never release Java 6 for either PPC or for plain old 32-bit x86 (note that every Mac released after about mid-2007 or so is x86-64).
Soylatte might work (I have not tried it myself).
If you want to support older platforms, including PowerPC macs, it is a good idea to write code that can run on older Java releases. These days Java 5 is a relatively safe bet, but you may want to go even further and e.g. use retroweaver to generate Java 1.4.
You can download a version of the OpenJDK 1.7 from intricatesoftware.com
it is, unfortunately, a headless build of the JDK; i.e., can't open a display, and hence can't use to run IntelliJ, but Eclipse runs on it just fine.
I'm running it on 10.5.8, on a PPC ("cheese grater",) with Eclipse 4.3.2 / Kepler, and it all seems to work fine. :-)
(though, in honesty, a new configuration on the box, so we'll see how it goes over time)
Related
I've a new computer with Debian 9 / 64bits.
After installing Netbeans 8.2 and Codename Plugin 5.0 if i try to open "CodenameOne Settings" or "CodenameOne Designer" nothing happens.
I've checked JRE_JAVA and JDK_JAVA and PATH environment variables and them points to the correct path.
I don't see any error message but the tools dont start.
I dont know what happens but i remember a similar issue in the old computer with Debian 6 / 32bits.
Can anybody help me?
Thanks a lot
Ramon Garcia
The default version of Java on Linux systems is OpenJDK which is a bit problematic due to its lack of JavaFX support. With newer JDKs we updated Codename One to download JavaFX dynamically as it was removed from the JDK but since the dynamic download only works with JDK 10 or newer (due to the way the people at Oracle compiled JavaFX) this would be the minimum version of OpenJDK.
So you can either install Oracle JDK 8 or Open JDK 11 to keep compatibility.
Notice you can track this issue by running the designer/gui builder from the command line and seeing the point of failure: https://www.codenameone.com/blog/tip-track-designer-guibuilder-issues.html
I have Mac OS X 10.9 and Java SE Runtime Environment (build 1.7.0_17-b02)... I had another version of JEdit (I guess JEdit 4) and Java 6 before and my JEdit was working fine.
Then I upgraded Java to Java 7 because NetBeans7.4 needed to be installed with Java 7 (and I needed this new NetBeans because I had a fatal issue with NetBeans 7.3.1). So anyway, I installed Java 7 and I installed NetBeans 7.4 and my netbeans is working perfectly now, but when I tried to run the JEdit it brought up an alert saying it needs Java SE 6 to run!
I did some search in the net, and it seems that JEdit 4.5 (and I guess JEdit 5.1 too!) should not have any issue with Java 7, So I installed JEdit 5.1.0... I expected that it should work and don't bring up that complain alert BUT it didn't work and brought up "Java SE 6 is needed" complain again ...
I still can run JEdit using this command, but I can't use Cmd+C & Cmd+V shortcuts for copy and paste and it kills me!
java -jar /Applications/jEdit.app/Contents/Resources/Java/jedit.jar
Is there anybody who knows why JEdit 5.1 is complaining about Java 6 and how to fix it?! I really appreciate your help!
https://sourceforge.net/tracker/?func=detail&aid=3615181&group_id=588&atid=100588
After almost 3 months struggling with jEdit I'm ready to give up... I still can't run jEdit like a normal app. What do you suggest to replace my jEdit?! The main feature I need is realtime access to the server files... Most of editors keep a local version of files, so they don't show the changes when they are made in the server side. for example when I switch to a new git branch on server, my netbeans is still showing the branch that I was working before switching, so I need to do a complete download on the project. Any idea?!
#Monica About one year later after your question, I've experienced the same issue with Mountain Lion (according to jEdit's homepage, 5.1.0 is still the current stable version).
I've installed jEdit in /Applications/Dev/ (not /Applications as most people do, I believe; that's not important except for designating the path, see below). I'm using Java 7.
The following works for me from the command line, like for you:
java -jar /Applications/Dev/jEdit.app/Contents/Resources/Java/jedit.jar
So, I used Automator to create a normal MacOS Application named "MyJEdit.app" as in the screenshot. Now I can launch MyJEdit instead of jEdit. Other java flags might be required, for instance to set the memory usage (cf java -help and java -X).
jEdit on Mac OS X and Java 7 is a long story of annoyances, and fine points that Apple did not get quite right up to Java 6, and Oracle still learning about native platform support in the past 1-2 years.
Starting with Jdk-7u40 it works technically quite well, even Retina displays, but jEdit needs to be adapted slightly.
jEdit 5.2 will probably work with Java 7 out of the box, but a few points are still open. See also the tracker item 3615000 at Sourceforge.
Here is a practical proof that it works: Isabelle/jEdit -- it is an application based on jEdit that is bundled differently than official jEdit 5.1.0.
This may be a longshot, but I NEED to get Java JRE 7 running on Mac 10.6. The official documentation states
Mac OS X System Requirements
Intel-based Mac running Mac OS X 10.7.3 (Lion) or later.
Administrator privileges for installation 64-bit browser
Is there any way I can trick the java JRE 7 into installing itself on OSX 10.6? Is there some community version of a JRE 7?
It can be done, just follow what this answer suggests. I successfully installed JDK 7 update 11 a couple of weeks ago. However I have only used it for some development, and am not sure if it runs e.g. Swing apps without issues.
No.
Easiest is most likely to install virtual box and run Ubuntu inside.
EDIT: The comments indicate that this is not for hobby use but a client. I would personally never base a commercial solution on unsupported software, and I hope it has been made absolutely clear to the client what this can result in.
A better solution might be recompiling your Java program for Java 6 (use the Eclipse compiler with -source and -target) and run it under Java 6. If you cannot do this - as you said NEED - then open a new question asking how to backport that facility to Java 6.
In order to help Java apps look more like native apps when run on Mac OS X, Apple created the Apple Java Extensions in order to make Java apps behave more like Mac OS X. These allow for things like handling the behavior of the "About" menu and supporting drag and drop onto the application icon.
However, I can't find anything indicating whether or not these extensions are included with Java 7 or even usable with Java 7. It is my understanding that Apple merged their OS X implementation into OpenJDK, but I'm not sure whether these extensions went with it. I do see that the goal for the Mac OS X port of OpenJDK aims to "Include a complete, native Cocoa-based UI Toolkit", but I can't find much about what this entails. Searching the web has not proved very fruitful and I have no idea about if they are compatible with Java 7 or are even included.
So I guess I have three questions:
Will a Mac running Java 7 be able to use the Apple Java Extensions?
Are they included in Java 7, and if not, can I download them to bundle into my app?
Are there any alternatives to these extensions that are Java 7 compatible?
Will a Mac running Java 7 be able to use the Apple Java Extensions?
Yes. They are included both in the Oracle distribution and in OpenJDK. See the second answer here below.
I can't vouch for the complete API as I only need a subset to support drag-drop behaviour on the app icon and on the app frame. I can confirm though this works as expected with OpenJDK 7. No problems on the distribution side either, as the app is on sale on the Mac App Store.
Are they included in Java 7, and if not, can I download them to bundle into my app?
They are included in OpenJDK 7, you can find the sources in /src/macosx/classes/com/apple and supported by Oracle as hinted by the messages and bug fixes readable on the macosx-port-dev mailing list.
They are also included in the Oracle distribution, unjar rt.jar to see them.
You don't have to download anything, just start using them in your editor:
Are there any alternatives to these extensions that are Java 7 compatible?
Not that I know of, but I doubt you need an alternative.
I am programming software in Java 7. The users of the software are not all up to date (especially the Mac users). Therefore I need an installer (Windows/OSX) that can be easily integrated with the software installation. There is a normal installer for Windows 7 so I am especially focused on finding one for the Mac. Bonus points if it can check for XCode and other requirements too).
I am thinking another option would be to just use some of the libraries from Java 7 (for example the file-system library). However, I think this might not be possible due to the version number in the compiled classes? I couldn't use a Java 6 compiler to compile these libraries either (because they are Java 7 code).
I don't think I am the only one with this problem. There must be a solution somewhere, but I haven't found it.
Any help would be appreciated.
For the best user experience I would recommend using PackageMaker to create a .pkg file which you can then give to your Mac users. That allows them to do a single click-to-install of your app.
Within the package you would bundle your app archive (JAR file), any necessary resources and two scripts, one to check for the existence of Java 7 on the target system, and the other to install it if not found. I would recommend bundling the latest version of OpenJDK7 with your pkg, at least until an official Java 7 SDK is released for the Mac.
JAva 7 is not yet officially supported on Mac OS X, if you are looking for a JAva 7 installer for mac Os X take a look at openjdk-osx-build project on Google Code.
Update: You shouldn't need Java 7 for what your doing.
A better solution is to use Java 6 + Third party JNI libraries (i.e: JNotify,JavaXT...)
Directory listener in Java using JNotify
as for Last Accessed Date you might need to write tiny bit of Objective-C and pass it back via JNI
JNI Development on Mac OS X
Mac OS X already comes with Java runtime on Snow Leopard (JRE6)
On Lion it will automatically download JRE6 if application needs it's
You can of course download preview release of JDK7 from Oracle, but remember this is preview software there are some parts still not working yet (for example: Java Web Start)
Oracle JDK7u4 Mac OS X Port Developer Preview Release
Edit: Oracle JDK 1.7 Preview Release only supports Mac OS X Lion