小编Blc*_*ght的帖子

Izpack失败,"没有用于文件扩展名的脚本引擎".js",

在使用Izpack 5 Beta 11的测试机器上,如果我使用运行捆绑的64位java的64位winrun4j exe启动install.jar,那么Izpack会抱怨

There is no script engine for file extension ".js",然后抱怨The installer could not launch with administrator permissions,然后尝试安装到默认安装目录失败,因为你没有管理员权限,安装到C:/ Program Files之外的另一个文件夹完成好了

如果我使用运行32位java的32位winrun4j安装程序运行它,它可以正常工作.

如果我只是在没有exe包装器的情况下直接运行install.jar

即java -jar install.jar

它使用32位JVM和64位JVM提供这些错误.

所以我目前唯一可行的解​​决方案是安装32位exe包装器,但我还需要64位包装器.

所以问题是

  1. 为什么32位exe工作和64位exe不工作
  2. 如果我尝试在没有包装器的情况下安装,为什么32bit或64bit都没有.

跟进

我发现这个线程有关javascript错误(但不是Izpack),并发现.js文件与Utlradedit相关联,Utlradedit是我用来编辑大多数文件类型的编辑器.

简单地将.js与Ultraedit无关联意味着现在我跑步时

  • java -jar install.jar在32bit install.jar上使用32bit java
  • java -jar install.jar在64bit install.jar上使用64位java
  • 32位winrun4j包装器.

它现在有效:)

但64位winrun4j现在无法启动安装并且根本无法工作,如果我从命令窗口运行,我可以看到

跑步

wscript C:\Users\MESH\AppData\Local\Temp\Installer.js 
 c:\Code\WidgetReleases\1.0_Beta_2\widget-windows64\JVM64\bin\javaw.exe 
 -Dizpack.mode=privileged -jar 
C:\Code\WidgetReleases\1.0_Beta_2\widget-windows64\install.jar
Run Code Online (Sandbox Code Playgroud)

他们跑

wscript C:\Users\MESH\AppData\Local\Temp\Installer.js 
 c:\Code\WidgetReleases\1.0_Beta_2\widget-windows64\JVM64\bin\javaw.exe 
 abort exit 
 -Dizpack.mode=privileged -jar 
 :\Code\WidgetReleases\1.0_Beta_2\widget-windows64\install.jar
Run Code Online (Sandbox Code Playgroud)

所以跟进问题是:

  1. 为什么简单地将文件类型与编辑器关联会打破这个javascript的东西,我可以想象这个或类似的问题可能会影响很多用户.
  2. 为什么从我的64位包装器运行会导致installer.js运行Abort Exit

java windows installer izpack winrun4j

59
推荐指数
1
解决办法
2165
查看次数

切片索引必须是整数或无或具有__index__方法

我正在尝试使用Python.我想在几个列表(L [i])中切片列表(高原),但我有以下错误消息:

  File "C:\Users\adescamp\Skycraper\skycraper.py", line 20, in <module>
    item = plateau[debut:fin]
TypeError: slice indices must be integers or None or have an __index__ method
Run Code Online (Sandbox Code Playgroud)

有关线是与之相关的 item = plateau[debut:fin]

from math import sqrt

plateau = [2, 3, 1, 4, 1, 4, 2, 3, 4, 1, 3, 2, 3, 2, 4, 1]

taille = sqrt(len(plateau))

# Division en lignes
L = []
i = 1
while i < taille:
    fin = i * taille
    debut = fin - taille
    item = plateau[debut:fin] …
Run Code Online (Sandbox Code Playgroud)

python slice

50
推荐指数
1
解决办法
15万
查看次数

为什么我不能从多处理队列中捕获Queue.Empty异常?

我正在尝试捕获如果multiprocessing.Queue为空时引发的Queue.Empty异常.以下不起作用:

import multiprocessing
f = multiprocessing.Queue()
try:
      f.get(True,0.1)
except Queue.Empty:
      print 'foo'
Run Code Online (Sandbox Code Playgroud)

这给了我一个名称错误:NameError:名称'Queue'未定义

用multiprocessing.Queue.Empty替换Queue.Empty也没有帮助.在这种情况下,它给了我一个"AttributeError:'function'对象没有属性'Empty'"异常.

python exception-handling python-2.7

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

在Python 3中连接列表

我正在阅读Dive in Python 3,在列表部分,作者声明可以使用"+"运算符连接列表或调用extend()方法.这些只是两种不同的操作方式吗?我应该使用其中一个的任何理由?

>>> a_list = a_list + [2.0, 3]
>>> a_list.extend([2.0, 3])  
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

请解释此算法以获取String的所有排列

以下代码生成字符串的所有排列:

def permutations(word):
    if len(word)<=1:
        return [word]

    #get all permutations of length N-1
    perms=permutations(word[1:])
    char=word[0]
    result=[]
    #iterate over all permutations of length N-1
    for perm in perms:
        #insert the character into every possible location
        for i in range(len(perm)+1):
            result.append(perm[:i] + char + perm[i:])
    return result
