小编out*_*lou的帖子

如何在可执行的Jar中包含SQLite数据库?

我创建了一个使用SQLite作为本地数据库的Swing应用程序.数据库文件位于项目的根目录中.

Project/DatabaseFile
Run Code Online (Sandbox Code Playgroud)

应用程序在Eclipse上运行良好,但是当我运行打包的可执行文件Jar时,我收到以下错误:

No such table : table1
Run Code Online (Sandbox Code Playgroud)

这意味着无法访问数据库.当我检查生成的JAR文件的内容时,数据库文件不再存在.

在代码中,我将数据库链接如下:

jdbc:sqlite:DatabaseFile
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何将SQLite数据库包含在可执行的Jar中?

编辑

当我将DB文件放在源文件夹中Project/src/DatabaseFile并将路径更改为时jdbc:sqlite:src/DatabaseFile,它在Eclipse上运行,但在运行Jar文件时再次运行java -jar Project.jar.它说:

path to 'src/DatabaseFile': 'C:\Users\name\src' does not exist
Run Code Online (Sandbox Code Playgroud)

我想我需要为数据库指定一个相对路径.

编辑

这是我连接数据库的方式:

public Connection getConnection(){      
    try{
        Class.forName("org.sqlite.JDBC").newInstance();             
        con = DriverManager.getConnection("jdbc:sqlite:src/DatabaseFile");              

    } catch (Exception e) {
        Log.fatal("Méthode: getConnection() | Class  : SQLiteConnection | msg system : " + e.getMessage());
    }
    return con;
}
Run Code Online (Sandbox Code Playgroud)

java sqlite swing executable-jar

29
推荐指数
1
解决办法
3万
查看次数

在Eclipse下运行Tomcat时,wtpwebapps/myapp为空

我知道tomcat正在运行,因为当我键入http:// localhost时,tomcat页面会显示出来.我的问题是我无法弄清楚为什么wtpwebapps/myapp是空的,就像eclipse没有发布它,当我输入http:// localhost/myapp时,我得到404错误.

在服务器概述中:

  • 服务器位置设置为"使用Tomcat安装"| 服务器路径:服务器的文件夹| 部署路径:wtpwebapps
  • 服务器选项:发布模块上下文以分隔XML文件
  • 发布:在资源更改时自动发布

我在Win7下使用eclipse Ganymede 3.4.2,tomcat 6.0

任何帮助将不胜感激,谢谢

java eclipse publish tomcat

6
推荐指数
2
解决办法
1万
查看次数

如何使用InputMap捕获CTRL + mouseWheel事件

我已经为使用InputMap的Swing应用程序实现了一些热键

    getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_A, Event.CTRL_MASK), "selectAll");
getActionMap().put("selectAll", new SelectAllAction());
Run Code Online (Sandbox Code Playgroud)

它工作正常.现在,如果我想赶上,我怎么能做同样的事情

CTRL + MouseWheelUp

我尝试了一些组合,比如

getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(MouseEvent.MOUSE_WHEEL, Event.CTRL_MASK), "zoom");
Run Code Online (Sandbox Code Playgroud)

没有运气

谢谢

java swing hotkeys

6
推荐指数
2
解决办法
3393
查看次数

从GWT调用JQuery函数

我正在创建一个使用GWT的项目,设计师团队使用HTML和JQuery制作了一个原型.我正在使用UIBinder"重建"UI.我的问题是应用程序有一个使用JQuery的下拉菜单...它不起作用

到目前为止我尝试过的是在UIBinder XML中使用HTMLPanel并插入菜单,我保留了.js文件并在HTML文件中引用它们,希望操作将被拾取......但没有运气.

