Я новичок в java, но могу найти свой путь достаточно, чтобы немного программировать.
Я наткнулся на это, и я решил попробовать (используя IntelliJ 14, Windows 8.1, графическую карту GeForce)
http://www.java2s.com/Code/Java/3D/Thisexamplecreatesa3DflyoverofthecityofBoston.htm
После добавления всех javax-библиотек и т.д. Программа компилируется, но затем падает с этой ошибкой
java.io.FileNotFoundException: heli.obj (The system cannot find the file specified)
Error could not load sound file: javax.media.j3d.SoundException: MediaContainer: setURL - bad URL
Кажется, это строка, в которой он загружает файл
protected Group createGeometryGroup( Appearance app, Vector3d position, Vector3d scale, String szTextureFile, String szSoundFile )
{
TransformGroup tg = new TransformGroup( );
// we need to flip the helicopter model
// 90 degrees about the X axis
Transform3D t3d = new Transform3D( );
t3d.rotX( Math.toRadians( -90 ) );
tg.setTransform( t3d );
try
{
/////////////////////////////////////////////////////////
tg.addChild( loadGeometryGroup( "heli.obj", app ) );
/////////////////////////////////////////////////////////
// create an Alpha object for the Interpolator
Alpha alpha = new Alpha( -1,
Alpha.INCREASING_ENABLE | Alpha.DECREASING_ENABLE,
(long) Utils.getRandomNumber( 0, 500 ),
(long)Utils.getRandomNumber( 0, 500 ),
(long)Utils.getRandomNumber( 20000, 5000 ),
4000,
100,
(long) Utils.getRandomNumber( 20000, 5000 ),
5000,
50 );
attachSplinePathInterpolator( alpha,
new Transform3D( ),
new URL( ((Java3dApplet) m_Component).getWorkingDirectory( ), "d:\\flyover\\heli_spline.xls" ) );
}
catch( Exception e )
{
System.err.println( e.toString( ) );
}
return tg;
}
Этот файл и некоторые другие ресурсы находятся в моей директории src и копируются в каталог out. Итак, почему программа не может найти их и где я должен их разместить, чтобы их можно было найти?
Я также попытался использовать URI файл:///d: /Flyover/heli.obj, но получил ошибку "MalformedURL".
Может ли кто-нибудь помочь?
спасибо Стиву
Я действительно не знаю, в чем проблема, но могу предположить, что полученный вами проект был построен в предположении, что исполняемый файл будет запущен в определенном каталоге, в частности, в каталоге, где находится heli.obj.
Они могут объяснять это в каком-нибудь файле readme, который вы, возможно, пропустили.
Итак, вам нужно оставить loadGeometryGroup( "heli.obj", app )
как есть, и вам нужно перейти в меню Run
IntelliJ IDEA, Edit Configurations...
, найти конфигурацию вашего приложения в дереве слева и укажите Working Directory
справа.