API e documentação claros

Documentação Extensiva e dezenas de  exemplos.

Suporte imediato

Obtenha resposta dos engenheiros da ComfyJ no prazo de um dia útil no site de suporte ou no serviço de suporte premium.

Experiência comprovada

Criado por engenheiros que têm integrado Java com o MS IE, Firefox, WebKit, Safari e Chromium há 20 anos.

Integração simples

Amostra de automatização do IE

  • /.../
    • /*
    •  * Copyright (c) 2000-2024 TeamDev Ltd. All rights reserved.
    •  * TeamDev PROPRIETARY and CONFIDENTIAL.
    •  * Use is subject to licence terms.
    •  */
  •  
  • import ...
    • import com.jniwrapper.win32.automation.Automation;
    • import com.jniwrapper.win32.automation.OleContainer;
    • import com.jniwrapper.win32.automation.IDispatch;
    • import com.jniwrapper.win32.automation.types.Variant;
    • import com.jniwrapper.win32.ole.types.OleVerbs;
    •  
    • import javax.swing.*;
    • import java.awt.*;
    • import java.awt.event.*;
  •  
  • /**...*/
    • /**
    •  * This example demonstrates the embedding of Browser component into Java.
    •  */
  • public class IEAutomationSample extends JFrame {...
    • private OleContainer container = new OleContainer();
    •  
    • public IEAutomationSample() throws HeadlessException {...
      • super("Internet Explorer ");
      •  
      • Container contentPane = getContentPane();
      • contentPane.setLayout(new BorderLayout());
      • contentPane.add(container);
      •  
      • container.createObject("Shell.Explorer"); // Create Browser component by its ProgID
      •  
      • final Automation webBrowserAutomation = new Automation(container.getOleObject());
      • webBrowserAutomation.invoke("Navigate2", new Object[]{"www.teamdev.com"});
      •  
      • Variant documentVariant = webBrowserAutomation.getProperty("Document");
      • IDispatch document = documentVariant.getPdispVal();
      • System.out.println("document = " + document.isNull());
      •  
      • this.addWindowListener(new WindowAdapter() {
        • public void windowOpened(WindowEvent e) {
          • // Show browser component, when parent window is shown
          • container.doVerb(OleVerbs.SHOW);
        • }
        •  
        • public void windowClosing(WindowEvent e) {
          • // Destroy the object when window is closed
          • container.destroyObject();
        • }
      • });
      }
    •  
    • public static void main(String[] args) throws Exception {...
      • final IEAutomationSample sample = new IEAutomationSample();
      • sample.setSize(800, 600);
      • sample.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      • sample.setLocationRelativeTo(null);
      • sample.setVisible(true);
      }
    }
  •  

Integração COM-Java

Interfaces COM e Wrappers de Tipos de Dados

Os wrappers de interfaces e tipos de dados COM permitem trabalhar com tipos e interfaces COM como objetos Java comuns. Por exemplo, pode usar IUnknown, IClassFactory e IDispatch como interfaces Java típicas, e Variant(VARIANT), BStr(BSTR), SafeArray etc. como tipos Java comuns.

Gestão da Memória COM

Todos os recursos COM e outros recursos nativos terão lixo recolhido automaticamente, ou pode libertá-los se a lógica da aplicação o exigir.

Automatização VTBL e COM

ComfyJ permite invocar métodos de um objeto COM através de seus índices de função na VTBL (Virtual Method Table), ou por seus nomes usando a abordagem Automation. Além disso, o Automation permite obter e definir propriedades de um objeto COM, incluindo as indexadas  e  as  nomeadas.

Suporte para vários modelos de threading

O ComfyJ fornece um conjunto de diferentes modelos de concorrência que pode ser utilizado para inicializar a integração COM na sua aplicação Java.

Suporte DCOM

O ComfyJ permite criar um objeto COM em um servidor remoto.

Manipulação de Eventos COM

ComfyJ fornece uma técnica COM padrão para criar e aconselhar manipuladores de eventos COM para um objeto COM.

Incorporação de Componentes OLE/OCX/ActiveX no Swing

