У меня есть пакет исходного кода Java, который, как известно, успешно компилируется. Я пытаюсь скомпилировать пакет с ant (файл build.xml присутствует). Когда я бегу муравей все операторы импорта Java генерирует сообщение об ошибке типа:компиляция исходного кода java с ant
java.awt.geom.Path2D импорт не может быть решена»(конкретное сообщение, зависит от того, что импортируется)
Очевидно, что пути пакета не определены, и я понятия не имею, где запрошенные импорты живут в файловой системе. Я предполагаю, что если я знаю пути, которые устанавливают $CLASSPATH
, программа будет скомпилирована. Я использую opensuse 13.2 и установленную java информация:
java -version
openjdk version "1.8.0_45"
OpenJDK Runtime Environment (build 1.8.0_45-b14)
OpenJDK 64-Bit Server VM (build 25.45-b02, mixed mode)
Может ли кто-нибудь указать мне, где найти пакеты java и как получить муравья для компиляции источников?
Командная строка используется для компиляции источников: муравей
build.xml находится в том же каталоге, что муравей запускается из которых также содержит каталог Src. Это рабочий проект, я просто не знаю, как настроить стандартные расположения библиотек (я не являюсь Java-типом любым способом).
Обновление.
Я нашел путь к библиотекам openjdk в /usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/jre/lib/rt.jar и попытался скомпилировать 2 разных способа, но все же получить импорт не удается разрешить сообщения об ошибках.
Компиляция с -lib вариант не работает:
муравей -lib /usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/jre/lib/rt.jar
Установка переменной CLASSPATH среды не работает:
экспорт CLASSPATH =/USR/lib64/JVM/Java-1.8.0-OpenJDK-1.8.0/JRE/Библиотека/rt.jar
муравей
Содержимое build.xml:
<?xml version="1.0"?>
<project name="MazR" default="jar" basedir=".">
<property name="jar.file" value="${ant.project.name}.jar"/>
<property name="src.dir" value="src"/>
<property name="build.dir" value="build"/>
<property name="dist.dir" value="dist"/>
<property name="applet.html" value="applet.html"/>
<taskdef resource="checkstyletask.properties"/>
<target name="init">
<mkdir dir="${build.dir}"/>
<mkdir dir="${dist.dir}"/>
</target>
<target name="compile" depends="init">
<javac srcdir="${src.dir}" destdir="${build.dir}" debug="on"
includeantruntime="false">
<compilerarg value="-Xlint"/>
</javac>
</target>
<target name="jar" depends="compile">
<jar destfile="${dist.dir}/${jar.file}" basedir="${build.dir}">
<manifest>
<attribute name="Main-Class" value="com.nullprogram.maze.RunMaze"/>
</manifest>
</jar>
<copy file="${applet.html}" tofile="${dist.dir}/index.html"/>
</target>
<target name="run" depends="jar">
<java jar="${dist.dir}/${jar.file}" fork="true"/>
</target>
<target name="clean">
<delete dir="${build.dir}"/>
<delete file="${jar.file}"/>
</target>
<target name="check">
<checkstyle config="checkstyle.xml">
<fileset dir="src" includes="**/*.java"/>
</checkstyle>
</target>
<target name="format" description="Run the indenter on all source files.">
<apply executable="astyle">
<arg value="--mode=java"/>
<arg value="--suffix=none"/>
<fileset dir="${src.dir}" includes="**/*.java"/>
</apply>
</target>
<target name="applet" depends="jar" description="Run the applet version.">
<exec executable="appletviewer">
<arg value="${dist.dir}/index.html"/>
</exec>
</target>
<target name="javadoc" description="Generate Javadoc HTML.">
<javadoc destdir="${dist.dir}/javadoc">
<fileset dir="${src.dir}" includes="**/*.java" />
</javadoc>
</target>
</project>
Любая идея, почему импорт, кажется, не работает?
Спасибо!
Дальнейшее обновление.
Я добавил определение classpath в build.xml, как показано ниже, но без радости. Я не использовал Java в течение многих-многих лет, поэтому я вышел из своей глубины, помогая отчаянно оценивать.
<property name="java.class.path" location="/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/jre/lib/rt.jar"/>
<target name="compile" depends="init">
<javac srcdir="${src.dir}" destdir="${build.dir}" debug="on"
includeantruntime="false">
<compilerarg value="-Xlint"/>
<classpath>
<pathelement path="${java.class.path}/"/>
</classpath>
</javac>
</target>
может быть установлен $ JAVA_HOME? – ZhongYu
Если вы используете Eclipse, попробуйте следующее: http://stackoverflow.com/questions/16918959/import-cannot-be-resolved или вместо этого взгляните на это: http://stackoverflow.com/questions/16664591/ the-import-package-не может быть разрешен – bphilipnyc
Просьба показать муравьиную задачу, специфичную для компиляции (javac), используемой вами. Также см. Документацию [javac ant documentation] (https://ant.apache.org/manual/Tasks/javac.html) и обратите внимание, что у вас есть 3 варианта верхнего класса, которые обеспечивают путь к классам: 1. атрибут classpath 2. вложенный элемент 3 в classpath. classpathref атрибут – YoYo