Run Code Online (Sandbox Code Playgroud)

你能解释它是如何工作的吗?我不明白递归.

python string recursion permutation

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

访问字典python中的列表中的项目

我有一个字典,其中包含与列表相关的键.

mydict = {'fruits': ['banana', 'apple', 'orange'],
         'vegetables': ['pepper', 'carrot'], 
         'cheese': ['swiss', 'cheddar', 'brie']}
Run Code Online (Sandbox Code Playgroud)

我想要做的是使用if语句,如果我搜索项目及其在字典中的任何列表中,它将返回密钥.这就是我的尝试:

item = cheddar
if item in mydict.values():
    print key 
Run Code Online (Sandbox Code Playgroud)

但它没有做任何事情,输出应该是:

cheese
Run Code Online (Sandbox Code Playgroud)

这看起来很简单,但我无法弄明白.任何帮助都很棒.

python dictionary list

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

根据另一个列表的值顺序对字典列表进行排序

我正在使用python 2.7.3,我正在尝试根据另一个列表的值顺序对字典列表进行排序.

IE:

listOne = ['hazel', 'blue', 'green', 'brown']
listTwo = [{'name': 'Steve', 'eyecolor': 'hazel', 'height': '5 ft. 11 inches'},
           {'name': 'Mark', 'eyecolor': 'brown', 'height': '6 ft. 2 inches'},
           {'name': 'Mike', 'eyecolor': 'blue', 'height': '6 ft. 0 inches'},
           {'name': 'Ryan', 'eyecolor': 'brown', 'height': '6 ft, 0 inches'},
           {'name': 'Amy', 'eyecolor': 'green', 'height': '5 ft, 6 inches'}]
Run Code Online (Sandbox Code Playgroud)

排序listTwo基于listOne中的值的顺序,我们最终会得到以下结果:

print listTwo
[{'name': 'Steve', 'eyecolor': 'hazel', 'height': '5 ft. 11 inches'},
{'name': 'Mike', 'eyecolor': 'blue', 'height': '6 ft. 0 inches'},
{'name': 'Amy', 'eyecolor': …
Run Code Online (Sandbox Code Playgroud)

python sorting python-2.7

9
推荐指数
1
解决办法
1878
查看次数

Python sys.modules包含一个尚未导入的模块

我试图了解加载模块与导入模块之间的区别,如果有的话.

我正在使用Python 2.7.3,我只是从命令行运行Python.

如果我执行:

import sys
sys.modules
Run Code Online (Sandbox Code Playgroud)

我得到一个列表,其中包括os,例如.文档说这sys.modules是"已加载"模块的列表.但是,如果我尝试运行类似的东西os.environ,我会得到一个NameError,告诉我os没有定义.但是,如果我然后运行import os,这将解决问题.谁能解释为什么ossys.modules我实际导入模块之前存在?

python

8
推荐指数
1
解决办法
2387
查看次数

在字符串格式中,我一次只能替换一个参数吗?

有什么办法我只能在字符串格式中只替换第一个参数吗?像这样:

"My quest is {test}{}".format(test="test")
Run Code Online (Sandbox Code Playgroud)

我希望输出为:

"My quest is test {}
Run Code Online (Sandbox Code Playgroud)

{}我将在稍后更换第二个arg.

我知道我可以创建一个字符串:

"My quest is {test}".format(test="test")
Run Code Online (Sandbox Code Playgroud)

然后将它与剩余的字符串组合并创建新的字符串,但我可以一次性完成吗?

python string-formatting python-3.x

8
推荐指数
2
解决办法
2155
查看次数

在startIntentSenderForResult中的NullPointer,不适用于V3

我有以下方法(第一次正常工作):

public void TipUs(){ 
    String sku="tip_us";

    try {
    Bundle buyIntentBundle = mService.getBuyIntent(3, getPackageName(),
                                                   sku, "inapp", "TIP_US");
    PendingIntent pendingIntent = buyIntentBundle.getParcelable("BUY_INTENT");
    startIntentSenderForResult(pendingIntent.getIntentSender(), 
                               1001, new Intent(), 
                               Integer.valueOf(0), Integer.valueOf(0),
                               Integer.valueOf(0));
    } catch (RemoteException e) {
        e.printStackTrace();
    } catch (SendIntentException e) {
        e.printStackTrace();
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
        if (requestCode == 1001) 
        {       
            int responseCode = data.getIntExtra("RESPONSE_CODE", 0);
            String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA");
            String dataSignature = data.getStringExtra("INAPP_DATA_SIGNATURE");

            if (resultCode == RESULT_OK) {
                try {
                    JSONObject jo = new …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception in-app-purchase in-app-billing

7
推荐指数
1
解决办法
2692
查看次数