O O ComfyJ inclui o componente OleContainer Swing, que permite:

  • Utilizar qualquer componente visual COM (OCX/ActiveX) em Java Swing UI. Utilizando esta funcionalidade, é possível embutir várias aplicações ActiveX, como o Internet Explorer, Acrobat Reader e Microsoft Office, bem como vários componentes de media, como o Windows MediaPlayer, DVD Player, QuickTime, ShockwaveFlash, etc.
  • Criar um objeto incorporado utilizando ProgID, CLSID ou a partir de uma pasta de arquivos. Além disso, pode inserir um objecto COM (que implemente a interface COM IOleObject) no contentor.
  • Salvar e carregar um OleObject incorporado de ou para um arquivo num formato binário especial.

Integração Java-para-COM

Este aspecto do ComfyJ permite-lhe criar servidores Java COM puramente em Java. Em outras palavras, um servidor Java COM concebido pode ser exposto como objetos COM a outras aplicações COM sem escrever uma linha de código nativo.

Desenvolvimento de Servidores Java COM

Para simplificar a criação de servidores Java COM personalizados, o ComfyJ fornece as classes base como IUnknownServer e IDispatchServer para que qualquer objeto Java COM personalizado possa herdar essas classes, dependendo dos requisitos da aplicação. Tais servidores Java COM podem implementar tantas interfaces COM quanto necessário - desde interfaces COM padrão e interfaces COM geradas pelo aplicativo Gerador de Código do ComfyJ, até interfaces personalizadas.

Registro de Servidores Java COM

O ComfyJ também fornece maneiras convenientes para registrar servidores Java COM criados. Esse registro pode ser realizado em tempo de execução, ou seja, para manipuladores de eventos COM, ou no COM Registry usando um aplicativo ServerManager. Além disso, tem a possibilidade de registrar servidores Java COM em tempo de execução sem utilizar a aplicação ServerManager. Esses servidores Java COM registrados podem ser utilizados por outras aplicações COM.

Utilitário CodeGenerator

Utilitário CodeGenerator

Com esta aplicação agrupada, é possível gerar wrappers Java COM para componentes COM ou bibliotecas de tipos COM. Estas classes geradas permitem-lhe trabalhar com objetos COM como se fossem objetos Java normais. Além disso, esta aplicação pode compilar as classes geradas e empacotá-las num ficheiro JAR, se necessário.

Exemplos de aplicações criadas pelos nossos clientes

Aplicações Java que se integram com os componentes do MS Office

e permite criar, editar e exibir vários documentos do Office, como documentos do Word, Excel e PowerPoint. O ComfyJ fornece o componente OfficeContainer para incorporar documentos do Office.

Aplicações Java que integram vários componentes ActiveX do sistema (como MediaPlayer, InternetExplorer, etc.) e de terceiros (como PDF Viewer, Shockwave Flash Player, etc.) diretamente no Swing UI.

O ComfyJ fornece o componente OleContainer que permite incorporar qualquer componente ActiveX no Java Swing UI.

Bibliotecas Java que se integram em várias bibliotecas COM Type.

O ComfyJ dá às aplicações Java uma grande flexibilidade para integrar com qualquer biblioteca de tipos COM. O ComfyJ Code Generator fornece a capacidade de criar os wrappers Java para tipos COM a partir de uma Biblioteca COM Type.

Aplicações Java que expõem classes Java para COM.

O ComfyJ permite criar classes COM diretamente em Java e expô-las como servidores Java COM para que outras aplicações COM possam acessá-las através de COM.

Ajuda

Suporte de avaliação

Durante o período de avaliação, utilize o endereço de correio eletrônico fornecido na mensagem de correio eletrônico de avaliação.

Se tiver uma inscrição de suporte ativa, utilize o endereço de correio eletrônico fornecido na mensagem de correio eletrônico de confirmação da compra da licença.

Suporte Avaliação

Fornecido por 30 dias

Suporte Padrão

Fornecido por um ano com 25% de desconto para renovação

Suporte Premium

Tempo e materiais de serviço baseado em contratos
Ajuda com o uso do produto
Ajuda com o uso do produto
Ajuda com o uso do produto
Resposta no prazo de um dia útil
Resposta no prazo de um dia útil
Resposta no prazo de um dia útil
Fornecido por correio eletrônico
Fornecido por correio eletrônico
Fornecido por correio eletrônico
Atualizações de produto
Atualizações de produto
Telefone, chat e ambiente de trabalho remoto
Desenvolvimento de funcionalidades
Prioridade na resolução de problemas
Licenciamento e preços

Pague uma vez, use para sempre

A utilização da licença é regida pelo contrato de licença do produto

Por desenvolvedor

