ti-enxame.com

Como usar bibliotecas para algoritmos parte I do curso Coursera no Eclipse

Comecei o Coursera curso de Algoritmos . As atribuições práticas devem ser feitas em Java e sugerem o uso do DrJava como IDE, mas é realmente inconveniente. Então, eu gostaria de usar o Eclipse, mas o problema é que não consegui usar 2 bibliotecas ( algs4.jar e stdlib.jar ), que são fornecidos para este curso. Depois de executar as etapas de este guia eu pude incluí-las no meu projeto:

enter image description here

mas quando tento usar as classes deles no meu projeto, o Eclipse não permite, e não consegui importá-las. CtrlSpace:

enter image description here

E mesmo quando estou tentando importar classe diretamente como import stdlib.StdRandom; ainda não funciona.

O que posso fazer para que ele funcione corretamente?

21
Seekeer

Por que você não usa esses dois JARs - stdlib-package.jar e algs4-package.jar.

E abaixo da página de código ( http://algs4.cs.princeton.edu/code/ )

P. Se eu usar um pacote nomeado para estruturar meu código, o compilador não poderá mais acessar as bibliotecas em stdlib.jar ou algs4.jar. Por que não?

A. As bibliotecas em stdlib.jar e algs4.jar estão no pacote "padrão". Em Java, você não pode acessar classes no pacote padrão a partir de um pacote nomeado. Se você precisar usar nossas bibliotecas com um pacote nomeado, poderá usar estas versões do pacote: stdlib-package.jar e algs4-package.jar.

Aviso: se você estiver usando Princeton COS 226 ou Coursera, Algorithms, Part I ou II, deverá usar a versão padrão do pacote de nossas bibliotecas para facilitar a classificação.

Mostrando o sucesso do meu teste: Showing my test success

17
MorningFung

Você não pode acessar as APIs porque os autores as definiram no pacote padrão e Java não as reconhece. Os autores mencionam em seu site ( http: // algs4 .cs.princeton.edu/code / ) que, se você os estiver usando em pacotes nomeados, configure seu caminho de construção para incluir os dois jars de http://algs4.cs.princeton.edu/code /stdlib-package.jar e http://algs4.cs.princeton.edu/code/algs4-package.jar .

HTH!

9
OVB

Tudo o que você precisa fazer para incluir os JARs é clicar com o botão direito do mouse na parte superior da árvore do projeto/objeto no painel Explorer do projeto à esquerda, em "Caminho da Construção/Configurar Caminho da Construção", clique na guia "Bibliotecas" e "adicione frascos externos", adicione-os lá.

Felizmente, eles devem ficar disponíveis ao editar seu código-fonte e ao construí-lo no Eclipse depois disso.

Observe também que, supondo que você tenha o nome da classe certo ao digitar, você poderá passar o mouse sobre o nome da classe no seu código e o recurso intelli-sense/auto-complete irá sugerir de onde você deve importá-lo. Você pode adicionar a importação à biblioteca correta dessa maneira com facilidade.

5
John Humphreys - w00te

Siga os passos abaixo

Clique com o botão direito do mouse em seu projeto> Propriedades. Ele abrirá a seguinte janela

enter image description here

Selecione "Java Build Path" no lado esquerdo. Agora selecione a guia "Bibliotecas" no lado direito

enter image description here

Clique em "Adicionar frascos externos"

enter image description here

Adicione os arquivos Jar.

Agora você está pronto

5
Lemon Juice

Uma opção é que exista um repositório maven no github fornecido por slok . A parte ruim disso é que os jars adicionados foram aqueles que usam o pacote padrão, portanto você não pode usar uma estrutura de pacote.

[~ # ~] update [~ # ~] : Adicionei as versões do pacote do jar ao repositório e criou uma solicitação de recebimento agora foi aceito.

Observe que eu alterei os identificadores para corresponder à estrutura original do pacote de Princeton.

<dependencies>
  <dependency>
    <groupId>edu.princeton.cs.introcs</groupId>
    <artifactId>algs4-package</artifactId>
    <version>1.0</version>
  </dependency>

  <dependency>
    <groupId>edu.princeton.cs.introcs</groupId>
    <artifactId>stdlib-package</artifactId>
    <version>1.0</version>
  </dependency>
</dependencies>

<repositories>
  <repository>
    <id>org.coursera.algs4</id>
    <name>Algs4 coursera course custom repository</name>
    <url>https://raw.github.com/slok/algs4-mvn-repo/master</url>
  </repository>
</repositories>
2
Brett Ryan

A partir do site: http://algs4.cs.princeton.edu/code/

Eclipse (manual). Faça o download de stdlib.jar e algs4.jar em uma pasta e adicione cada arquivo jar> à variável de caminho de classe no caminho de construção de um projeto via Projeto ->> Propriedades -> Java Caminho de Construção -> Libaries -> Adicionar JARs externos.

2
tk_y1275963

Provavelmente é porque não há estrutura de pacotes nas bibliotecas, então você não pode importar classes dela. Isso pode ajudá-lo, Como usar classes em Bibliotecas Referenciadas no Eclipse .

1
Khalid Amiri

Se você ainda está procurando a solução: -

OS X/Linux

% javac -cp .:stdlib.jar MyProgram.Java % Java -cp .:stdlib.jar MyProgram

Janelas

% javac -cp .;stdlib.jar MyProgram.Java % Java -cp .;stdlib.jar MyProgram

Para referência: - https://introcs.cs.princeton.edu/Java/stdlib/

0
Bharat Gupta

No caso do Gradle, inclua a entrada do repositório maven na seção de repositórios do build.gradle da seguinte maneira:

repositories {
    mavenCentral()
    maven {
        url 'https://dl.bintray.com/algs4/maven/'
    }
}

Adicione a dependência da seguinte maneira:

compile group: 'edu.princeton.cs', name: 'algs4', version: '1.0.4'

No caso do Maven, adicione a entrada nos tags de repositórios em build.xml, da seguinte maneira:

<repositories>
  <repository>
    <id>org.coursera.algs4</id>
    <name>Algs4 lib</name>
    <url>https://dl.bintray.com/algs4/maven/</url>
  </repository>
</repositories>

Adicione a dependência da seguinte maneira:

<dependencies>
  <dependency>
    <groupId>edu.princeton.cs</groupId>
    <artifactId>algs4</artifactId>
    <version>1.0.4</version>
  </dependency>
</dependencies>
0
Sanju Varghese

Estou usando Gradle. Nesse caso, o arquivo build.gradle deve ter uma dependência e pode parecer

repositories {
    jcenter()
}

dependencies {
    compile 'edu.princeton.cs:algs4:1.0.3'
}

Depois disso, você pode importar qualquer coisa dele em sua classe. Por exemplo:

import edu.princeton.cs.algs4.StdIn;
0
Kate