---
#  Licensed to the Apache Software Foundation (ASF) under one
#  or more contributor license agreements.  See the NOTICE file
#  distributed with this work for additional information
#  regarding copyright ownership.  The ASF licenses this file
#  to you under the Apache License, Version 2.0 (the
#  "License"); you may not use this file except in compliance
#  with the License.  You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing,
#  software distributed under the License is distributed on an
#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#  KIND, either express or implied.  See the License for the
#  specific language governing permissions and limitations
#  under the License.

title: DVModeler GUI Tool
url: /docs/1.2/dvmodeler-gui-tool.html
layout: docs_legacy
---

	

<P>DVModeler is a Java GUI tool to work with DataViews configuration included in Cayenne projects. Steps needed to start DVModeler are similar to that of CayenneModeler. Main class is <TT>org.objectstyle.cayenne.dataview.dvmodeler.Main</TT>. For convenience Cayenne distribution provides run scripts to start DVModeler on Windows and UNIX platforms. To take advantage of these scripts, user must set CAYENNE_HOME (optional) and JAVA_HOME environment variables as described in <A href="installation.html" title="Installation">Installation</A>.</P>

<P>To run DVModeler, simply doubleclick the appropriate script. Alternatively it can be run from the command line.</P>

<P>Windows:</P>
<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
<PRE>%CAYENNE_HOME%\bin\dvmodeler.bat
</PRE>
</DIV></DIV>
<P>UNIX:</P>
<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
<PRE>$CAYENNE_HOME/bin/dvmodeler.sh
</PRE>
</DIV></DIV>