这是menu.ui.xml,显示菜单但没有鼠标悬停

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui">
<g:HTMLPanel>
<!-- menu --> 
 <ul id="menu"> 
    <li class="home"><a href="#"><span>Accueil</span></a></li> 
    <li class="configuration"> 
        <g:Anchor ui:field="configurationButton" href="#">
                                   <span>Configuration</span></g:Anchor> 
        <div class="submenu"> 
            <div class="group"> 
                <ul> 
                    <li> 
                        <a href="#">Fiches de configuration</a> 
                        <ul> 
                            <li><a href="#">Organisme</a></li> 
                            <li><a href="#">Groupe opérationnel</a></li> 
                            <li><a href="#">Unité opérationnelle</a></li> 
                            <li><a href="#">Immeuble</a></li> 
                        </ul> 
                    </li> 
                </ul>                    
            </div> 
        </div> 
    </li> 
    <li class="audit"><a href="#"><span>Audit</span></a></li> 
    <li class="result"><a href="#"><span>Résultats</span></a></li> 
    <li class="scenario"><a href="#"><span>Scénarios</span></a></li> 
    <li class="document"><a href="#"><span>Documents</span></a></li> 
 </ul>
<!-- menu.end -->   
</g:HTMLPanel>
Run Code Online (Sandbox Code Playgroud)

JQuery代码,它位于一个单独的文件common.js中

