java class filewriter
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 4083
Runtime Java Class Editor 1.0
Runtime Java Class Editor is a tool for editing loaded (running) Java classes and much more. more>>
RJCE allows all methods or variables of user defined classes to be altered at runtime. These alterations are then applied to a single instance, a collection of instances (i.e. list, set or map), or an entire class.
This helps you to test your application in an interactive way; altering running programs helping a trial and error approach to programming; testing code and saving it when its correct. Long running algorithms, such as simulations, can also easily be refined without the need for restarts or lose of data.
RJCE can be used to write a program from within itself ensuring high coupling between testing and development, with no delay before the outcome of any alterations.
RJCE allows scripts to run from within your application, allowing users to configure or extend an application dynamically, bypassing normal language access rules controlled by public, private and protected. This can be done by easily instatiating an instance of CodeEditorFrame from the rom.gui package.
RJCE permits faster development of applications by allowing easy migration from scripts to Java programs.
<<lessThis helps you to test your application in an interactive way; altering running programs helping a trial and error approach to programming; testing code and saving it when its correct. Long running algorithms, such as simulations, can also easily be refined without the need for restarts or lose of data.
RJCE can be used to write a program from within itself ensuring high coupling between testing and development, with no delay before the outcome of any alterations.
RJCE allows scripts to run from within your application, allowing users to configure or extend an application dynamically, bypassing normal language access rules controlled by public, private and protected. This can be done by easily instatiating an instance of CodeEditorFrame from the rom.gui package.
RJCE permits faster development of applications by allowing easy migration from scripts to Java programs.
Download (3.1MB)
Added: 2005-04-18 License: BSD License Price:
1713 downloads

