Critical tools that every Java Developer should have in his toolbelt? [closed] - java

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 was trying to compile a list of tools that a good Java Developer should be know of, and keep in his Developer Tool Belt
I can think of a few
Eclipse Development Environment - There are other IDEs, but you should know how Eclipse of eclipse.
JUnit - Java Unit Testing Framework. Of course there are others, but...
ANT
Maven
Soap UI - for testing SOAP endpoints
jrat - Java Profiler. I don't know of other good Java profilers
Java Decompiler - For when you just have to know what's in the jar file

The Really Big Index: A list of all content pages in the The JavaTM Tutorial, because you can't know everything.

Continuous integration server: CruiseControl, Hudson, etc.
Dependency injection: Google Guice, Spring, PicoContainer
Slf4J: Simple Logging Facade for Java
Mockito: Mocking Library
Not Java specific but nonetheless essential: a good distributed source control (Git or Mercurial)

VisualVM - for low level memory profiling
Eclipse MAT - for high level memory profiling
JMeter - for performance testing
Mockito, EasyMock, PowerMock - for mocking
FindBugs, Checkstyle, PMD - for static code analysis

findbugs http://findbugs.sourceforge.net/
hudson http://hudson-ci.org/
understanding of all major version control systems like:
perforce
cvs
svn
git
etc.
and of course the jdk!

Hudson, near the top of the list.
visualVM - good enough for most profiling needs (and I've heard of a number of Java profilers, but never of jrat)
Cobertura or Emma for code coverage

Useful in building your apps quickly:
1. onejar - helps in quickly create executable jar with dependency and deploy for users.
2. Vaadin for building rich UI with ease.

Critical
Clean text editor ( Textmate, gVim )
JDK ( java, javac, javap etc. )
A webbrowser to read the javadocs
Non-critical
All those you mention but s/Eclipse/IntelliJ Idea/g

Related

Which Eclipse version: Java, RCP or "Eclipse Classic"? [closed]

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
The following link states that "A Java or RCP version of Eclipse is recommended. For Eclipse 3.5, the "Eclipse Classic" version is recommended."
http://developer.android.com/sdk/installing.html
However, Eclipse 3.6 is available and as a total newbie I am not sure whether the recommendation for "Eclipse Classic" over RCP (or Java) still holds true.
Can you clarify?
Thanks you.
Just follow the recommendation and download and install eclipse classic 3.6 for a start, then add the android. You can always add additional eclipse functionality (plugins) later without breaking or loosing something.
Here is a page to compare the distributions.
Classic is a good choice. Alternativly I'd choose not RCP but 'Modeling' because it includes Mylin (task management) and install the XML tools later on (nice XML viewer/editor).
For the record, I decided to go with the Classic package.
I am detailing my decision considerations, hoping that this could be helpful to future Android newbies:
Aside from the ubiquitous RCP/Platform, the only plugin common to all 3 Android recommended packages (Java, RCP and Classic) is JDT.
In the near term, I don't expect to develop Eclipse plugins (PDE), but I do use version control (CVS). The "Java package" seems to best fit this.
On the other hand, the "Java package" also includes EMF, GEF, Mylyn and XML Tools. In my android project, it is unlikely that I will need EMF, GEF and XML Tools. Mylyn, on the other hand, sounds very interesting, perhaps even useful. :)
It is unknown to me how clean or easy a plugin un-installation is. I always prefer leaner & cleaner environments (lesser probability for contention), so the easiest route seems to be installing "Classic", removing PDE, then adding Mylyn.
Hence, Classic.
Those of us who create products and/or plugins based on Eclipse usually start with Eclipse Classic. It has the PDE (plugin Development Environment) already integrated. It's also a lot bigger.
If you want to do Android development and nothing else, you can start with the Java SE edition or Pulsar and add in the plugins you need.