$('#menu').find('submenu').each(function(){
alert("inside");
    var totalWidth = 0;
    $(this).children().each(function(){
        totalWidth += …
Run Code Online (Sandbox Code Playgroud)

jquery gwt uibinder

5
推荐指数
1
解决办法
6859
查看次数

将Eclipse更改为UTF-8编码后文本损坏

我不得不将Eclipse Indigo编码更改为UTF-8.现在所有的éàçè的spécial字符都被替换为 .

我可以进行搜索和替换,但我想知道是否有更好的解决方案.

谢谢

java eclipse encoding

5
推荐指数
1
解决办法
7877
查看次数

从POI中的WorkBook中删除工作表

我有一个工作簿,我正在尝试删除名称与特定字符串不匹配的工作表.

这是我的代码

XSSFWorkbook book = new XSSFWorkbook(new FileInputStream(excelName));                   
            for(int i=0;i<book.getNumberOfSheets();i++){
                System.out.println(book.getSheetAt(i).getSheetName());
                if(!book.getSheetAt(i).getSheetName().equals(sheetName)){
                    book.removeSheetAt(i);
                }
            }   
Run Code Online (Sandbox Code Playgroud)

代码运行良好,但它不执行所需的任务

编辑

所述解决方案是颠倒循环次序.这是一个更干净的代码

private void removeOtherSheets(String sheetName, XSSFWorkbook book) {       
            for(int i=book.getNumberOfSheets()-1;i>=0;i--){
                XSSFSheet tmpSheet =book.getSheetAt(i);
                if(!tmpSheet.getSheetName().equals(sheetName)){
                    book.removeSheetAt(i);
                }
            }       
    }
Run Code Online (Sandbox Code Playgroud)

java apache-poi

4
推荐指数
1
解决办法
9304
查看次数

将Byte []转换为int

我有这个方法将有符号或无符号转换byteint,但它不返回它应该返回的内容.有人可以在下面的代码中指出问题吗?

public int convertByteToInt(byte[] b){          
    int value= 0;
    for(int i=0;i<b.length;i++){                
    int n=(b[i]<0?(int)b[i]+256:(int)b[i])<<(8*i);             
        value+=n;
    }         
    return value;       
}
Run Code Online (Sandbox Code Playgroud)

编辑:

我正在读取一个wav文件以计算SNR.转换返回的值应该在0到255之间给出一些东西.应用程序应该比较2个wave文件,on是orignal one,另一个是修改的并计算SNR.

java int signed byte

3
推荐指数
2
解决办法
4万
查看次数

杀死excel进程而不保存

我有这个代码可以正确地杀死任何正在运行的Excel进程.

 public static void killExcel(){
     while (isProcessRuning("EXCEL.EXE")){
        Runtime.getRuntime().exec("taskkill /IM EXCEL.EXE");
     }
}

 public static boolean isProcessRuning(String serviceName) throws Exception {
         Process p = Runtime.getRuntime().exec(TASKLIST);
         BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
         String line;
         while ((line = reader.readLine()) != null) {
          if (line.contains(serviceName)) {
           return true;
          }
         }    
         return false;
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果Excel文件提示保存问题,我有一个无限循环.

java excel kill

3
推荐指数
1
解决办法
1786
查看次数

如何使用AffineTransform旋转并保持原始坐标系统?

我是一个在Java Swing上旋转和平移形状的命令模式.平移和旋转分离得很好,但是当我做60度时.旋转然后平移,平移跟随新的旋转坐标.这意味着如果我拖动鼠标,形状移动与鼠标移动矢量60度的差距是否有任何简单的解决方案?请帮忙,我在这里碰墙

我的旋转执行方法

public void execute() {  
    System.out.println("command: rotate " + thetaDegrees );       
    Iterator iter = objects.iterator();  
    Shape shape;  
    while(iter.hasNext()){  
        shape = (Shape)iter.next();           
        mt.addMememto(shape);             
        AffineTransform t =  shape.getAffineTransform();      
        t.rotate(Math.toRadians(thetaDegrees), shape.getCenter().x, shape.getCenter().y);  
        shape.setAffineTransform(t);              
    }  
}  
Run Code Online (Sandbox Code Playgroud)

我的翻译执行方法

public void execute() {  
    Iterator iter = objects.iterator();  
    Shape shape;  
    while(iter.hasNext()){  
        shape = (Shape)iter.next();  
        mt.addMememto(shape);  
        AffineTransform t = shape.getAffineTransform();  
        System.out.println("Translation x :"+x + ", Translation y :"+y);  
        t.translate(x,y);  
        shape.setAffineTransform(t);  
    }  
} 
Run Code Online (Sandbox Code Playgroud)

任何帮助都可以非常感激

java translation 2d rotation affinetransform

2
推荐指数
1
解决办法
9883
查看次数

水平scrollPanel不显示CellTree

我在ScrollPanel中有一个Celltree.我在UIBinder中设置ScrollPanel的大小如下

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui">

   <g:ScrollPanel ui:field="panel" width="240px" height="1200px"></g:ScrollPanel>
</ui:UiBinder> 
Run Code Online (Sandbox Code Playgroud)

在我的Java类中,我有以下内容:

@UiField ScrollPanel panel;
public Arborescence() {
     initWidget(uiBinder.createAndBindUi(this));


      // Create a model for the tree.
        TreeViewModel model = new CustomTreeModel();

        /*
         * Create the tree using the model. We specify the default value of the
         * hidden root node as "Item 1".
         */
        CellTree tree = new CellTree(model, "Item 1");         
        panel.add(tree);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是当我填充CellTree时,水平条没有显示,甚至内容都溢出.垂直条显示正常.

谢谢

更新

使用FireBug,我发现问题来自于 element.style { overflow: hidden; }

它似乎是一个覆盖我的CSS的内联CSS.有没有办法改变它?

user-interface gwt scrollpane

2
推荐指数
1
解决办法
2532
查看次数

如何将Popup设置为始终在GWT的顶部可见

我有一个加载弹出窗口,我需要在页面顶部显示,即使用户向下滚动.

到目前为止我尝试的是设置弹出位置如下

setPopupPosition(Window.getClientWidth()/2 , 0);
Run Code Online (Sandbox Code Playgroud)

弹出窗口显示在absolut顶部.

gwt position popup

2
推荐指数
1
解决办法
1728
查看次数

如何在排序结束时始终具有空值

我有一个字符串值列表.我使用比较器按特定顺序对它们进行排序,如下所示

public static final List<String> CUSTOM_LIST = Arrays.asList("Red", "Green", "Blue");
comparator = new Comparator<String>(){
             @Override
             public int compare(final String o1, final String o2){
                   return Integer.valueOf(CUSTOM_LIST.indexOf(o1))
                   .compareTo(Integer.valueOf(CUSTOM_LIST.indexOf(o2)));
              }
         };
Run Code Online (Sandbox Code Playgroud)

所以要比较一下

Collections.sort(listToSort,comparator);
Run Code Online (Sandbox Code Playgroud)

或者用于反向排序

Collections.sort(listToSort,Collections.reverseOrder(comparator));
Run Code Online (Sandbox Code Playgroud)

现在我的列表中有空值,我希望它们总是在最后.我如何实现这一目标?

java sorting comparator

2
推荐指数
1
解决办法
4703
查看次数