$1,149
  • 1 desenvolvedor

  • Licença perpétua A licença perpétua significa que você sempre poderá usar a versão do produto que comprou ou aquela para a qual atualizou durante a assinatura de suporte válida.

  • Distribuição gratuita na sua aplicação

  • Projectos Ilimitados

  • Atualizações e Suporte

  • 1 ano de actualizações de produtos

  • 1 ano de assistência técnica

  • 55 horas de suporte durante 1 ano

Projeto

$3,399
  • Desenvolvedores Ilimitados

  • Licença perpétua A licença perpétua significa que você sempre poderá usar a versão do produto que comprou ou aquela para a qual atualizou durante a assinatura de suporte válida.

  • Distribuição gratuita na sua aplicação

  • 1 projeto Incluído num pacote Java do projeto.

  • Atualizações e Suporte

  • 1 ano de atualizações de produtos

  • 1 ano de assistência técnica

  • 75 horas de suporte durante 1 ano

Em toda a empresa

$10,699
  • Desenvolvedores Ilimitados

  • Licença perpétua A licença perpétua significa que você sempre poderá usar a versão do produto que comprou ou aquela para a qual atualizou durante a assinatura de suporte válida.

  • Distribuição gratuita na sua aplicação

  • Projetos Ilimitados

  • Atualizações e Suporte

  • 1 ano de atualizações de produtos

  • 1 ano de assistência técnica

  • 300 horas de suporte durante 1 ano

Atualizações e Suporte renovação da inscrição por 1 ano

com 25% de desconto no preço da licença

Os preços apresentado nesta página não incluem quaisquer impostos.

Obter licenças através de revendedores

Perguntas mais frequentes

Questões técnicas

É possível fazer a integração com um componente .NET utilizando o ComfyJ?

Só é possível se esse componente .NET for construído com a interoperabilidade COM ativada.

O que significa a propriedade AutoDelete da interface IUknown?

Esta propriedade instrui o NativeResourceCollector (NRC) do ComfyJ se deve liberar o objeto COM automaticamente ou não. Por padrão, esta propriedade é definida como true para todos os recursos que implementam a interface AutoDeleteParameter. Quando esta propriedade é definida como false, o método .release() não deve ser chamado.

Como consultar uma interface COM necessária a partir de um objeto COM no ComfyJ?

Uma interface COM necessária pode ser consultada utilizando o método IUnknown.queryInterface(), por exemplo:

IOleObjectImpl oleObject = new IOleObjectImpl();
comObject.queryInterface(oleObject.getIID(), oleObject);

Ou

IOleObjectImpl oleObject = new IOleObjectImpl(comObject);

Posso usar o ComfyJ no applet Java?

Sim, o ComfyJ pode ser usado em applets Java. Existem vários exemplos no arquivo de distribuição do ComfyJ, em sua subpasta samples\Applets\src, que demonstram o uso do ComfyJ em applets Java.

Posso libertar um objeto COM?

Sim, todos os objetos COM podem ser libertados utilizando o seu método IUnknown#release(). Certifique-se de que definiu a sua propriedade AutoDelete como false antes de libertar o objeto.

O ComfyJ fornece a capacidade de incorporar um componente ActiveX a uma janela Java?

Sim, o ComfyJ fornece o componente Java OleContainer que permite a incorporação de qualquer componente ActiveX.

Onde devo colocar meus arquivos de licença do ComfyJ (jniwrap.lic, comfyj.lic)?

A forma mais simples é colocar estes arquivos na subpasta \META-INF\ de um arquivo JAR da aplicação.

Como posso redistribuir a biblioteca JNIWrapper nativa (jniwrap.dll, jniwrap64.dll, etc.) com a minha aplicação?

A forma mais simples é colocar todos os arquivos de biblioteca JNIWrapper necessários na pasta raiz de um arquivo JAR da aplicação.

Quando invoco o método de um objeto COM, este lança uma exceção COM: O método do objeto COM devolve o código de erro: 0x800401F0; CO_E_NOTINITIALIZED

A COM deve ser inicializada utilizando o método ComFunctions.coInitialize() em cada thread Java (excepto OleMessageLoop) antes de trabalhar com objectos COM.

É possível expor um objeto Java ao COM utilizando o ComfyJ?

Sim, ComfyJ fornece a capacidade de criar servidores Java COM e registrá-los em COM.

Como é que configuro a licença?

Questões de licenciamento

Em que se baseia o seu licenciamento?