Why maven requires so many options to create a hello world project,can you recommend a more dedicated build tool for Java? [closed]

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
Quoted from here:
mvn archetype:generate -DgroupId=org.sonatype.mavenbook.simple \
-DartifactId=simple \
-DpackageName=org.sonatype.mavenbook \
-Dversion=1.0-SNAPSHOT
And I also have to specify an archetype number...
It seems that maven isn't satisfied to be just a Java build tool,but want to control all aspect of developing...
Can someone recommend a really dedicated build tool for Java?
You're misunderstanding what an archetype is, it's simply a template for creating new projects.
You don't need to use one if you don't want to, you are free to create your own pom.xml and put your source code and tests wherever you want, as long as you configure the non-standard values in your POM.
Maven doesn't "want to control all aspect of developing", it is a tool which is based around a set of best practices and standards (standard layouts, build lifecycle, projects should have versions, the idea of release vs snapshot dependencies, etc.).
You are free to not use these best practices, but to do so, you need to configure Maven for what you want.
The nice part about Maven is that when you do follow the standards, there is often nothing to configure. It's only when you need non-standards that you need to configure.
A Maven project has a groupId, an artifactId and a version (OMG, 3 properties) so you need to set them:
mvn archetype:generate -B -DgroupId=org.sonatype.mavenbook.simple \
-DartifactId=simple \
-Dversion=1.0-SNAPSHOT
You don't like it? It's too much effort? Don't use Maven.
It seems that maven isn't satisfied to be just a Java build tool, but want to control all aspect of developing...
Maven is more than just a build tool. It's not what you want? Don't use Maven.
Can someone recommend a really dedicated build tool for Java?
It's the third time you ask for recommendations (first time here, second time here) and since you're just ignoring the answers suggesting Maven, Ant, Make, Buildr, Gradle, Gant, I would recommend javac.
Alternate build tools: Ant (lots of configuration), Gradle (conventions again, less verbose than maven)
Maven is good if you don't want to fight its conventions. Your example above is just asking you to define your package, jar name, and version string (all things you need to do if this code is ever going to other people). Also you don't need to start with an archetype if you understand how to (or have a tool) to generate a pom and understand where maven wants you to put your files.
I recommand you buildr (http://buildr.apache.org/) : it's very simple to use, very powerfull and it's compatible with maven2 repos. I really love this tool.
Extract from the buildr website :
Apache Buildr is a build system for
Java-based applications, including
support for Scala, Groovy and a
growing number of JVM languages and
tools. We wanted something that’s
simple and intuitive to use, so we
only need to tell it what to do, and
it takes care of the rest. But also
something we can easily extend for
those one-off tasks, with a language
that’s a joy to use. And of course, we
wanted it to be fast, reliable and
have outstanding dependency
management.

Lightweight Java reporting engine [closed]

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 8 years ago.
Improve this question
I'm looking for a lightweight java reporting engine to be embedded in an applet application.
My first option was Jasper Reports, but the jar is over 2Mb, a little too heavy (and too bloated) for my needs. I don't know if there is modular jasper distribution, with funcionalities split in several jars (like html rendering, pdf, excel, compilation, runtime, etc).
I need to preview the report using Swing and print it. PDF export is a plus.
Jasper Reports does include a jar with basic funcionality to preview and print reports. It's packaged as jasperreports-x.x.x-applet.jar, with around 350k.
I know this is a bit late, but with your requirements it seems like a perfect fit would be the reporting solution the company I work for puts out: i-net Clear Reports (used to be i-net Crystal-Clear).
Lightweight and simple viewer (similar to a PDF viewer)
Very simple-to-use API
Can export into a bunch of different formats including PDF
Supports any JDBC data source, or also manual setting of data
Can run Crystal Reports templates
We also offer a free and fully functional report designer
Check it out and tell us what you think.
See NextReports Engine with around 300k. NextReports Designer is FREE to use.
If you can find no better solution, it should be possible to create a stripped down JAR file for Jasper Reports. The GenJar tool is supposed to be able to build a JAR file based on its static dependencies.
A long time ago, I used to use Zelix's "Classmaster" obfuscation tool which gave you the option of stripping out classes that were not used. I think it might even have stripped unused methods, though my memory is a bit hazy. (I used it on a closed source product ... that has since disappeared down an IP "blackhole".)
EDIT: another option is ProGuard, which does obfuscation and stripping like Classmaster, except that it is open source. (Sadly, they seem to have misconfigured their SF website link. But the link above works.)
Of course, if Jasper Reports uses Class.forName() you would need to identify all the relevant classes add them as "root" dependencies for the stripping tool that you use. In addition, you would need to look at the Jasper Reports license to make sure that you are allowed to "distribute" a stripped JAR file.
Why is 2Mb too big for a server-side library? Docmosis has a jar size under 500k, but requires OpenOffice on the server, so it is smaller in one way and bigger in another. Java won't load the 2Mb Jasper into memory unless you use all the features/classes.
IMHO Chunk Templating engine is the best. The jar file only has 180 KB! and support IF and iteration. How cool is that !

Do you have any recommended plugins for Netbeans? [closed]

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
This is a copy of the question : https://stackoverflow.com/questions/2826/do-you-have-any-recommended-plugins-for-eclipse
But now is for netbeans (I'm not a eclipse lover. CTRL+TAB does not change pages.)
Please, I'm very curious.
I recommend anyone who's Vi/Vim user the jVi plugin, works great...
I also love the PHP, Ruby, Subversion and Git plugins...
The SQE plugin (which integrates FindBugs, PMD, and CheckStyle) is extremely useful.
The Path Tools plugin.
It adds four useful actions to Netbeans:
Copy Paths Action Copy the full paths of the files/folder of selected node to the clipboard.
Explore Action Launch the OS File Explorer
Shell On Path Action Launch the OS shell
Edit Action Launch the external editor
The webpage of the Path Tools plugin looks not very active, but it works in Netbeans 6.9.1 without problems (Works on My Machine).
Thats not a good reason to not love Eclipse, IMHO.
Anyways, there are plenty, it depends what are you working on. I am using
Spring, Spring MVC, Spring Webflow
JSF, ICEFaces and Visual
Subversion
Groovy Grails
C/C++
Hibernate
UML
PHP
Web Applications
JBoss
RESTful Webservices, SOA
Java Doc
Ant, Maven
Python
And few more, but these are notable.
I love the RegEx Plugin and I'm definitely installing the Twitter Integration plugin (http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=15661)
Automatic Projects.
Build a project/"workspace" completely it's ANT file.
Much more maintainable.
vi
http://www.netbeans.org/kb/55/vi-integration.html
Enclojure is a good plug-in. Very nice integration of the Clojure dynamic language into the Netbeans environment (including a REPL right in Netbeans!).
Groovy plugin is great to! http://groovy.codehaus.org/NetBeans+Plugin
http://coffeecokeandcode.blogspot.com/2008/05/special-copypaste.html
Its a copy and paste plugin, i share my code a lot with people sometimes when i'm writing word docs and stuff i need to copy the colour of the code. It also also you to copy it as html and css to paste into a web page.
http://openjdk.java.net/tools/svc/jconsole/
is pretty good for monitoring your programs, provides a few cool features for monitoring in general

Best free Java .class viewer? [closed]

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.

Categories