JDK6 libraries - compatibility with JDK7 - backwards-compatibility

Is JDK7 backward compatible with JDK 6? Specifically, if I have some jars compiled using JDK6, will I able to use them while developing in JDK7?

Is JDK7 backward compatible with JDK 6?
Read official document about incompatibilities between JDK 6 and 7
Look at this table for independent analysis of API changes. The backward binary and source compatibility of Jre classes between 6 and 7 versions is estimated at 95%:
...
The report is generated by the japi-compliance-checker tool.

You'll be able to use class files from previous JREs/JDKs. Compatibility forwards is supported. However you won't be able to go backwards (e.g. JDK7 to an earlier JRE/JDK). The class file format for JDK7 has changed to reflect such things as invokedynamic.
Some more in-depth information discussed here.

Yes, you can certainly use older .jar files and .class files in your current development with newer compilers :)

Related

How to downgrade Kotlin version

I've build a complete empty Project and I got this error:
e: This version (1.0.0-alpha13) of the Compose Compiler requires Kotlin version 1.4.30 but you appear to be using Kotlin version 1.4.32 which is not known to be compatible. Please fix your configuration (or suppressKotlinVersionCompatibilityCheck but don't say I didn't warn you!).
What can I do? (Sorry for this dumb question, but I'm complete new to Kotlin)
Thanks, Boothosh
You can go to Plugins in the IDE settings and uninstall the Kotlin one there, and do Install From Disk (under the gear icon) and use one of these: https://plugins.jetbrains.com/plugin/6954-kotlin/versions - you'd probably need to update your gradle files too (I haven't done any of this before so I can't tell you if it works or if you'll run into problems)
Why not just use a newer version of Compose though? They're up to beta 6 now - I can't even see an alpha 13 listed! Seems like a better idea all round, unless there's a really specific reason you need that version you're using?

Side-effect of deprecation of MBCS support for MFC in VS 2013

I just tried to compile an old MFC app under VS2013. It complained that non-Unicode MFC applications were deprecated, and refused to compile. Which is somewhat contrary to this announcement that talks about deprecating support for MBCS. Until now there were three choices for the Character Set option:
Unicode
MBCS
Not set
Personally, I'm entirely comfortable with dropping support for MBCS - I neither want nor need MBCS. But nor do I want nor need Unicode - ANSI/ASCII is just fine by me. So insisting that every MFC application henceforth must speak Unicode, and (in effect) provide the foundations of a platform support all possible languages, no matter who its intended audience is, seems... extreme. Am I missing something? Should I still be able to compile an MFC application with no character set specified under VS2013?
You can. Currently all my programs use the Unicode library. Except one older one, that includes very old code from previous versions and this program is needed for update support for this od version...
Currently there is an Addon that still supports MBCs.
Vote for it
As I understand the discussion (see comment of Mark Davis dated December 2014) such an Addon will be available up and including VS2015 (whatever Version is meant).
To be more precise what happens when you select "None" for the character set:
You program is linked against the MBCS Version of the MFC
Also the Windows SDK will Default to the MBCS Version of the API. So i.e. GetWindowTextA is calls instead of GetWindowTextW
So in fact. Setting _UNICODE and _MBCS to nothing just Defaults to _MBCS...
Internally the SDQ always checks a if UNICODE (not _UNICODE) is set. If not the MBCS Version is chosen.

Netbeans changed after UML installed

I installed and used a UML plugin found here: UML Plugin for Netbeans 7.0?
Afterword, all of my .java code associated with the UML became black and white and un-editable. Although, I can write extra text it cannot be deleted. Running my project results in "Cannot execute - java executable not found".
I deleted the UML files associated with my projects and the code hasn't returned to normal.
Thanks.
Here is a picture:
This actually occurred to all java files.
Unlike Eclipse, different versions of NetBeans are so different that plugins made for younger versions (6) DO NOT work on later versions (8) by default. You can upgrade only subversions steps (digits after dot) without changing plugins. So you have used two pieces of SW that need not be compatible at all. You used a workaround to make to work the installation. And you can get absolutely any consequences, don't be surprised.
The history of the problem: there is no free UML plugin supporting NetBeans NOW. There was one, of Visual Paradigm, for versions to 6. But it's later variants are not free anymore and they are differently organized. If you want to use the modern version of the plugin, prepare to pay. It is very probable, that the free plugin doesn't work on NetBeans 8 by purpose.
You can try a new different plugin http://plugins.netbeans.org/plugin/49069/plantuml#v2590 of another author. It seems more simple, but at least it won't destroy your IDE. And now you have to save the project, reinstall NetBEans and import the project again.

How can I convert a Spotfire dxp file from version 6 to an older version, i.e. 5.5?

How can I convert a Spotfire dxp file from version 6 to an older version, i.e. 5.5 ?
Please let me know if I should clarify anything regarding this question.
Spotfire is not backwards compatible. The only thing you can do is rebuild it.
Added: To avoid confusion around forward / backwards compatible.
This means that you can open .dxp files saved with older versions of TIBCO Spotfire with newer versions, but you can not open files that are saved with a higher/newer version of Spotfire than that you are you are using.
See also this question: http://spotfirecommunity.tibco.com/community/forums/t/645.aspx

IntelliJ Groovy version

I'm in the process of upgrading a project to Groovy v1.6. When I installed IntelliJ, my GROOVY_HOME environment variable was pointing to Groovy v1.5.7, but now that I've changed GROOVY_HOME to point to v1.6, it's not clear whether IntelliJ is also using the more recent version.
How can I check which version of Groovy IntelliJ is using?
I believe you want to use the File -> Project Structure menu item. Then look at your Libraries and Facets (expand for Groovy) options.
Use "Add Framework Support":
Right click on your module and choose "Add Framework Support...". There you can add/change the groovy version
http://blogs.jetbrains.com/idea/2009/09/groovy-related-configuration-changes/
Found this old thread looking for a similar thing, but ended up figuring it out myself.
In my case, the project was boostrapped with Gradle. I didn't have a standalone Groovy version installed on my machine.
Open Tools -> Groovy Console..., and type pretty much any command and run it. It showed me the path to Gradle cache, which included Groovy version, near the top of the new window:
.../.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-all/2.4.12/...
Also check build.gradle as it may have some hints as to which version the project uses.

Resources