Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
When I install a new JDK, I follow similar procedures as described here.
For example, like that link, I too like to have a local copy of the javadocs. See that link's "Step 7: (Optional) Download JDK API Documentation, Demos and Samples" section.
My only use for these javadocs is to point my IDE (IntelliJ, of course!) at them. I will not be doing anything commercial with them, like redistributing them, developing my own JDK, etc.
In the past, I always downloaded Sun/Oracle's JDK, and a javadoc .zip file was also downloadable from the same web page as the JDK.
Starting with JDK 11, there are now many new 3rd party builds to chose from.
I have no strong preference among them. I have selected Azul's Zulu for now simply because I respect their technology in general.
My problem is that every 3rd party JDK 11 build that I looked at, including Azul Zulu, seems to only offer you just the JDK. None of them seem to have a javadoc download (e.g. a jdk-11.0.3_doc-all.zip file).
Did I overlook where to get this?
Or is Oracle still the only source for this? And is Oracle's license for these javadocs a problem?
Of course I did a web search before posting this question, as well as I manually searched thru all the 3rd party build web pages. The only source that I found for downloadable javadocs was Oracle.
So, I downloaded my current copy of jdk-11.0.3_doc-all.zip from Oracle
by clicking on this link, then accepting the license agreement, then clicking on the jdk-11.0.3_doc-all.zip link, then logging in to Oracle.
I am concerned about getting this documentation from Oracle because I assume that the license that I agreed to is no longer a free one as in the past.
If I only use Oracle's javadocs locally, by pointing my IDE towards them, will that violate Oracle's license? I will be using my IDE to develop commercial software.
Yes, I have skimmed thru that license. But it is legalese, and I do not really understand it. It has concerning language like "Specification Lead hereby grants you a...license...to view, download, use and reproduce the Specification only for the purpose of internal evaluation".
Or is Oracle still the only source for this?
I am not aware of any such 3rd-party download1
And is Oracle's license for these javadocs a problem?
That would be for you to decide after reading the license2. Among other things, it would depend on how you intend to use the documentation.
Yes, I have skimmed thru that license. But it is legalese, and I do not really understand it. Eetcetera
See footnote 2. Seriously. We can't answer your legal questions with any confidence. And even if we did, you should have no confidence in our answers!
One alternative is to download the OpenJDK source tree and build the javadocs for yourself. Your usage of the resulting javadocs will be (only) limited2 by the terms of the GPL v2 + Classpath license for OpenJDK.
A second alternative is to view the Oracle javadocs via the web.
A third alternative is to point your preferred IDE at the appropriate source code bundle (in your Oracle JDK or OpenJDK installation) and search / view the docs via your IDE.
1 - If such a download does exist, you should be able to find it with a Google search.
2 - I am not a lawyer! If you are concerned about this, you should get legal advice from a practicing lawyer.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
I am using Java for developing an application and it is very important for me to make this application Open Source. I am stuck with two licenses Apachev2 and GPL(v2/v3).
I am definitely not charging for the source code.
I will be putting up the complete source on Github for the provision of the source code link.
I am using Apache PDFbox (http://pdfbox.apache.org/) for my application involves dealing with PDF files. This jar bundle is licensed under Apachev2 license.
I really need some insight and guidance on how to select the license for my Application and also feel free to tell me about other licenses which are better for my current situation.
Also I need to know if I can use any of these above mentioned licenses, with Oracle Java compiler. Thanks.
It is difficult to advise whether Apachev2 or GPL2/3 is best for you. To a significant degree, it depends on your beliefs about the politics of open source, and whether you believe (and care1) that some people won't use your code if it is GPL'ed.
Here are some resources:
The Open Source Initiative site has information on a number of popular open source licenses: http://opensource.org/licenses
The GNU site has lots of material on the various flavours of the GPL, what they mean, and compatibility with other open source licenses: http://www.gnu.org/licenses/licenses.html
But the good news is that either Apachev2 or GPL of various flavours would be suitable for a project that used PDFBox.
FOLLOW-UP:
I meant to ask weather I can put a GPL license on Java Source code esp when I know that I am going to compile it with Oracle JDK which is I believe not open source
No proper open source license would place restrictions on the compilers that you (or someone else) can use to compile your code. GPL is no exception.
GPL does place restrictions on derivative works: the derivative work is covered by the GPL. But that's OK. A binary produced by compiling your source code is a derivative work of your source code ... but not a derivative work of the compiler. (Or at least not in the sense that "derivative work" is used in Copyright Law.)
Finally, while Oracle Java is not open source, OpenJDK is 100% GPL.
1 - FWIW, I don't care. The reasons why people / organizations / companies "cannot" use GPL tend to be self-serving.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
I wrote a program in Java 6.0, but it turns out that some of our client only have 5.0.
The issues is that lot of features that 6.0 has was not in 5.0 yet. For example:
JTable Sorting, Filtering feature
SwingWorker class
My Question is :
is it legal to just copy the java 6.0 source code to my own project so that my client with 5.0 jre can run it.
from technical point of view, is it hard to copy the classes source code like TableRowSorter, regexFilter to my own project and let it work?
Thanks
Probably no, the OpenJDK classes are under GPL meaning you will have to put your sources under GPL too. The Oracle Java classes are also under a "you cannot just do what you want to with our sources", so this is most likely a VERY bad idea.
You can use Retroweaver to make your source work with an earlier version of Java, but I would say that you should make your code work with Java 5, optionally using Java 6 facilities if available, and then say to your customers which things they will get from upgrading.
2021 edit: As of Java 17 the proper solution would be to include a tested JVM as part of your deployment. There is tooling for bringing just what you need.
One question you should ask is: why haven't your clients upgraded to Java 6.0? Since it's free and easy to do they must have a reason, and you should probably find out what it is before sending them code from it.
That depends on the source code you are copying from. From JavaSE? OpenJDK?
Wherever you want to copy from, check their license for the code.
The copying may be simple, copying just the classes and it’s dependencies. There may be a lot of specific dependencies though, which can make it consume a lot of time. And you’ll really have a problem when you have to copy a changed class that already existed in version 5, where you would need one version for some code, and the newer for the other. But if you’re only using Java6 code in that project it should be alright. Moving the classes into another package may also be an option, with potentially a lot of work as well though.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
We are planning to use bazaar as a version control tool over cvs and svn. So i don't know much about it, Where can i find a tutorial of using it? and compared to svn and cvs what extra features does it provides.
And is it worth using for the application with large amount of code to manage?
The major difference with CVS or SVN is that Bazaar is a DVCS (Distributed Version Control System), not a VCS:
see Comparison between Centralized and Distributed Version Control Systems,
and you can see a good feature matrix in this Wikipedia entry.
Any DVCS will require a more complex workflow than a classic VCS, even if you can replicated the "central" repo model with a DVCS:
(source: infoq.com)
Our most senior developer is a big fan of version control systems and he installed Bazaar so we could try it for a while before migrating new projects to it - unfortunately, we had to stop in the middle because the Maven release plugin doesn't integrate very well with Bazaar and the plugin is more important than using Bazaar instead of Maven now.
It works pretty well, let me say that. One of the major pains that I found when working in a team are conflicting changes, and also the fact that you should not commit a change to the central repository until the change is actually ready to be committed. With Bazaar, I can commit my changes locally and then, when I am ready to do so, I can commit all those changes back to the central repository. I never loose my unresolved conflicted changes (with SVN, you have to resolve it before you can submit it).
I didn't test this, but even getting the changes back from the central repository into your local repository (with your local changes) should be easier with Bazaar. What the experts say is that, as branching/ merging is way easier to be maintained with Bazaar, you won't be afraid of it anymore.
You can read tutorials and comparisons of bzr to CVS and SVN at the official Bazaar VCS site in the Documentation section, check the documentation for the latest stable release (which is bzr 2.1 as of March 2010): http://doc.bazaar.canonical.com/bzr.2.1/en/
There is:
Tutorials
User Guide and User Reference
Migration Guide which covers such topics as:
Why Switch to Bazaar?
Bazaar for CVS users
Bazaar for Subversion users
Also Bazaar allows you to work directly with SVN repositories using bzr-svn plugin. You can find more information on this workflow in the guide Using Bazaar on Subversion projects.
Bazaar's biggest strength over all other system is its flexibility.
For example, developers can work in either traditional centralized mode, or they can work in the newer-style, distributed mode. Oh, and they can do it simultaneously on the same repository. Oh, and they can switch back and forth as much as they like.
Bazaar also has two things which are fairly rare to version control systems: excellent documentation and available commercial support.
For me, Bazaar has the most flexibility, best documentation and in general just works. Those things are far more important to me than the fact pulling a branch would be 10 seconds faster with git for example.
Bazzar work slow on large project with huge history (bzr log on file from Emacs sources take 1 minute!).
And have inefficient http:// protocol (designed for local net connection, require ~5 MiB of traffic at least for any remote operation).
Check out Bzrinit for a gentle introduction to distributed version control with Bazaar.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I'm thinking of using Java to write a program that I might try to sell one day. I'm new to Java so I have to ask, what types of tools/software/etc will I need (from development, to distribution, to user-friendly installation on users' machines) that have licenses that must be considered to make sure they allow sales and closed source code, etc.?
Should we assume the user already runs at least one Java app, and therefore has a fairly recent version of Java on their machine?
Also, do you have any recommendations for specific tools that are definitely suitable for this purpose?
It's very rare to see any development tools that restrict the way you can use software created using them. The only exception to that are libraries, and that is not a problem with standard Java libraries. Tools, IDE and so on - regardless of whether they're free or not - will not affect how you can distribute your code.
There are some weird exceptions, like BitKeeper source control software, the license of which prohibits anyone using it from trying to create software that could compete with BitKeeper - which is why I advise to stay as far away from the thing, and the company behind it, as possible. In the end, if you want to be absolutely legally clear, you'll have to hire a lawyer and have him go through licenses and EULAs for all software you're going to use in your development process, because of stuff like this.
Some specific data points: Java itself is okay (both compiler and libraries); both Ant and Maven are okay; and Eclipse and NetBeans are okay.
For development, you will likely need an IDE. The top picks are:
Eclipse (most features)
IntelliJ (non-free)
Netbeans (easiest to learn, imo)
A few others with much lower popularity
For a free installation program, I've had the best experiences with IzPack, but there are others available. Similarly, to convert to a .exe for easy launching, I recommend Launch4J.
I don't think that its safe to assume that users have Java installed. Many will, but the versions will vary fairly widely, and the few that don't will tend to cause problems. Obviously, this may vary depending upon your intended audience (and how much control you have over them).
For cross platform distribution you might want to look into launch4j: http://launch4j.sourceforge.net/
Also you might also want to obfuscate and optimize your code, for that you can use ProGuard: http://proguard.sourceforge.net/
For your development use any of the open source tools available such as eclipse or netbeans, or even emacs with jdee.
You should not assume users have Java, package a version of java with your application.
For installation you might want to search for some open source solutions, the only one I know of is install4j and it is commercial. http://www.ej-technologies.com/products/install4j/features.html
This is a question that is really hard to answer because the requirement and the preferences of the users are different from each other.
But I will tell you one entry point. Use ECLIPSE as your IDE to develop your Java code. It is an opensource one so you don't need any licence for that. When you are working on your project you will need variety of other tools to do various stuff. Fortunately most of the essential functions are implemented as plugins for eclipse. You can seperately add them to eclipse.
With time, you'll get the experience and you will have enough knowledge to swich to the necessary tools etc
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I've used DJ Java Decompiler, which has a handy GUI, but it seems as if the latest version is only a trial and forces you to purchase the software after some period of days (I recall using an earlier free version about a year ago at a previous job).
I'm aware of Jad and Jadclipse, but what I loved about DJ Java Decompiler was that it integrated with Windows Explorer - so I could simply open up a JAR in something like WinRAR, navigate thru the packages, and double-click on a .class file to view it's decompiled source.
Can anyone suggest other good, free, .class viewers? The criteria I have in mind for these would be:
GUI-based
Integrates to Windows Explorer (so I don't have to run some command-line options like with JAD)
optional - can also show raw JVM bytecode commands
In other words - I'd like to find the closest thing to .NET Reflector for Java as possible.
JAD is one of the best Java Decompiler today. This is one brilliant piece of software. Nevertheless, the last JDK supported by JAD 1.5.8 (Apr 14, 2001) is JDK 1.3.
DJ Java Decompiler, JadClipse, Cavaj and JarInspector are powered by Jad.
The last version of Decafe Pro has been released on 2002-01-03.
These viewers can not display Java 5 sources.
So, I use JD-GUI : logic, I'm the author :)
Procyon is a new open source decompiler that already beats JD-GUI in most cases. It's written in Java and comes in a self-contained jar. It is actively developed by StackOverflow's own Mike Strobel.
Eclipse will allow you to view the bytecode for classes, if the source is unavailable (search for 'disassembled bytecodes').
It seems there is also a third-party plugin that uses asm here.
There was another thread on StackOverflow which linked to http://java.decompiler.free.fr/
Try JDGUI simple, lightweight and fast
I use cavaj
I've used Decafe Pro (can't find the official site anymore) in the past, but the free version won't let you cut-n-paste.
Both of them are front ends to JAD, so they have the same features and limitations with respect to decompilation capabilities.
JarInspector
Jar Inspector is an easy to use yet powerful jar file editor for Mac OS X. It allows you to effortlessly view, edit and decompile the contents of jar files.
Many of these decompilers are based on Jad:
http://www.kpdus.com/jad.html
I like the JadClipse Eclipse plugin:
http://sourceforge.net/projects/jadclipse
I just published a stand-alone Java Decompiler GUI (based on Jad) which you can get from Util Java Decompiler (JAD based) v1.0
This is a Windows based .NET 4.0 application, which supports the drag n'drop of *.jar files.
It doesn't integrate with Window Explorer, but since this is based on a simple C# script, and the code is Open Source, maybe you could add that feature :)
Another idea would be to also add support for the other free java decompilers.
i use cavaj, simple to install and gives your very good overview of the class, eclipse style.
There is a free Java Class Viewer, we can check the Java .class file binary data byte by byte interactively. When clicking each tree node of the class file structure on the left, the corresponding byte data would be highlighted on the right.
Here is an article describes the source code of the Java Class Viewer in detail.