O nosso licenciamento é baseado nas versões do ComfyJ. Ao adquirir a licença do nosso produto, você tem o direito de utilizar a versão principal atual do produto.

Posso receber uma atualização gratuita?

As atualizações de versões principais e secundárias emitidas durante o período ativo da inscrição do Suporte Padrão são gratuitas. Após a expiração da inscrição do Suporte Padrão, pode renová-la com um desconto de 25% sobre o preço atual da licença.

Quais são as condições de utilização do ComfyJ?

Por favor, consulte o Contrato de Licença de Produto.

Há 6 pessoas na nossa equipa e 2 delas precisam de utilizar o ComfyJ. Quantas licenças precisamos comprar?

Só precisa comprar 2 licenças. Licenciamos a nossa biblioteca em função do número de pessoas que escrevem código utilizando a nossa biblioteca.

Se retirarmos um programador, que trabalha com o ComfyJ, do projeto, podemos reatribuir a licença a outro programador?

Isso é possível com a Licença Por Desenvolvedor.

Quantas cópias do meu produto posso distribuir com o ComfyJ incluído?

Você pode distribuir um número ilimitado de cópias do seu produto com a nossa biblioteca incluída.

Temos 5 pessoas que trabalham com a ComfyJ num único produto.

Poderá querer adquirir uma Licença de Projeto, que é rentável no caso de haver 3 ou mais programadores na equipa. A Licença de Projeto está vinculada a um único projeto que realiza, mas permite que qualquer número de programadores da sua empresa trabalhe com a nossa biblioteca.

Como é que uma Licença de Projeto está associada ao meu projeto?

A Licença de Projeto é vinculada ao seu projeto através de um nome de classe totalmente qualificado. Um nome totalmente qualificado para uma classe é o nome do pacote seguido pelo nome da classe, separados por um ponto (.). Por exemplo: com.mycompany.myproduct.MyClass

Que classe pode ser utilizada para vincular a licença?

Esta pode ser qualquer classe da sua aplicação. O único requisito é que seja incluída no caminho de classes da sua aplicação Java.

Qual é a definição de “projeto” em termos da Licença de Projeto?

Quando dizemos “projeto”, estamos pensando num produto da sua empresa, incluindo as suas futuras versões do produto ou potenciais trabalhos derivados baseados no seu produto.

Poderemos utilizar a Licença de Projeto noutro projeto que façamos?

A Licença de Projeto está associada apenas a um projeto.

Gostaríamos de obter uma licença para vários projetos para uma equipa de programadores. Qual é a sua oferta?

A melhor solução seria comprar a Licença para Toda a Empresa, que cobre qualquer número de desenvolvedores e projetos em uma empresa.

Como posso encontrar o arquivo de licença?

Após a compra da licença, receberá uma pasta com dois tipos de arquivo de licença: desenvolvimento e runtime. As licenças de desenvolvimento são destinadas a serem usadas no processo de desenvolvimento. As licenças de runtime devem ser usadas para distribuição do seu software com o ComfyJ incluso.

Teste gratuito de 30‑dias

Enviaremos por correio eletrônico a sua chave de avaliação e um guia de início rápido.

Não utilize caracteres especiais ou espaços

Introduza um endereço de correio eletrônico válido

Leia e aceite os termos para continuar.
Spinner

Enviando…

Desculpe, o envio foi interrompido

Tente novamente. Se o problema persistir, contate-nos através do endereço info@teamdev.com.

Obrigado!

Inicie o seu teste gratuito em alguns passos simples

1

Verificar o seu correio eletrônico

Links para baixar sua licença de avaliação e arquivo de distribuição chegarão na sua caixa de entrada em alguns minutos.

Se a mensagem se perder na sua caixa de correio, tente procurar por um e-mail do ComfyJ Evaluation Support com o assunto “Seu Período de Testes Gratuito de 30 Dias”.

2

Instalar a licença

Para começar a usar o ComfyJ

  • faça o download da sua licença de avaliação,
  • faça o download e extraia o arquivo de distribuição,
  • inclua todos os arquivos JAR do diretório lib e a licença de avaliação licence.jar no caminho da classe da sua aplicação.
3

Começar a trabalhar

Dê uma olhada no tutorial para colocar o ComfyJ em funcionamento num instante.

Veja a Documentação de Suporte para mais informações sobre como usar o ComfyJ.

Consulte os exemplos prontos para obter instruções e ideias sobre o que pode fazer com o seu recém-adquirido ComfyJ.