I'm making a Java ECG Software which needs to be able to communicate with an ECG through serial communication. However, the java API javax.comm is nowhere to be found. I have searched Oracle but there's no download link whatsoever.
Does anyone know where I can find the API?
I don't care if it's for Linux(Ubuntu) or OS X. I found an old API for windows (which is no longer supported) but it did not work on my 64 bit windows machine.
You can find it with this search : https://www.google.com/search?q=%22comm.jar%22+Index+of
However it's probably the same old version you already have.
It's been a while since I worked with it (for a credit card scanner/signature pad). I remember using rxtx, though I don't remember if I also used an oracle download. I believe the rxtx implementation was sufficient. Just be aware that mixing 32 bit linux libs with 64 bit linux jvms is a no-no. At a minimum, you'd need a recompile or the linking/loading process of the lib will fail.
http://rxtx.qbang.org/wiki/index.php/Main_Page
Related
Why do we have two versions of Java ?
The jdk from Oracle and the one from OpenJDK.
And why is it that
OpenJDK is available only for Linux ?
And on Wikipedia,I find that
Java is open source .But ,I find a copyright information inside the
Oracles JDK saying everything restricted ???
Open JDK is trying to reinvent the wheel by giving you freedom of choice (you can use cool OpenJDK JVM or the mainstream Oracle one)
If something is that cool OBVIOUSLY it's only for linux
that question is out of SO scope, besides I'm not sure myself...
There are many java distributions. Oracle JDK is just the reference one, but others like Open JDK exist. IBM has its own, for example. While they all share the mandatory set of features, each one goes beyond that and implement their own proprietary set. Parts of Oracle JDK are not open source and it requires licensing for embedded devices, and this is why Open JDK exists - to provide a fully free Java implementation. Now, Java, as in "the spec" is open source and most of Oracle JDK is as well. Other companies are allowed to make their own implementations as long they pass Oracle's test that certify compatibility. Still, Oracle owns the Java trademark and I think the ability to certify other implementations. Somewhere there lies in the dispute with Google and their Java implementation (same with now defunct Apache Harmony).
As for the Open JDK on Windows, it can be done by building the sources (like this guy here did). The binaries do not exists probably because there was no demand. It's only Linux that imposes limitations on proprietary software.
I have studied Java Web Start and found it complex and clumsy for my purposes. In addition, my app needs to access the PC resources, which causes more hoops to be jumped through with Java Web Start. To add to the difficulties I need to access a 32-bit native library (libvlc) so I need to insure that my app runs under 32-bit Java. Is there an easy way to deploy my app without resorting to Java Web Start? Needless to say, I want everything to be contained in a single .exe file.
I would start by searching the Internet for keywords such as "java 2 exe" and "jar to exe", etc. Doing so yields many freely available software packages that convert Java programs into Windows executables, for example:
JexePack - http://www.duckware.com/jexepack/index.html
JarToExe - http://www.regexlab.com/en/jar2exe/
JSmooth - http://jsmooth.sourceforge.net/
And the list goes on. Perhaps one of them meets your needs?
I am answering my own question to help people understand how to do this, which has taken me some number of days to figure out.
My initial problem was that my app would run on some versions of Windows but on others it was having problems finding the libvlc native library. I finally figured out that my app must run with 32-bit Java in order to use the 32-bit native library. Thus, the problem then became how to insure that the user started my app with 32-bit Java.
I read about Jar2Exe (http://www.regexlab.com/en/jar2exe/) in another post and decided to check it out. It is a great little program that is very configurable so I figured that it must be able to handle my 32-bit Java problem. In fact, it does so without even needing to do any configuration. The resulting .exe file contains my app along with all the required jar files and starts up with the 32-bit Java. I am very pleased with this program and plan to buy a license, which is very cheap.
Hope this saves time for other people who are trying to solve a similar problem.
I am using the javax.comm API to help my program communicate with hardware over serial port. I am using the Windows 7 and NetBeans IDE 9.
I used the common Java program to check the available ports on my PC. The program compiled and ran without error. However it returned nothing.
What can I do to use the javax.comm API on Windows? It seems win32com.dll does not work with a 64-bit operating system.
This is how I got it to work.
I've tested it using JDK 1.6 (32bit) on my Windows 7 64bit machine.
Install 32bit JDK.
Copy 'win32com.dll' to JDK_HOME\jre\bin.
Copy 'javax.comm.properties'to to JDK_HOME\jre\lib.
Copy 'comm.jar'to to JDK_HOME\jre\lib\ext.
Now run your program and it should work.
Recent 2.2pre versions of RXTX include binaries for 64-bit windows. I think the latest RXTX information source has changed to this: http://rxtx.qbang.org instead of http://www.rxtx.org though.
At one point the RXTX library included drop-in support for using the javax.comm api. I'm not sure if it still does, but the main change then to use the "native" RXTX packaging was primarily just a package name change.
it seem the win32com.dll does not work with 64-bit Operating system
I think that is correct. In fact, according to the relevant download page, Oracle no longer supports the javax.comm API for any Windows platform.
However, I found this page which has a 64bit build of the DLL, among other things.
EDIT
By an astounding piece of research (i.e. following the links and reading stuff) I found the download page for the latest RXTX, which claims to have binaries for various platforms. If your platform is not there, try building from source. If that doesn't work, consider investing the effort in making it work.
I've integrated RXTX libraries into some of my earlier projects and i found out this bug it has while working with comm ports under windows, so you might want to check this first before going into some serious app design.
Communication works fine, never had any problem with that, but once you open the port you cannot close it and reopen, if you use method provided for closing port, your app just hangs, no exception no nothing. I found later the same behavior described by users on web, but never really found the solution to this problem.
Again, this might help you save some time, check it first.
Latest release, which is this http://rxtx.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip, doesn't have this issue no more. Unfortunately i think its solved only for windows, its still there on Linux binaries, and i haven't tried it on mac.
Have you got a look on RXTX ? I think it is still active.
I had this issue...on a 64 bit machine..running windows 7
a legacy application developed in jdk 1.4, for 32 bit windows... and using the win32 comm api binary
i tried the RXTX binary for 64 bit and i was able to communicate with my device on some level... but... there were other problems as my application referenced a version of the jpos library that internally was using the comm-api (had import javax.comm.*... in some Serial...Listener class)....
I installed a 32 bit jdk and setup the comm-api binaries for 32 bit windows as directed here...setup comm api on windows
all was fine afterwards
You might be interested at an alternative library I've authored: http://code.google.com/p/jperipheral/
I am Java developer who is using Eclipse on a X86 computer to code. I am considering to buy for other reasons an Desktop Mac computer and I would like to use this computer to do my coding work. I know there is a Eclipse version for Macs, I am asking if there may be some problems/issues related to Macintosh computers. Thanks!
It really depends what you'll be doing.
In terms of the IDE, it will work just fine and you can copy your files/projects over and they will "just work".
However, there are some things you need to be weary of:
Key mappings might be different
You won't be able to do any JavaME programming as there is no Mac toolkit for that.
If you're doing Swing development, make sure you test your code on your target environment as things might look different.
Other than that, Macs work fantastic for Java coding.
No, Eclipse works just as well on a Mac as on a Windows or Linux computer. Key bindings are different though; if you're used to the shortcut keys of Eclipse on Windows, you'll need to get used to different shortcuts on the Mac.
Apple just announced that they are deprecating their Java platform. That may cause some problems in the future. Update: however, I have seen that Eclipse works with the soylatte OpenJDK port.
http://developer.apple.com/tools/eclipse.html
and if you want the non-Apple-bs experience:
http://cdtdoug.blogspot.com/2010/04/mac-gets-no-love.html
From my personal experience, Eclipse actually works better on OS X and Linux than it does on Windows. I'm a professional plugins developer and I do all my coding on Mac. I blog about Eclipse and Mac related topics, so I invite to read it.
Adding to the limitations mentioned in other answers, if you have specific plugins that you need, not all support Macs, although most. For example, The Eclipse TPTP (short for profiler) project doesn’t profile on Mac. There are alternatives in most cases, though (AFAIK, not free in the case of TPTP).
Personal experience for RCP-development: 2G of RAM are not enough (at least not for our project), so the current MacBook Airs are not suitable at all for development. But then, you're talking about desktop Macs anyway, so if you can get the >2G, it should be fine.
During the 64bit transition phase, there were some glitches with missing 64bit Cocoa, but that has been resolved. Some of the extensions may be platform specific: currently, TPTP (Test and Performance Tools Platform Project) still has some limitation.
eclipse for mac works exactly as you know it from your pc. the only thing that differs is the arrangement of some keys (the # is on L, the arrangement of the braces differs a bit)
Eclipse works fine, but with different keybindings.
I have found that sharing files with other computers - e.g. through a source repository - may give you character set conversion issues. If you stay with pure ASCII in your source you should not have any problems.
You can download Eclipse 3.6.1 from eclipse.org directly (where your platform is autodetected) or from http://download.eclipse.org/eclipse/downloads/drops/R-3.6.1-201009090800/index.php#EclipseSDK
I would suggest getting the Java EE version from the frontpage. It contains web stuff I use regularily.
We have a web application that uses a third party java applet for encryption and authentication. It's always been a bit finicky, but right now it has me pulling my hair out.
Over the weekend, we migrated to a MS Load balanced cluster, upgraded our DNS, and rolled out all of the MS patches. Now the applet fails for all of our users who are using the MSJVM. The solution is simple, we just have them install a recent version of Sun, but I cannot figure out why the MSJVM is failing.
Every other configuration works (Firefox, Safari, IE with Sun on Window, Linux or Mac) or I can get to work with a reasonable amount of effort, but nothing I can do will make MSJVM work.
I understand the MSJVM is depreciated, but nothing on the site (http://www.microsoft.com/mscorp/java/default.mspx) indicates that it should no longer work. I am looking for information that will either allow us to make the MSJVM work so we can determine if it's easier to fix or install Sun, or that I can use to force our desktop configuration team to update the company policy on the MSJVM.
Thanks
Update 2009.10.19: It's clear that something disabled the MSJVM. We should reject users who are using that JVM but it hasn't been a priority to update the site. We've just been waiting them to fail and then directing them to install SUN.
Most likely the Java version used by your applet is superior than the one supported by the MSJVM.
I have followed your link but I could not find what that version was. I think is something previous to Java 1.2 ( like java 1.1.17 or soemthing like that )
If you happen to have an error message or a screenshot, troubleshooting would be easier.
But, yes, the definitive answer would be to use the latest version of the Java plugin.
I remember there were scripts ( javascript ) tha help to identify the Java version and provided a link to download the latest one, but I cannot find it now. Take a look at java.sun.com and see if you can find it.
Microsoft's JVM was never Java-compliant: http://en.wikipedia.org/wiki/Microsoft_Java_Virtual_Machine
The MSJVM never got beyond Java 1.1.x, which is very old. So any functionality which appeared with Java 1.2 (Java 2, as it was called), such as Swing, won't work. With the MSJVM, you're pretty much limited to AWT for the UI.
Licensing issues and lawsuits triggered by incompatibilities introduced by Microsoft (such as the delegate keyword) meant that Microsoft never took their JVM further.
As of July 30th 2009 I think it was after being extending numerous times the MS JVM is finally no longer supported and at end of life.
A workaround I have seen used before if you absolutely cannot rewrite it would be to use a custom VB script to launch the application, The script would do a quick change on the registry to make MSJVM the default when the app was launched then swap it back to whatever the setting was for normal operation.
i.e.
Set Registry for MS JVM as default
Launch Application
Reset Registry for Sun JRE 1.5.0_X as default.
I dont have the code handy, you should be able to find VB registry modification with a quick google. I can probably dig it up if your stuck.