Java Clazz Utils 1.2.2
Java Clazz Utils offers you a full-featured and crossplatform Java bytecode viewer and decompiler which can support latest Java versions (from 1.4 till 1.6). more>>
Java Clazz Utils 1.2.2 offers you a full-featured and crossplatform Java bytecode viewer and decompiler which can support latest Java versions (from 1.4 till 1.6). It can be used both as command line tool and user application with Swing interface. It contains InfoJ, Decompiler and jclazz-GUI.
Major Features:
- InfoJ can be used to generate information about Java class. The output includes all possible data that can be extracted from class file: fields, methods, attributes, access flags, signatures, debug information, opcodes etc.
- Decompiler can be used to reproduce Java source code from compiled Java class file. It uses debug information to produce Java code which is nearly the same as original source file. Nevertheless, there are several restrictions and Java code constructions that prevent decompiler from producing the same code as original and even correct Java code. You can find out more about these cases below on this page.
- jclazz-GUI is user-friendly interface for quick start and easy to use.
Enhancements:
- Save of decompiled file writes to predefined file name - Fixed
- Condition structures "condition ? operation1 : operation2" were decompiled incorrectly - Fixed
- URL to bug reporting page is corrected
Added: 2009-05-01 License: GPL Price: FREE
1 downloads
Class::Inner 0.1
Class::Inner is a perlish implementation of Java like inner classes. more>>
Class::Inner is a perlish implementation of Java like inner classes.
SYNOPSIS
use Class::Inner;
my $object = Class::Inner->new(
parent => ParentClass,
methods => { method => sub { ... } }, },
constructor => new,
args => [@constructor_args],
);
Yet another implementation of an anonymous class with per object overrideable methods, but with the added attraction of sort of working dispatch to the parent classs method.
METHODS
new HASH
Takes a hash like argument list with the following keys.
parent
The name of the parent class. Note that you can only get single inheritance with this or SUPER wont work.
methods
A hash, keys are method names, values are CODEREFs.
constructor
The name of the constructor method. Defaults to new.
args
An anonymous array of arguments to pass to the constructor. Defaults to an empty list.
Returns an object in an anonymous class which inherits from the parent class. This anonymous class has a couple of extra methods:
SUPER
If you were to pass something like
$obj = Class::Inner->new(
parent => Parent,
methods => { method => sub { ...; $self->SUPER::method(@_) } },
);
then $self-gtSUPER::method almost certainly wouldnt do what you expect, so we provide the SUPER method which dispatches to the parent implementation of the current method. There seems to be no good way of getting the full SUPER:: functionality, but Im working on it.
DESTROY
Because Class::Inner works by creating a whole new class name for your object, it could potentially leak memory if you create a lot of them. So we add a DESTROY method that removes the class from the symbol table once its finished with.
If you need to override a parents DESTROY method, adding a call to Class::Inner::clean_symbol_table(ref $self) to it. Do it at the end of the method or your other method calls wont work.
clean_symbol_table
The helper subroutine that DESTROY uses to remove the class from the symbol table.
new_classname
Returns a name for the next anonymous class.
<<lessSYNOPSIS
use Class::Inner;
my $object = Class::Inner->new(
parent => ParentClass,
methods => { method => sub { ... } }, },
constructor => new,
args => [@constructor_args],
);
Yet another implementation of an anonymous class with per object overrideable methods, but with the added attraction of sort of working dispatch to the parent classs method.
METHODS
new HASH
Takes a hash like argument list with the following keys.
parent
The name of the parent class. Note that you can only get single inheritance with this or SUPER wont work.
methods
A hash, keys are method names, values are CODEREFs.
constructor
The name of the constructor method. Defaults to new.
args
An anonymous array of arguments to pass to the constructor. Defaults to an empty list.
Returns an object in an anonymous class which inherits from the parent class. This anonymous class has a couple of extra methods:
SUPER
If you were to pass something like
$obj = Class::Inner->new(
parent => Parent,
methods => { method => sub { ...; $self->SUPER::method(@_) } },
);
then $self-gtSUPER::method almost certainly wouldnt do what you expect, so we provide the SUPER method which dispatches to the parent implementation of the current method. There seems to be no good way of getting the full SUPER:: functionality, but Im working on it.
DESTROY
Because Class::Inner works by creating a whole new class name for your object, it could potentially leak memory if you create a lot of them. So we add a DESTROY method that removes the class from the symbol table once its finished with.
If you need to override a parents DESTROY method, adding a call to Class::Inner::clean_symbol_table(ref $self) to it. Do it at the end of the method or your other method calls wont work.
clean_symbol_table
The helper subroutine that DESTROY uses to remove the class from the symbol table.
new_classname
Returns a name for the next anonymous class.
Download (0.003MB)
Added: 2007-06-06 License: Perl Artistic License Price:
871 downloads
asm2class 0.1.2
asm2class is an assembly Java to class file compiler. more>>
Asm2class is a java assembly to class file compiler.
Asm2class is release under the terms of the GPL License. The current version of asm2class (0.1.2) is a beta version and allow generating class file from java assembly file that contains class definition, field definition, method definition and constructor definition.
This release support also abstract class, abstract method and native method definition.
Asm2class know more thatn 90% of the java assembly language. Asm2class can do dead code detection, uninitialized register detection.
<<lessAsm2class is release under the terms of the GPL License. The current version of asm2class (0.1.2) is a beta version and allow generating class file from java assembly file that contains class definition, field definition, method definition and constructor definition.
This release support also abstract class, abstract method and native method definition.
Asm2class know more thatn 90% of the java assembly language. Asm2class can do dead code detection, uninitialized register detection.
Download (1.17MB)
Added: 2005-04-22 License: GPL (GNU General Public License) Price:
1646 downloads
Java for C++ 0.4
Java for C++ is a tool to generate C++-wrapper-classes for existing Java-classes. more>>
Java for C++ is a tool to generate C++-wrapper-classes for existing Java-classes. This tool reads a list of Java class names and creates source code for C++-classes to wrap them.
The implementation of the wrapper classes uses JNI (Java Native Interface) to call the "real" Java classes.
The C++-API to use these wrapper classes is very close to the API of the original Java classes. So developers of C++-software can use Java-classes as if they have been implemented in C++.
Enhancements:
- A problem where null values for method arguments, method return values, or field values caused some generated code to crash was fixed.
- Updating is strongly encouraged.
<<lessThe implementation of the wrapper classes uses JNI (Java Native Interface) to call the "real" Java classes.
The C++-API to use these wrapper classes is very close to the API of the original Java classes. So developers of C++-software can use Java-classes as if they have been implemented in C++.
Enhancements:
- A problem where null values for method arguments, method return values, or field values caused some generated code to crash was fixed.
- Updating is strongly encouraged.
Download (0.043MB)
Added: 2005-12-22 License: GPL (GNU General Public License) Price:
1404 downloads
Class::Declare::Attributes 0.04
Class::Declare::Attributes is a Perl module with Class::Declare method types using Perl attributes. more>>
Class::Declare::Attributes is a Perl module with Class::Declare method types using Perl attributes.
SYNOPSIS
package My::Class;
use 5.006;
use strict;
use warnings;
use base qw( Class::Declare::Attributes );
# declare the class/instance attributes
__PACKAGE__->declare( ... );
#
# declare class/static/restricted/etc methods of this package
#
sub my_abstract : abstract { ... }
sub my_class : class { ... }
sub my_static : static { ... }
sub my_restricted : restricted { ... }
sub my_public : public { ... }
sub my_private : private { ... }
sub my_protected : protected { ... }
Class::Declare::Attributes extends Class::Declare by adding support for Perl attributes for specifying class method types. This extension was inspired by Damian Conways Attribute::Handlers module, and Tatsuhiko Miyagawas Attribute::Protected module. The original implementation used Attribute::Handlers, but now simply refers to attributes.
The addition of Perl attribute support (not to be confused with object attributes, which are entirely different, and also supported by Class::Declare) greatly simplifies the specification of Class::Declare-derived class and instance methods. This should aid in the porting of existing code (Perl, Java and C++) to a Class::Declare framework, as well as simplify the development of new modules.
With the addition of Perl attributes, Class::Declare methods can now be written as
sub method : public
{
my $self = shift;
...
}
instead of
sub method
{
my $self = __PACKAGE__->public( shift );
...
}
<<lessSYNOPSIS
package My::Class;
use 5.006;
use strict;
use warnings;
use base qw( Class::Declare::Attributes );
# declare the class/instance attributes
__PACKAGE__->declare( ... );
#
# declare class/static/restricted/etc methods of this package
#
sub my_abstract : abstract { ... }
sub my_class : class { ... }
sub my_static : static { ... }
sub my_restricted : restricted { ... }
sub my_public : public { ... }
sub my_private : private { ... }
sub my_protected : protected { ... }
Class::Declare::Attributes extends Class::Declare by adding support for Perl attributes for specifying class method types. This extension was inspired by Damian Conways Attribute::Handlers module, and Tatsuhiko Miyagawas Attribute::Protected module. The original implementation used Attribute::Handlers, but now simply refers to attributes.
The addition of Perl attribute support (not to be confused with object attributes, which are entirely different, and also supported by Class::Declare) greatly simplifies the specification of Class::Declare-derived class and instance methods. This should aid in the porting of existing code (Perl, Java and C++) to a Class::Declare framework, as well as simplify the development of new modules.
With the addition of Perl attributes, Class::Declare methods can now be written as
sub method : public
{
my $self = shift;
...
}
instead of
sub method
{
my $self = __PACKAGE__->public( shift );
...
}
Download (0.021MB)
Added: 2007-06-20 License: Perl Artistic License Price:
857 downloads
Claros Downloader 1.0
Claros Downloader is a simple, highly customizable, multi-threaded, web based downloader manager. more>>
Claros Downloader is a simple, highly customizable, multi-threaded, web based downloader manager. You can download files to your desktop, corporate server, wherever you are. You simply point your browser to Claros Downloader, login, add new urls. It forks a new thread downloading the remote file to the server running the web application. Thats it.
Installation:
For Tomcat Users:
Copy the war file to $TOMCAT_INSTALL_DIR/webapps folder
Start Tomcat
For other application servers, you shall know what to do with a war file. If war extension means nothing to you, just unzip is it, if it was a regular zip archive.
All configuration is done in WEB-INF/resources directory. Open config.properties with your favorite editor, and follow the instructions.
Please Note: There is a Java class called AddUser.class in WEB-INF/classes/org/claros/downloader/admin directory. Run this class from console to add a new user to the system.
<<lessInstallation:
For Tomcat Users:
Copy the war file to $TOMCAT_INSTALL_DIR/webapps folder
Start Tomcat
For other application servers, you shall know what to do with a war file. If war extension means nothing to you, just unzip is it, if it was a regular zip archive.
All configuration is done in WEB-INF/resources directory. Open config.properties with your favorite editor, and follow the instructions.
Please Note: There is a Java class called AddUser.class in WEB-INF/classes/org/claros/downloader/admin directory. Run this class from console to add a new user to the system.
Download (2.1MB)
Added: 2006-03-20 License: GPL (GNU General Public License) Price:
1316 downloads
Java::Import 0.03
Java::Import is Perl module to use Java classes in Perl. more>>
Java::Import is Perl module to use Java classes in Perl.
SYNOPSIS
use Java::Import qw(
some.package.SomeClass
);
my $instance = new some.package.SomeClass();
$instance->someMethod();
my $ret_val = some::package::SomeClass::someStaticMethod();
$ret_val->someMethod();
$ret_val2 = $instance->someOtherMethod($ret_val);
$ret_val2->someMethod();
my $java_array_ref $instance->someMethod2();
foreach my $obj ( @$java_array_ref ) {
$obj->someMethod();
}
The purpose of this module is to provide a simple method for using Java classes from a Perl program while using the latest in Open Source Java Technology. Thus, this module makes great use of the GNU Compiler Tools for Java in its implimentation.
<<lessSYNOPSIS
use Java::Import qw(
some.package.SomeClass
);
my $instance = new some.package.SomeClass();
$instance->someMethod();
my $ret_val = some::package::SomeClass::someStaticMethod();
$ret_val->someMethod();
$ret_val2 = $instance->someOtherMethod($ret_val);
$ret_val2->someMethod();
my $java_array_ref $instance->someMethod2();
foreach my $obj ( @$java_array_ref ) {
$obj->someMethod();
}
The purpose of this module is to provide a simple method for using Java classes from a Perl program while using the latest in Open Source Java Technology. Thus, this module makes great use of the GNU Compiler Tools for Java in its implimentation.
Download (0.028MB)
Added: 2006-12-01 License: Perl Artistic License Price:
1059 downloads
jclassinfo 0.19.1
jclassinfo is an information extractor for Java bytecode. more>>
jclassinfo reads java class files and provides information about the class, dependencies and more. It is a pure C implementantion.
Main features:
Class Information
- Java VM version required,
- super class,
- interfaces implemented. --general-info
- Constant pool dump --constant-pool
- Methods --methods
- Fields --fields
- Class attributes --attributes
Dependency Information
- Packages required --packages
- Classes required --classes
- Methods required --methods-ref
Options affecting verbosity
- Disassemble code --disasm
- Print limits and exception table for methods --verbose
- Print debugging information --method-debug-info
- Change visibility --visibility=< public | package | protected | private | synthetic >
<<lessMain features:
Class Information
- Java VM version required,
- super class,
- interfaces implemented. --general-info
- Constant pool dump --constant-pool
- Methods --methods
- Fields --fields
- Class attributes --attributes
Dependency Information
- Packages required --packages
- Classes required --classes
- Methods required --methods-ref
Options affecting verbosity
- Disassemble code --disasm
- Print limits and exception table for methods --verbose
- Print debugging information --method-debug-info
- Change visibility --visibility=< public | package | protected | private | synthetic >
Download (0.026MB)
Added: 2005-03-07 License: GPL (GNU General Public License) Price:
1693 downloads
Domino Javadoc Generator 0.4
Domino Javadoc Generator project aims to create a documentation to the Lotus Notes API for Java. more>>
Domino Javadoc Generator project aims to create a documentation to the Lotus Notes API for Java in a standard format common in the Java comunity and accepted by the most IDEs for Java.
The Lotus Notes API is delivered as a Java archive together with the original documentation in the native format of a Domino database with the IBM Domino Designer. The documentation can be read only in the Lotus Notes. Java-oriented tools cannot use it to display a description of a Java class, to browse classes and their methods or to offer an automatic code insertion based on a Java object and its class.
The goal is to create a Javadoc documentation together with a pseudo-source code of the Lotus Notes API. The documentation can be viewed, indexed and integrated to IDEs. The pseudo-source code can be integrated to IDEs to support object browsing and automatic source code insertion.
<<lessThe Lotus Notes API is delivered as a Java archive together with the original documentation in the native format of a Domino database with the IBM Domino Designer. The documentation can be read only in the Lotus Notes. Java-oriented tools cannot use it to display a description of a Java class, to browse classes and their methods or to offer an automatic code insertion based on a Java object and its class.
The goal is to create a Javadoc documentation together with a pseudo-source code of the Lotus Notes API. The documentation can be viewed, indexed and integrated to IDEs. The pseudo-source code can be integrated to IDEs to support object browsing and automatic source code insertion.
Download (0.38MB)
Added: 2006-08-10 License: BSD License Price:
1179 downloads
Inline::Java::PerlInterpreter 0.52
Inline::Java::PerlInterpreter is a Perl module used to call Perl directly from Java using Inline::Java. more>>
Inline::Java::PerlInterpreter is a Perl module used to call Perl directly from Java using Inline::Java.
SYNOPSIS
import org.perl.inline.java.* ;
class HelpMePerl {
static private InlineJavaPerlInterpreter pi = null ;
public HelpMePerl() throws InlineJavaException {
}
static private boolean matches(String target, String pattern)
throws InlineJavaPerlException, InlineJavaException {
Boolean b = (Boolean)pi.eval("" + target + " =~ /" + pattern + "/", Boolean.class) ;
return b.booleanValue() ;
}
public static void main(String args[])
throws InlineJavaPerlException, InlineJavaException {
pi = InlineJavaPerlInterpreter.create() ;
String target = "aaabbbccc" ;
String pattern = "ab+" ;
boolean ret = matches(target, pattern) ;
System.out.println(
target + (ret ? " matches " : " doesnt match ") + pattern) ;
pi.destroy() ;
}
}
WARNING: Inline::Java::PerlInterpreter is still experimental.
The org.perl.inline.java.InlineJavaPerlInterpreter Java class allows you to load a Perl interpreter directly from Java. You can then perform regular callbacks to call into Perl.
<<lessSYNOPSIS
import org.perl.inline.java.* ;
class HelpMePerl {
static private InlineJavaPerlInterpreter pi = null ;
public HelpMePerl() throws InlineJavaException {
}
static private boolean matches(String target, String pattern)
throws InlineJavaPerlException, InlineJavaException {
Boolean b = (Boolean)pi.eval("" + target + " =~ /" + pattern + "/", Boolean.class) ;
return b.booleanValue() ;
}
public static void main(String args[])
throws InlineJavaPerlException, InlineJavaException {
pi = InlineJavaPerlInterpreter.create() ;
String target = "aaabbbccc" ;
String pattern = "ab+" ;
boolean ret = matches(target, pattern) ;
System.out.println(
target + (ret ? " matches " : " doesnt match ") + pattern) ;
pi.destroy() ;
}
}
WARNING: Inline::Java::PerlInterpreter is still experimental.
The org.perl.inline.java.InlineJavaPerlInterpreter Java class allows you to load a Perl interpreter directly from Java. You can then perform regular callbacks to call into Perl.
Download (0.092MB)
Added: 2007-06-02 License: Perl Artistic License Price:
877 downloads
C# Java Virtual Machine 1.0.1
C# Java Virtual Machine is a tiny implementation of the Java VM, including simple native classes. more>>
C# Java Virtual Machine is a tiny implementation of the Java VM, including simple native classes. This project is written using the C# language. The VM is very easily expandable by writing additional native or Java classes.
Enhancements:
- The DbConnection class, which provides a connection to MS SQL or PostgreSQL using ADO.NET, was added.
- The Syst.MachineName method, which returns the machine name, was added.
- String.startsWith and String.endsWith functions were added.
- Some comments for VM.cs were written.
<<lessEnhancements:
- The DbConnection class, which provides a connection to MS SQL or PostgreSQL using ADO.NET, was added.
- The Syst.MachineName method, which returns the machine name, was added.
- String.startsWith and String.endsWith functions were added.
- Some comments for VM.cs were written.
Download (0.40MB)
Added: 2007-05-25 License: GPL (GNU General Public License) Price:
884 downloads
Java::Build::GenericBuild 0.05
Java::Build::GenericBuild is a high level driver to control Java builds. more>>
Java::Build::GenericBuild is a high level driver to control Java builds.
SYNOPSIS
There are two (or more) code files needed to effectively use this module. First, create a subclass of this class:
package Java::Build::MyBuild;
use Carp;
# Do the following in a BEGIN block before the use base statement:
BEGIN { $ENV{CLASSPATH} .= ":/path/to/suns/lib/tools.jar"; }
use base Java::Build::GenericBuild;
# use any other Java::Build modules you need
my @args = (
{ BUILD_SUCCESS => sub { croak "You must supply a BUILD_SUCCESS" } },
{ CONFIG_LOC => sub { croak "You must supply a CONFIG_LOC" } },
{ MAIN_DIR => &_form_main_dir },
# ...
); # Include all the attributes that matter to your build here, and
# what to do if the caller omits them.
# If they are required, die in the subroutine, otherwise provide a
# subroutine reference which will fill in the default
sub new {
my $class = shift;
my $self = shift;
$self->{ATTRIBUTES} = @attrs;
process_attrs($self);
return bless $self, $class;
}
# Include common targets callers can share here. Put unique targets
# in the calling scripts (see below).
sub init { my $self = shift; ... }
sub cvs_refresh { my $self = shift; ... }
sub compile { ... }
# ...
sub _form_main_dir { my $self = shift; $self->{MAIN_DIR} = /usr/src; }
In some script:
#!/usr/bin/perl
use strict; use warnings;
use Java::Build::MyBuild;
my $project = Java::Build::MyBuild->new(
BUILD_SUCCESS => /where/this/module/can/store/build/state.info,
CONFIG_LOC => /some/path/to/my.conf,
NAME => MyApplication,
SRC_DIR => /where/my/java/files/live,
SUBPROJECTS => [
{ NAME => "util" },
{ NAME => "app", USING => &compile_app },
],
);
$project->targets(qw( init cvs_refresh unique compile ));
$project->GO(@ARGV);
package Java::Build::MyBuild; # re-enter the build package to add targets
sub unique {...} # a routine that MyBuild doesnt provide
<<lessSYNOPSIS
There are two (or more) code files needed to effectively use this module. First, create a subclass of this class:
package Java::Build::MyBuild;
use Carp;
# Do the following in a BEGIN block before the use base statement:
BEGIN { $ENV{CLASSPATH} .= ":/path/to/suns/lib/tools.jar"; }
use base Java::Build::GenericBuild;
# use any other Java::Build modules you need
my @args = (
{ BUILD_SUCCESS => sub { croak "You must supply a BUILD_SUCCESS" } },
{ CONFIG_LOC => sub { croak "You must supply a CONFIG_LOC" } },
{ MAIN_DIR => &_form_main_dir },
# ...
); # Include all the attributes that matter to your build here, and
# what to do if the caller omits them.
# If they are required, die in the subroutine, otherwise provide a
# subroutine reference which will fill in the default
sub new {
my $class = shift;
my $self = shift;
$self->{ATTRIBUTES} = @attrs;
process_attrs($self);
return bless $self, $class;
}
# Include common targets callers can share here. Put unique targets
# in the calling scripts (see below).
sub init { my $self = shift; ... }
sub cvs_refresh { my $self = shift; ... }
sub compile { ... }
# ...
sub _form_main_dir { my $self = shift; $self->{MAIN_DIR} = /usr/src; }
In some script:
#!/usr/bin/perl
use strict; use warnings;
use Java::Build::MyBuild;
my $project = Java::Build::MyBuild->new(
BUILD_SUCCESS => /where/this/module/can/store/build/state.info,
CONFIG_LOC => /some/path/to/my.conf,
NAME => MyApplication,
SRC_DIR => /where/my/java/files/live,
SUBPROJECTS => [
{ NAME => "util" },
{ NAME => "app", USING => &compile_app },
],
);
$project->targets(qw( init cvs_refresh unique compile ));
$project->GO(@ARGV);
package Java::Build::MyBuild; # re-enter the build package to add targets
sub unique {...} # a routine that MyBuild doesnt provide
Download (0.030MB)
Added: 2007-06-02 License: Perl Artistic License Price:
874 downloads
Sun Java Platform Enterprise Edition 5 Update 2
Sun Java Platform Enterprise Edition is the industry standard for developing portable, robust Java applications. more>>
Sun Java Platform Enterprise Edition (Java EE) is the industry standard for developing portable, robust, scalable, and secure server-side Java applications.
Building on the solid foundation of Java SE, Java EE provides Web services, component model, management, and communications APIs that make it the industry standard for implementing enterprise class service-oriented architecture (SOA) and Web 2.0 applications.
<<lessBuilding on the solid foundation of Java SE, Java EE provides Web services, component model, management, and communications APIs that make it the industry standard for implementing enterprise class service-oriented architecture (SOA) and Web 2.0 applications.
Download (MB)
Added: 2006-12-20 License: Freely Distributable Price:
1044 downloads
Java Binary Enhancement Tool 3 R1
Java Binary Enhancement Tool is a Java assembler, dissassembler, and binary editor. more>>
The Java Binary Enhancement Tool (JBET) is a general Java program analysis and manipulation tool. Existing class files can be disassembled, reassembled, or edited programmatically through the JBET API. JBET can also be used to create new Java class files from scratch. JBET uses a convenient internal representation of all the contents of Java binary (.class) files, allowing the user to edit the classes easily, in a structured manner.
JBET was developed as part of the DARPA Self-Protecting Mobile Agents project under the OASIS and Active Networks programs (contract number N66001-00-C-8602) in order to study automated software obfuscation.
The Java language was chosen for this project because of the (relative) ease of constructing binary editing tools provided by the large amount of type information present in the class files. Our two reports, the Obfuscation Techniques Evaluation Report, and the Obfuscation Report, are available from the download area. The obfuscation tool developed is not part of this release.
JBET was also used in the DARPA/AFRL Survivable Server project (contract number F30602-00-C-0183) to add additional security checks to the Java Standard Library. (The Java SecurityManager API does not support many desirable security checks, such as continued authorization of file accesses after opening.)
JBET was used to replace the native method references in the Java standard library with stubs that call a pluggable security policy. This tool, called Jpolicy, is also available for download at this website. Jpolicy is very incomplete at this time, but may be interesting to those working in Java security or changing the standard library themselves.
The internal representation of Java class files used by JBET is intented to make it easy for programmers to write Java binary code transforms. Each element of Java class files has a corresponding internal data structure: ClassInfo for entire classes, MethodInfo for methods, FieldInfo for fields, Snippit for code blocks, and Instruction for individual instructions. Snippit and Instruction understand Java opcode syntax and semantics, allowing automated creation of valid Java programs. A Java-compatible class verifier is also included.
Some code transforms are difficult to program directly by manipulating Java instructions. For those transforms, a directed acyclic graph (DAG) representation of code is available. In the DAG representation, each basic block has a corresponding DAG, with a set of input and output nodes. Edges in the graph connect "producer" nodes (such as constants, or the result of calculations) to "user" nodes (such as method calls or other calculations). Methods are divided into basic blocks and control flow is stored at the basic block level (possible because Java has only fixed jump targets)
JBET requires a Java 1.4 virtual machine to run, although it can operate on class files from earlier Java versions. The packaging and build environment supplied supports Linux and Windows with Cygwin; however, the build process is simple and could be performed manually on other platforms. Perl is required for regression testing.
Jpolicy requires a Java 1.4 virtual machine to build, either Linux or Windows NT/XP with Cygwin. gcc is required for building on Windows (supplied with Cygwin). The runtime system can be either Java 1.3 or 1.4 (with Suns JVM only), running on Linux or Windows NT/XP. Windows 9x and Windows 2000 may work as well, but have not been tested.
Installation
1. Install jdk 1.4.1.
2. Set CLASSPATH to jdk1.4.1/jre/lib/rt.jar
3. cd src; make
4. If that didnt work, examine the makefile. java or javac may not be in the path.
5. To build a jar file that can be used with "java -jar jbet.jar", run "make jar".
6. If you have perl installed, run the tests with "make test".
Optionally, run "make regen; make test".
Make a symbolic link from jbet3/bin/jbet to somewhere in your path.
Usage
JBET uses the JNI format for class names, and JNI type and method descriptors. For a summary of this syntax, use jbet help syntax. Suns JVM specification may also be helpful.
To look at a class disassembly, use jbet print. Try disassembling a class you have source for, and was built with debug info (-g): jbet -P < classpath > print < classname >. Suns JVM specification has an instruction reference.
<<lessJBET was developed as part of the DARPA Self-Protecting Mobile Agents project under the OASIS and Active Networks programs (contract number N66001-00-C-8602) in order to study automated software obfuscation.
The Java language was chosen for this project because of the (relative) ease of constructing binary editing tools provided by the large amount of type information present in the class files. Our two reports, the Obfuscation Techniques Evaluation Report, and the Obfuscation Report, are available from the download area. The obfuscation tool developed is not part of this release.
JBET was also used in the DARPA/AFRL Survivable Server project (contract number F30602-00-C-0183) to add additional security checks to the Java Standard Library. (The Java SecurityManager API does not support many desirable security checks, such as continued authorization of file accesses after opening.)
JBET was used to replace the native method references in the Java standard library with stubs that call a pluggable security policy. This tool, called Jpolicy, is also available for download at this website. Jpolicy is very incomplete at this time, but may be interesting to those working in Java security or changing the standard library themselves.
The internal representation of Java class files used by JBET is intented to make it easy for programmers to write Java binary code transforms. Each element of Java class files has a corresponding internal data structure: ClassInfo for entire classes, MethodInfo for methods, FieldInfo for fields, Snippit for code blocks, and Instruction for individual instructions. Snippit and Instruction understand Java opcode syntax and semantics, allowing automated creation of valid Java programs. A Java-compatible class verifier is also included.
Some code transforms are difficult to program directly by manipulating Java instructions. For those transforms, a directed acyclic graph (DAG) representation of code is available. In the DAG representation, each basic block has a corresponding DAG, with a set of input and output nodes. Edges in the graph connect "producer" nodes (such as constants, or the result of calculations) to "user" nodes (such as method calls or other calculations). Methods are divided into basic blocks and control flow is stored at the basic block level (possible because Java has only fixed jump targets)
JBET requires a Java 1.4 virtual machine to run, although it can operate on class files from earlier Java versions. The packaging and build environment supplied supports Linux and Windows with Cygwin; however, the build process is simple and could be performed manually on other platforms. Perl is required for regression testing.
Jpolicy requires a Java 1.4 virtual machine to build, either Linux or Windows NT/XP with Cygwin. gcc is required for building on Windows (supplied with Cygwin). The runtime system can be either Java 1.3 or 1.4 (with Suns JVM only), running on Linux or Windows NT/XP. Windows 9x and Windows 2000 may work as well, but have not been tested.
Installation
1. Install jdk 1.4.1.
2. Set CLASSPATH to jdk1.4.1/jre/lib/rt.jar
3. cd src; make
4. If that didnt work, examine the makefile. java or javac may not be in the path.
5. To build a jar file that can be used with "java -jar jbet.jar", run "make jar".
6. If you have perl installed, run the tests with "make test".
Optionally, run "make regen; make test".
Make a symbolic link from jbet3/bin/jbet to somewhere in your path.
Usage
JBET uses the JNI format for class names, and JNI type and method descriptors. For a summary of this syntax, use jbet help syntax. Suns JVM specification may also be helpful.
To look at a class disassembly, use jbet print. Try disassembling a class you have source for, and was built with debug info (-g): jbet -P < classpath > print < classname >. Suns JVM specification has an instruction reference.
Download (0.19MB)
Added: 2005-03-07 License: BSD License Price:
1697 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above java class filewriter search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed